Class: Gcloud::Logging::Sink

Inherits:
Object
  • Object
show all
Defined in:
lib/gcloud/logging/sink.rb,
lib/gcloud/logging/sink/list.rb

Overview

# Sink

Used to export log entries outside Stackdriver Logging. When you create a sink, new log entries 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 ‘[email protected]` permission to write logs to the destination. See [Permissions for writing exported logs](cloud.google.com/logging/docs/export/configure_export#setting_product_name_short_permissions_for_writing_exported_logs).

You can retrieve an existing sink with Project#sink.

Examples:

require "gcloud"

gcloud = Gcloud.new
logging = gcloud.logging
storage = gcloud.storage

bucket = storage.create_bucket "my-logs-bucket"

# Grant owner permission to Stackdriver Logging service
email = "[email protected]"
bucket.acl.add_owner "group-#{email}"

sink = logging.create_sink "my-sink",
                           "storage.googleapis.com/#{bucket.id}"

See Also:

Defined Under Namespace

Classes: List

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeSink



69
70
71
72
# File 'lib/gcloud/logging/sink.rb', line 69

def initialize
  @service = nil
  @grpc = Google::Logging::V2::LogSink.new
end

Instance Attribute Details

#grpcObject



65
66
67
# File 'lib/gcloud/logging/sink.rb', line 65

def grpc
  @grpc
end

#serviceObject



61
62
63
# File 'lib/gcloud/logging/sink.rb', line 61

def service
  @service
end

Class Method Details

.from_grpc(grpc, service) ⇒ Object



201
202
203
204
205
206
# File 'lib/gcloud/logging/sink.rb', line 201

def self.from_grpc grpc, service
  new.tap do |f|
    f.grpc = grpc
    f.service = service
  end
end

.resolve_version(version) ⇒ Object



210
211
212
213
214
215
# File 'lib/gcloud/logging/sink.rb', line 210

def self.resolve_version version
  ver = version.to_s.upcase.to_sym
  ver = Google::Logging::V2::LogSink::VersionFormat.resolve ver
  return ver if ver
  Google::Logging::V2::LogSink::VersionFormat::VERSION_FORMAT_UNSPECIFIED
end

Instance Method Details

#deleteBoolean

Permanently deletes the logs-based sink.

Examples:

require "gcloud"

gcloud = Gcloud.new
logging = gcloud.logging
sink = logging.sink "severe_errors"
sink.delete


193
194
195
196
197
# File 'lib/gcloud/logging/sink.rb', line 193

def delete
  ensure_service!
  service.delete_sink name
  true
end

#destinationObject

The export destination. See [Exporting Logs With Sinks](cloud.google.com/logging/docs/api/tasks/exporting-logs).



85
86
87
# File 'lib/gcloud/logging/sink.rb', line 85

def destination
  @grpc.destination
end

#destination=(destination) ⇒ Object

Updates the export destination. See [Exporting Logs With Sinks](cloud.google.com/logging/docs/api/tasks/exporting-logs).



92
93
94
# File 'lib/gcloud/logging/sink.rb', line 92

def destination= destination
  @grpc.destination = destination
end

#filterObject

An [advanced logs filter](cloud.google.com/logging/docs/view/advanced_filters) that defines the log entries to be exported. The filter must be consistent with the log entry format designed by the ‘version` parameter, regardless of the format of the log entry that was originally written to Stackdriver Logging.



103
104
105
# File 'lib/gcloud/logging/sink.rb', line 103

def filter
  @grpc.filter
end

#filter=(filter) ⇒ Object

Updates the [advanced logs filter](cloud.google.com/logging/docs/view/advanced_filters) that defines the log entries to be exported. The filter must be consistent with the log entry format designed by the ‘version` parameter, regardless of the format of the log entry that was originally written to Stackdriver Logging.



114
115
116
# File 'lib/gcloud/logging/sink.rb', line 114

def filter= filter
  @grpc.filter = filter
end

#nameObject

The client-assigned sink identifier. Sink identifiers are limited to 1000 characters and can include only the following characters: ‘A-Z`, `a-z`, `0-9`, and the special characters `_-.`.



78
79
80
# File 'lib/gcloud/logging/sink.rb', line 78

def name
  @grpc.name
end

#reload!Object Also known as: refresh!

Reloads the logs-based sink with current data from the Logging service.



174
175
176
177
# File 'lib/gcloud/logging/sink.rb', line 174

def reload!
  ensure_service!
  @grpc = service.get_sink name
end

#saveObject

Updates the logs-based sink.

Examples:

require "gcloud"

gcloud = Gcloud.new
logging = gcloud.logging
sink = logging.sink "severe_errors"
sink.filter = "logName:syslog AND severity>=ERROR"
sink.save


166
167
168
169
# File 'lib/gcloud/logging/sink.rb', line 166

def save
  ensure_service!
  @grpc = service.update_sink name, destination, filter, version
end

#unspecified?Boolean

Helper to determine if the sink’s version is ‘VERSION_FORMAT_UNSPECIFIED`.



138
139
140
# File 'lib/gcloud/logging/sink.rb', line 138

def unspecified?
  !(v1? || v2?)
end

#v1?Boolean

Helper to determine if the sink’s version is ‘V1`.



150
151
152
# File 'lib/gcloud/logging/sink.rb', line 150

def v1?
  version == :V1
end

#v2?Boolean

Helper to determine if the sink’s version is ‘V2`.



144
145
146
# File 'lib/gcloud/logging/sink.rb', line 144

def v2?
  version == :V2
end

#versionObject

The log entry version used when exporting log entries from this sink. This version does not have to correspond to the version of the log entry when it was written to Stackdriver Logging.



122
123
124
# File 'lib/gcloud/logging/sink.rb', line 122

def version
  @grpc.output_version_format
end

#version=(version) ⇒ Object

Updates the log entry version used when exporting log entries from this sink. This version does not have to correspond to the version of the log entry when it was written to Stackdriver Logging. Accepted values are ‘:VERSION_FORMAT_UNSPECIFIED`, `:V2`, and `:V1`.



131
132
133
# File 'lib/gcloud/logging/sink.rb', line 131

def version= version
  @grpc.output_version_format = self.class.resolve_version(version)
end