class Monitoring::MetricTranslator

Translate the internal metrics to the curated metrics in Stackdriver. The Prometheus metrics are collected by Google Kubernetes Engine’s monitoring, so we can’t redefine them. Avoid this mechanism for new metrics by defining them in their final form, so they don’t need translation.

Attributes

name[R]
view_labels[R]

Public Class Methods

new(name, metric_labels) click to toggle source
# File lib/fluent/plugin/monitoring.rb, line 239
def initialize(name, metric_labels)
  @legacy = true
  case name
  when :stackdriver_successful_requests_count,
       :stackdriver_failed_requests_count
    @name = :request_count
  when :stackdriver_ingested_entries_count,
       :stackdriver_dropped_entries_count
    @name = :log_entry_count
  when :stackdriver_retried_entries_count
    @name = :log_entry_retry_count
  else
    @name = name
    @legacy = false
  end
  # Collapsed from [:response_code, :grpc]
  @view_labels = @legacy ? [:response_code] : metric_labels
end

Public Instance Methods

translate_labels(labels) click to toggle source
# File lib/fluent/plugin/monitoring.rb, line 258
def translate_labels(labels)
  return labels unless @legacy

  translation = { code: :response_code, grpc: :grpc }
  labels.transform_keys { |k| translation[k] }
end