Class: Monitoring::MetricTranslator
- Inherits:
-
Object
- Object
- Monitoring::MetricTranslator
- Defined in:
- lib/fluent/plugin/monitoring.rb
Overview
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.
Instance Attribute Summary collapse
-
#name ⇒ Object
readonly
Returns the value of attribute name.
-
#view_labels ⇒ Object
readonly
Returns the value of attribute view_labels.
Instance Method Summary collapse
-
#initialize(name, metric_labels) ⇒ MetricTranslator
constructor
A new instance of MetricTranslator.
- #translate_labels(labels) ⇒ Object
Constructor Details
#initialize(name, metric_labels) ⇒ MetricTranslator
Returns a new instance of MetricTranslator.
211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 |
# File 'lib/fluent/plugin/monitoring.rb', line 211 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 |
Instance Attribute Details
#name ⇒ Object (readonly)
Returns the value of attribute name.
208 209 210 |
# File 'lib/fluent/plugin/monitoring.rb', line 208 def name @name end |
#view_labels ⇒ Object (readonly)
Returns the value of attribute view_labels.
209 210 211 |
# File 'lib/fluent/plugin/monitoring.rb', line 209 def view_labels @view_labels end |
Instance Method Details
#translate_labels(labels) ⇒ Object
230 231 232 233 234 |
# File 'lib/fluent/plugin/monitoring.rb', line 230 def translate_labels(labels) return labels unless @legacy translation = { code: :response_code, grpc: :grpc } labels.map { |k, v| [translation[k], v] }.to_h end |