/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include namespace smithy { namespace components { namespace tracing { /** * Entry point for metrics emission API. Will return a meter which in turn * can provide specific metric taking instruments. */ class SMITHY_API MeterProvider { public: virtual ~MeterProvider() = default; /** * Provide a meter that will in turn provide instruments for metrics. * @param scope The scope that meter is used for. * @param attributes the attributes or dimensions associate with this measurement. * @return A Meter. */ virtual std::shared_ptr GetMeter(Aws::String scope, Aws::Map attributes) = 0; }; } } }