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, version: :unspecified) ⇒ 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(projects: nil, filter: nil, order: nil, token: nil, max: 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.
309 310 311 |
# File 'lib/google/cloud/logging/project.rb', line 309 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.
664 665 666 667 668 |
# File 'lib/google/cloud/logging/project.rb', line 664 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, version: :unspecified) ⇒ 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.
564 565 566 567 568 569 |
# File 'lib/google/cloud/logging/project.rb', line 564 def create_sink name, destination, filter: nil, version: :unspecified version = Sink.resolve_version version ensure_service! grpc = service.create_sink name, destination, filter, version 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.
393 394 395 396 397 |
# File 'lib/google/cloud/logging/project.rb', line 393 def delete_log name ensure_service! service.delete_log name true end |
#entries(projects: nil, filter: nil, order: nil, token: nil, max: 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 |
# File 'lib/google/cloud/logging/project.rb', line 146 def entries projects: nil, filter: nil, order: nil, token: nil, max: nil ensure_service! list_grpc = service.list_entries projects: projects, filter: filter, order: order, token: token, max: max Entry::List.from_grpc list_grpc, service, projects: projects, max: max, filter: filter, order: order 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
.
194 195 196 197 198 199 200 201 202 203 204 205 |
# File 'lib/google/cloud/logging/project.rb', line 194 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.
370 371 372 |
# File 'lib/google/cloud/logging/project.rb', line 370 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.
691 692 693 694 695 696 697 |
# File 'lib/google/cloud/logging/project.rb', line 691 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.
631 632 633 634 635 |
# File 'lib/google/cloud/logging/project.rb', line 631 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.
459 460 461 462 463 464 |
# File 'lib/google/cloud/logging/project.rb', line 459 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.
433 434 435 436 437 |
# File 'lib/google/cloud/logging/project.rb', line 433 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.
337 338 339 |
# File 'lib/google/cloud/logging/project.rb', line 337 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.
592 593 594 595 596 597 598 |
# File 'lib/google/cloud/logging/project.rb', line 592 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.
496 497 498 499 500 |
# File 'lib/google/cloud/logging/project.rb', line 496 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.
263 264 265 266 267 268 269 |
# File 'lib/google/cloud/logging/project.rb', line 263 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 |