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.
168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 |
# File 'lib/fluent/plugin/monitoring.rb', line 168 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.
165 166 167 |
# File 'lib/fluent/plugin/monitoring.rb', line 165 def name @name end |
#view_labels ⇒ Object (readonly)
Returns the value of attribute view_labels.
166 167 168 |
# File 'lib/fluent/plugin/monitoring.rb', line 166 def view_labels @view_labels end |
Instance Method Details
#translate_labels(labels) ⇒ Object
187 188 189 190 191 |
# File 'lib/fluent/plugin/monitoring.rb', line 187 def translate_labels(labels) return labels unless @legacy translation = { code: :response_code, grpc: :grpc } labels.map { |k, v| [translation[k], v] }.to_h end |