]>
git.proxmox.com Git - ceph.git/blob - ceph/src/jaegertracing/jaeger-client-cpp/src/jaegertracing/metrics/StatsFactoryImpl.h
2 * Copyright (c) 2017 Uber Technologies, Inc.
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
17 #ifndef JAEGERTRACING_METRICS_STATSFACTORYIMPL_H
18 #define JAEGERTRACING_METRICS_STATSFACTORYIMPL_H
22 #include <unordered_map>
24 #include "jaegertracing/metrics/StatsFactory.h"
25 #include "jaegertracing/metrics/StatsReporter.h"
27 namespace jaegertracing
{
34 class StatsFactoryImpl
: public StatsFactory
{
36 using StatsFactory::createCounter
;
37 using StatsFactory::createGauge
;
38 using StatsFactory::createTimer
;
40 explicit StatsFactoryImpl(StatsReporter
& reporter
);
42 ~StatsFactoryImpl() = default;
44 std::unique_ptr
<Counter
> createCounter(
45 const std::string
& name
,
46 const std::unordered_map
<std::string
, std::string
>& tags
) override
;
48 std::unique_ptr
<Timer
> createTimer(
49 const std::string
& name
,
50 const std::unordered_map
<std::string
, std::string
>& tags
) override
;
52 std::unique_ptr
<Gauge
> createGauge(
53 const std::string
& name
,
54 const std::unordered_map
<std::string
, std::string
>& tags
) override
;
57 StatsReporter
& _reporter
;
60 } // namespace metrics
61 } // namespace jaegertracing
63 #endif // JAEGERTRACING_METRICS_STATSFACTORYIMPL_H