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_queue_size: AsyncWriter::DEFAULT_MAX_QUEUE_SIZE) ⇒ Object
Creates an object that batches and transmits log entries asynchronously.
-
#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, start_at: nil, end_at: nil, version: :unspecified, 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.
-
#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 ⇒ String
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) ⇒ Boolean
Writes log entries to the Stackdriver Logging service.
Instance Method Details
#async_writer(max_queue_size: AsyncWriter::DEFAULT_MAX_QUEUE_SIZE) ⇒ Object
Creates an object that batches and transmits log entries asynchronously.
Use this object to transmit log entries efficiently. It keeps a queue of log entries, and runs a background thread that transmits them to the logging service in batches. Generally, adding to the queue will not block.
This object is thread-safe; it may accept write requests from multiple threads simultaneously, and will serialize them when executing in the background thread.
320 321 322 |
# File 'lib/google/cloud/logging/project.rb', line 320 def async_writer max_queue_size: AsyncWriter::DEFAULT_MAX_QUEUE_SIZE AsyncWriter.new self, max_queue_size 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.
693 694 695 696 697 |
# File 'lib/google/cloud/logging/project.rb', line 693 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, start_at: nil, end_at: nil, version: :unspecified, 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
cloud-logs@google.com
permission to write logs to the destination.
See Permissions for writing exported
logs.
588 589 590 591 592 593 594 595 596 597 598 |
# File 'lib/google/cloud/logging/project.rb', line 588 def create_sink name, destination, filter: nil, start_at: nil, end_at: nil, version: :unspecified, unique_writer_identity: nil version = Sink.resolve_version version ensure_service! grpc = service.create_sink \ name, destination, filter, version, start_time: start_at, end_time: end_at, 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.
404 405 406 407 408 |
# File 'lib/google/cloud/logging/project.rb', line 404 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.
154 155 156 157 158 159 160 161 162 163 164 |
# File 'lib/google/cloud/logging/project.rb', line 154 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
.
205 206 207 208 209 210 211 212 213 214 215 216 |
# File 'lib/google/cloud/logging/project.rb', line 205 def entry log_name: nil, resource: nil, timestamp: nil, severity: nil, insert_id: nil, labels: nil, payload: nil e = Entry.new e.log_name = 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.
381 382 383 |
# File 'lib/google/cloud/logging/project.rb', line 381 def logger log_name, resource, labels = {} Logger.new shared_async_writer, log_name, resource, labels end |
#metric(name) ⇒ Google::Cloud::Logging::Metric? Also known as: get_metric, find_metric
Retrieves metric by name.
720 721 722 723 724 725 726 |
# File 'lib/google/cloud/logging/project.rb', line 720 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.
660 661 662 663 664 |
# File 'lib/google/cloud/logging/project.rb', line 660 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 ⇒ String
The ID of the current project.
74 75 76 |
# File 'lib/google/cloud/logging/project.rb', line 74 def project service.project end |
#resource(type, labels = {}) ⇒ Google::Cloud::Logging::Resource Also known as: new_resource
Creates a new monitored resource instance.
470 471 472 473 474 475 |
# File 'lib/google/cloud/logging/project.rb', line 470 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.
444 445 446 447 448 |
# File 'lib/google/cloud/logging/project.rb', line 444 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.
348 349 350 |
# File 'lib/google/cloud/logging/project.rb', line 348 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.
621 622 623 624 625 626 627 |
# File 'lib/google/cloud/logging/project.rb', line 621 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.
507 508 509 510 511 |
# File 'lib/google/cloud/logging/project.rb', line 507 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) ⇒ 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.
274 275 276 277 278 279 280 |
# File 'lib/google/cloud/logging/project.rb', line 274 def write_entries entries, log_name: nil, resource: nil, labels: nil ensure_service! service.write_entries Array(entries).map(&:to_grpc), log_name: log_name, resource: resource, labels: labels true end |