Class: Fluent::StackdriverMonitoring::Writer
- Inherits:
-
Object
- Object
- Fluent::StackdriverMonitoring::Writer
- Defined in:
- lib/fluent/plugin/stackdriver/client.rb
Instance Method Summary collapse
-
#initialize(project, custom_metrics, log) ⇒ Writer
constructor
A new instance of Writer.
- #start ⇒ Object
- #write(start_time, end_time, value) ⇒ Object
Constructor Details
#initialize(project, custom_metrics, log) ⇒ Writer
Returns a new instance of Writer.
12 13 14 15 16 17 |
# File 'lib/fluent/plugin/stackdriver/client.rb', line 12 def initialize(project, custom_metrics, log) @custom_metrics = custom_metrics @project_name = Google::Cloud::Monitoring::V3::MetricServiceClient.project_path project @metric_name = Google::Cloud::Monitoring::V3::MetricServiceClient.metric_descriptor_path project, custom_metrics.type @log = log end |
Instance Method Details
#start ⇒ Object
19 20 21 22 |
# File 'lib/fluent/plugin/stackdriver/client.rb', line 19 def start @metric_service_client = Google::Cloud::Monitoring::V3::MetricServiceClient.new @metric_descriptor = create_metric_descriptor end |
#write(start_time, end_time, value) ⇒ Object
24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/fluent/plugin/stackdriver/client.rb', line 24 def write(start_time, end_time, value) time_series = create_time_series point = Google::Monitoring::V3::Point.new point.interval = create_time_interval start_time, end_time point.value = create_typed_value value time_series.points.push point log.debug "Create time series", start_time: Time.at(start_time).to_s, end_time: Time.at(end_time).to_s, value: value, metric_name: @metric_name # Only one point can be written per TimeSeries per request. @metric_service_client.create_time_series @project_name, [time_series] end |