Class: Google::Cloud::Logging::Project
- Inherits:
-
Object
- Object
- Google::Cloud::Logging::Project
- Defined in:
- lib/google/cloud/logging/project.rb
Overview
Project
Projects are top-level containers in Google Cloud Platform. They store information about billing and authorized users, and they control access to Stackdriver Logging resources. Each project has a friendly name and a unique ID. Projects can be created only in the Google Developers Console. See Google::Cloud#logging.
See Google::Cloud#logging
Instance Method Summary collapse
-
#async_writer(max_batch_count: 10_000, max_batch_bytes: 10_000_000, max_queue_size: 100, interval: 5, threads: 10, partial_success: false) ⇒ Google::Cloud::Logging::AsyncWriter
Creates an object that buffers, batches, and transmits log entries efficiently.
-
#create_metric(name, filter, description: nil) ⇒ Google::Cloud::Logging::Metric
(also: #new_metric)
Creates a new logs-based metric for Google Cloud Monitoring.
-
#create_sink(name, destination, filter: nil, unique_writer_identity: nil) ⇒ Google::Cloud::Logging::Sink
(also: #new_sink)
Creates a new project sink.
-
#delete_log(name) ⇒ Boolean
Deletes a log and all its log entries.
-
#entries(resources: nil, filter: nil, order: nil, token: nil, max: nil, projects: nil) ⇒ Array<Google::Cloud::Logging::Entry>
(also: #find_entries)
Lists log entries.
-
#entry(log_name: nil, resource: nil, timestamp: nil, severity: nil, insert_id: nil, labels: nil, payload: nil) ⇒ Google::Cloud::Logging::Entry
(also: #new_entry)
Creates an new Entry instance that may be populated and written to the Stackdriver Logging service.
-
#logger(log_name, resource, labels = {}) ⇒ Google::Cloud::Logging::Logger
Creates a logger instance that is API-compatible with Ruby's standard library Logger.
-
#logs(resource: nil, token: nil, max: nil) ⇒ Array<String>
(also: #find_logs, #log_names, #find_log_names)
Lists log names.
-
#metric(name) ⇒ Google::Cloud::Logging::Metric?
(also: #get_metric, #find_metric)
Retrieves metric by name.
-
#metrics(token: nil, max: nil) ⇒ Array<Google::Cloud::Logging::Metric>
(also: #find_metrics)
Retrieves the list of metrics belonging to the project.
-
#project_id ⇒ String
(also: #project)
The ID of the current project.
-
#resource(type, labels = {}) ⇒ Google::Cloud::Logging::Resource
(also: #new_resource)
Creates a new monitored resource instance.
-
#resource_descriptors(token: nil, max: nil) ⇒ Array<Google::Cloud::Logging::ResourceDescriptor>
(also: #find_resource_descriptors)
Retrieves the list of monitored resource descriptors that are used by Stackdriver Logging.
-
#shared_async_writer ⇒ Object
Returns a shared AsyncWriter for this Project.
-
#sink(sink_name) ⇒ Google::Cloud::Logging::Sink?
(also: #get_sink, #find_sink)
Retrieves a sink by name.
-
#sinks(token: nil, max: nil) ⇒ Array<Google::Cloud::Logging::Sink>
(also: #find_sinks)
Retrieves the list of sinks belonging to the project.
-
#write_entries(entries, log_name: nil, resource: nil, labels: nil, partial_success: nil) ⇒ Boolean
Writes log entries to the Stackdriver Logging service.
Instance Method Details
#async_writer(max_batch_count: 10_000, max_batch_bytes: 10_000_000, max_queue_size: 100, interval: 5, threads: 10, partial_success: false) ⇒ Google::Cloud::Logging::AsyncWriter
Creates an object that buffers, batches, and transmits log entries efficiently. Writing log entries to this object is asynchronous and will not block.
Batches that cannot be delivered immediately are queued. When the queue is full new batch requests will raise errors that can be consumed using the AsyncWriter#on_error callback. This provides back pressure in case the writer cannot keep up with requests.
This object is thread-safe; it may accept write requests from multiple threads simultaneously, and will serialize them when executing in the background thread.
360 361 362 363 364 365 366 367 368 369 |
# File 'lib/google/cloud/logging/project.rb', line 360 def async_writer max_batch_count: 10_000, max_batch_bytes: 10_000_000, max_queue_size: 100, interval: 5, threads: 10, partial_success: false AsyncWriter.new self, max_count: max_batch_count, max_bytes: max_batch_bytes, max_queue: max_queue_size, interval: interval, threads: threads, partial_success: partial_success end |
#create_metric(name, filter, description: nil) ⇒ Google::Cloud::Logging::Metric Also known as: new_metric
Creates a new logs-based metric for Google Cloud Monitoring.
790 791 792 793 794 |
# File 'lib/google/cloud/logging/project.rb', line 790 def create_metric name, filter, description: nil ensure_service! grpc = service.create_metric name, filter, description Metric.from_grpc grpc, service end |
#create_sink(name, destination, filter: nil, unique_writer_identity: nil) ⇒ Google::Cloud::Logging::Sink Also known as: new_sink
Creates a new project sink. When you create a sink, only new log entries that match the sink's filter are exported. Stackdriver Logging does not send previously-ingested log entries to the sink's destination.
Before creating the sink, ensure that you have granted the sink's unique writer identity permission to write logs to the destination. See Destination permissions.
676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 |
# File 'lib/google/cloud/logging/project.rb', line 676 def create_sink name, destination, filter: nil, unique_writer_identity: nil, start_at: nil, end_at: nil, version: nil ensure_service! if start_at warn "[DEPRECATION] start_at is deprecated and will be ignored." end if end_at warn "[DEPRECATION] end_at is deprecated and will be ignored." end if version warn "[DEPRECATION] version is deprecated and will be ignored." end grpc = service.create_sink \ name, destination, filter, unique_writer_identity: unique_writer_identity Sink.from_grpc grpc, service end |
#delete_log(name) ⇒ Boolean
Deletes a log and all its log entries. The log will reappear if it receives new entries.
508 509 510 511 512 |
# File 'lib/google/cloud/logging/project.rb', line 508 def delete_log name ensure_service! service.delete_log name true end |
#entries(resources: nil, filter: nil, order: nil, token: nil, max: nil, projects: nil) ⇒ Array<Google::Cloud::Logging::Entry> Also known as: find_entries
Lists log entries. Use this method to retrieve log entries from Cloud Logging.
146 147 148 149 150 151 152 153 154 155 156 |
# File 'lib/google/cloud/logging/project.rb', line 146 def entries resources: nil, filter: nil, order: nil, token: nil, max: nil, projects: nil ensure_service! list_grpc = service.list_entries resources: resources, filter: filter, order: order, token: token, max: max, projects: projects Entry::List.from_grpc list_grpc, service, resources: resources, max: max, filter: filter, order: order, projects: projects end |
#entry(log_name: nil, resource: nil, timestamp: nil, severity: nil, insert_id: nil, labels: nil, payload: nil) ⇒ Google::Cloud::Logging::Entry Also known as: new_entry
Creates an new Entry instance that may be populated and written to the
Stackdriver Logging service. The Entry#resource attribute is
pre-populated with a new Resource instance.
Equivalent to calling Google::Cloud::Logging::Entry.new
.
207 208 209 210 211 212 213 214 215 216 217 218 219 220 |
# File 'lib/google/cloud/logging/project.rb', line 207 def entry log_name: nil, resource: nil, timestamp: nil, severity: nil, insert_id: nil, labels: nil, payload: nil ensure_service! e = Entry.new e.log_name = service.log_path log_name if log_name e.resource = resource if resource e. = if e.severity = severity if severity e.insert_id = insert_id if insert_id e.labels = labels if labels e.payload = payload if payload e end |
#logger(log_name, resource, labels = {}) ⇒ Google::Cloud::Logging::Logger
Creates a logger instance that is API-compatible with Ruby's standard library Logger.
The logger will create a new AsyncWriter object to transmit log entries on a background thread.
443 444 445 |
# File 'lib/google/cloud/logging/project.rb', line 443 def logger log_name, resource, labels = {} Logger.new shared_async_writer, log_name, resource, labels end |
#logs(resource: nil, token: nil, max: nil) ⇒ Array<String> Also known as: find_logs, log_names, find_log_names
Lists log names. Use this method to retrieve log names from Cloud Logging.
479 480 481 482 483 484 |
# File 'lib/google/cloud/logging/project.rb', line 479 def logs resource: nil, token: nil, max: nil ensure_service! list_grpc = service.list_logs resource: resource, token: token, max: max Log::List.from_grpc list_grpc, service, resource: resource, max: max end |
#metric(name) ⇒ Google::Cloud::Logging::Metric? Also known as: get_metric, find_metric
Retrieves metric by name.
817 818 819 820 821 822 823 |
# File 'lib/google/cloud/logging/project.rb', line 817 def metric name ensure_service! grpc = service.get_metric name Metric.from_grpc grpc, service rescue Google::Cloud::NotFoundError nil end |
#metrics(token: nil, max: nil) ⇒ Array<Google::Cloud::Logging::Metric> Also known as: find_metrics
Retrieves the list of metrics belonging to the project.
757 758 759 760 761 |
# File 'lib/google/cloud/logging/project.rb', line 757 def metrics token: nil, max: nil ensure_service! grpc = service.list_metrics token: token, max: max Metric::List.from_grpc grpc, service, max end |
#project_id ⇒ String Also known as: project
The ID of the current project.
74 75 76 |
# File 'lib/google/cloud/logging/project.rb', line 74 def project_id service.project end |
#resource(type, labels = {}) ⇒ Google::Cloud::Logging::Resource Also known as: new_resource
Creates a new monitored resource instance.
574 575 576 577 578 579 |
# File 'lib/google/cloud/logging/project.rb', line 574 def resource type, labels = {} Resource.new.tap do |r| r.type = type r.labels = labels end end |
#resource_descriptors(token: nil, max: nil) ⇒ Array<Google::Cloud::Logging::ResourceDescriptor> Also known as: find_resource_descriptors
Retrieves the list of monitored resource descriptors that are used by Stackdriver Logging.
548 549 550 551 552 |
# File 'lib/google/cloud/logging/project.rb', line 548 def resource_descriptors token: nil, max: nil ensure_service! list_grpc = service.list_resource_descriptors token: token, max: max ResourceDescriptor::List.from_grpc list_grpc, service, max end |
#shared_async_writer ⇒ Object
Returns a shared AsyncWriter for this Project. If this method is called multiple times, it will return the same object.
395 396 397 |
# File 'lib/google/cloud/logging/project.rb', line 395 def shared_async_writer @shared_async_writer ||= async_writer end |
#sink(sink_name) ⇒ Google::Cloud::Logging::Sink? Also known as: get_sink, find_sink
Retrieves a sink by name.
718 719 720 721 722 723 724 |
# File 'lib/google/cloud/logging/project.rb', line 718 def sink sink_name ensure_service! grpc = service.get_sink sink_name Sink.from_grpc grpc, service rescue Google::Cloud::NotFoundError nil end |
#sinks(token: nil, max: nil) ⇒ Array<Google::Cloud::Logging::Sink> Also known as: find_sinks
Retrieves the list of sinks belonging to the project.
611 612 613 614 615 |
# File 'lib/google/cloud/logging/project.rb', line 611 def sinks token: nil, max: nil ensure_service! list_grpc = service.list_sinks token: token, max: max Sink::List.from_grpc list_grpc, service, max end |
#write_entries(entries, log_name: nil, resource: nil, labels: nil, partial_success: nil) ⇒ Boolean
Writes log entries to the Stackdriver Logging service.
If you write a collection of log entries, you can provide the log name, resource, and/or labels hash to be used for all of the entries, and omit these values from the individual entries.
299 300 301 302 303 304 305 306 |
# File 'lib/google/cloud/logging/project.rb', line 299 def write_entries entries, log_name: nil, resource: nil, labels: nil, partial_success: nil ensure_service! service.write_entries Array(entries).map(&:to_grpc), log_name: log_name, resource: resource, labels: labels, partial_success: partial_success true end |