self.put_metric

in benchmark/metrics.rb [6:36]


    def self.put_metric(client:, dims:, timestamp:, metric_name:, metric_value:)
      return unless metric_value.is_a?(Numeric) || metric_value.is_a?(Array)

      metric_data = {
        metric_name: metric_name,
        timestamp: timestamp,
        unit: metric_unit(metric_name),
        dimensions: dims.map { |k, v| { name: k.to_s, value: v } }
      }

      case metric_value
      when Numeric
        metric_data[:value] = metric_value
        client.put_metric_data(
          namespace: metric_namespace,
          metric_data: [metric_data]
        )
      when Array
        
        metric_value.each_slice(150) do |values|
          metric_data[:values] = values
          client.put_metric_data(
            namespace: metric_namespace,
            metric_data: [metric_data]
          )
        end
      else
        raise 'Unknown type for metric value'
      end
    end