lib/elastic_apm/transport/serializers/metricset_serializer.rb



# frozen_string_literal: true

module ElasticAPM
  module Transport
    module Serializers
      # @api private
      class MetricsetSerializer < Serializer
        def build(metricset)
          {
            metricset: {
              timestamp: metricset.timestamp.to_i,
              tags: keyword_object(metricset.tags),
              samples: build_samples(metricset.samples)
            }
          }
        end

        private

        def build_samples(samples)
          samples.each_with_object({}) do |(key, value), hsh|
            hsh[key] = { value: value }
          end
        end
      end
    end
  end
end