Class: ElasticMetricsParser
- Inherits:
- 
      BaseMetricsParser
      
        - Object
- BaseMetricsParser
- ElasticMetricsParser
 
- Defined in:
- lib/fluent/plugin/elastic_metrics_parser.rb
Instance Method Summary collapse
- #format_data(cleaned_data = [], prefix = '', separator = '') ⇒ Object
- 
  
    
      #initialize(metric_prefix, router, tag)  ⇒ ElasticMetricsParser 
    
    
  
  
  
    constructor
  
  
  
  
  
  
  
    A new instance of ElasticMetricsParser. 
Methods inherited from BaseMetricsParser
#clean_data, #emit_parsed_metrics, #normalise_data, #serialize_data
Constructor Details
#initialize(metric_prefix, router, tag) ⇒ ElasticMetricsParser
Returns a new instance of ElasticMetricsParser.
| 6 7 8 9 10 | # File 'lib/fluent/plugin/elastic_metrics_parser.rb', line 6 def initialize(metric_prefix, router, tag) @metric_prefix = metric_prefix @router = router @tag = tag end | 
Instance Method Details
#format_data(cleaned_data = [], prefix = '', separator = '') ⇒ Object
| 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | # File 'lib/fluent/plugin/elastic_metrics_parser.rb', line 12 def format_data(cleaned_data = [], prefix = '', separator = '') hash_data_array = [] hash_data = {} cleaned_data.each do |interim_data| if interim_data =~ /{/ && interim_data =~ /}/ metric_name, additional_dims, metric_val_and_time = interim_data.match(/(.*){(.*)}(.*)/i).captures additional_dim_name = '' if additional_dims =~ /,/ additional_dims.split(/,/).map do |interim_dim_data| additional_dim_name += '_' unless additional_dim_name.nil? || additional_dim_name.empty? additional_dim_name += interim_dim_data.gsub(/"/, '').gsub(/=/, '_').gsub(/-/, '_') if interim_data =~ /=/ end else additional_dim_name = additional_dims.gsub(/"/, '').gsub(/=/, '_').gsub(/-/, '_') if interim_data =~ /=/ end if metric_val_and_time =~ / / hash_data["#{prefix}#{separator}#{metric_name}_#{additional_dim_name}"] = metric_val_and_time.strip.split[0] =~ /^\S*\.\S*$/ ? metric_val_and_time.strip.split[0].to_f : metric_val_and_time.strip.split[0].to_i end else metric_name, value, = interim_data.split hash_data[prefix + separator + metric_name] = value =~ /^\S*\.\S*$/ ? value.to_f : value.to_i end end hash_data_array << hash_data end |