/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include static const char *ALLOC_TAG = "CloudWatchMetrics"; namespace Benchmark { class CloudWatchMetrics : public MetricsEmitter { public: explicit CloudWatchMetrics(const std::shared_ptr &cloudWatchClient = Aws::MakeShared(ALLOC_TAG)); void EmitMetricForOp(const std::string &metricName, const std::vector &dimensions, const std::function &op) const override; private: std::shared_ptr cloudWatchClient; Aws::CloudWatch::Model::MetricDatum ConvertToCloudWatchMetric(const Benchmark::Metric &metric) const; }; }