Sha256: f853ada673ea457fa3e7129ef2fa2a5cf07135ae6c7ea0863090e2ccf650e456

Contents?: true

Size: 1.29 KB

Versions: 6

Compression:

Stored size: 1.29 KB

Contents

# frozen_string_literal: true

require_relative 'base_data'

module Fluent
  module Plugin
    module ElasticsearchStats
      class ClusterStatsData < BaseData
        NAME = 'cluster_stats'

        def extract_metrics
          extract_base_metrics + extract_indices_metrics + extract_nodes_metrics
        end

        private

        def extract_base_metrics
          status_metric = metric.format(
            name: %w[cluster status], value: status, family: family, metadata: metadata
          )
          [status_metric]
        end

        def extract_indices_metrics
          metrics = []

          flattened_data = Utils.hash_flatten_keys(indices, separator: metric.name_separator)
          flattened_data.each do |k, v|
            metrics << metric.format(name: ['indices', k], value: v, family: family, metadata: metadata)
          end
          metrics.compact
        end

        def extract_nodes_metrics
          metrics = []
          flattened_data = Utils.hash_flatten_keys(nodes, separator: metric.name_separator)
          flattened_data.each do |k, v|
            metrics << metric.format(name: ['nodes', k], value: v, family: family, metadata: metadata)
          end
          metrics.compact
        end

        def nodes
          data['nodes']
        end
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
fluent-plugin-elasticsearch-stats-0.6.0 lib/fluent/plugin/elasticsearch_stats/cluster_stats_data.rb
fluent-plugin-elasticsearch-stats-0.5.0 lib/fluent/plugin/elasticsearch_stats/cluster_stats_data.rb
fluent-plugin-elasticsearch-stats-0.4.0 lib/fluent/plugin/elasticsearch_stats/cluster_stats_data.rb
fluent-plugin-elasticsearch-stats-0.3.0 lib/fluent/plugin/elasticsearch_stats/cluster_stats_data.rb
fluent-plugin-elasticsearch-stats-0.2.0 lib/fluent/plugin/elasticsearch_stats/cluster_stats_data.rb
fluent-plugin-elasticsearch-stats-0.1.0 lib/fluent/plugin/elasticsearch_stats/cluster_stats_data.rb