diff options
Diffstat (limited to 'src/jaegertracing/opentelemetry-cpp/api/include/opentelemetry/_metrics/noop.h')
-rw-r--r-- | src/jaegertracing/opentelemetry-cpp/api/include/opentelemetry/_metrics/noop.h | 654 |
1 files changed, 654 insertions, 0 deletions
diff --git a/src/jaegertracing/opentelemetry-cpp/api/include/opentelemetry/_metrics/noop.h b/src/jaegertracing/opentelemetry-cpp/api/include/opentelemetry/_metrics/noop.h new file mode 100644 index 000000000..ecd5c5317 --- /dev/null +++ b/src/jaegertracing/opentelemetry-cpp/api/include/opentelemetry/_metrics/noop.h @@ -0,0 +1,654 @@ +// Copyright The OpenTelemetry Authors +// SPDX-License-Identifier: Apache-2.0 + +#pragma once +#ifdef ENABLE_METRICS_PREVIEW +// Please refer to provider.h for documentation on how to obtain a Meter object. +// +// This file is part of the internal implementation of OpenTelemetry. Nothing in this file should be +// used directly. Please refer to meter.h for documentation on these interfaces. + +# include "opentelemetry/_metrics/async_instruments.h" +# include "opentelemetry/_metrics/instrument.h" +# include "opentelemetry/_metrics/meter.h" +# include "opentelemetry/_metrics/meter_provider.h" +# include "opentelemetry/_metrics/sync_instruments.h" +# include "opentelemetry/nostd/string_view.h" +# include "opentelemetry/nostd/unique_ptr.h" +# include "opentelemetry/version.h" + +# include <memory> + +// TODO: Create generic short pattern for opentelemetry::common and opentelemetry::trace and others +// as necessary + +OPENTELEMETRY_BEGIN_NAMESPACE +namespace metrics +{ +template <class T> +class NoopValueObserver : public ValueObserver<T> +{ + +public: + NoopValueObserver(nostd::string_view /*name*/, + nostd::string_view /*description*/, + nostd::string_view /*unit*/, + bool /*enabled*/, + void (*callback)(ObserverResult<T>)) + {} + + virtual bool IsEnabled() override { return false; } + + virtual nostd::string_view GetName() override { return nostd::string_view(""); } + + virtual nostd::string_view GetDescription() override { return nostd::string_view(""); } + + virtual nostd::string_view GetUnits() override { return nostd::string_view(""); } + + virtual void observe(T value, const common::KeyValueIterable &labels) override {} + + virtual void run() override {} + + virtual InstrumentKind GetKind() override { return InstrumentKind::Counter; } +}; + +template <class T> +class NoopSumObserver : public SumObserver<T> +{ + +public: + NoopSumObserver(nostd::string_view /*name*/, + nostd::string_view /*description*/, + nostd::string_view /*unit*/, + bool /*enabled*/, + void (*callback)(ObserverResult<T>)) + {} + + virtual bool IsEnabled() override { return false; } + + virtual nostd::string_view GetName() override { return nostd::string_view(""); } + + virtual nostd::string_view GetDescription() override { return nostd::string_view(""); } + + virtual nostd::string_view GetUnits() override { return nostd::string_view(""); } + + virtual void observe(T value, const common::KeyValueIterable &labels) override {} + + virtual void run() override {} + + virtual InstrumentKind GetKind() override { return InstrumentKind::Counter; } +}; + +template <class T> +class NoopUpDownSumObserver : public UpDownSumObserver<T> +{ + +public: + NoopUpDownSumObserver(nostd::string_view /*name*/, + nostd::string_view /*description*/, + nostd::string_view /*unit*/, + bool /*enabled*/, + void (*callback)(ObserverResult<T>)) + {} + + virtual bool IsEnabled() override { return false; } + + virtual nostd::string_view GetName() override { return nostd::string_view(""); } + + virtual nostd::string_view GetDescription() override { return nostd::string_view(""); } + + virtual nostd::string_view GetUnits() override { return nostd::string_view(""); } + + virtual void observe(T value, const common::KeyValueIterable &labels) override {} + + virtual void run() override {} + + virtual InstrumentKind GetKind() override { return InstrumentKind::Counter; } +}; + +template <class T> +class BoundNoopCounter : public BoundCounter<T> +{ + +public: + BoundNoopCounter() = default; + + BoundNoopCounter(nostd::string_view /*name*/, + nostd::string_view /*description*/, + nostd::string_view /*unit*/, + bool /*enabled*/) + {} + + virtual void add(T value) override {} + + virtual bool IsEnabled() override { return false; } + + virtual nostd::string_view GetName() override { return nostd::string_view(""); } + + virtual nostd::string_view GetDescription() override { return nostd::string_view(""); } + + virtual nostd::string_view GetUnits() override { return nostd::string_view(""); } + + virtual InstrumentKind GetKind() override { return InstrumentKind::Counter; } +}; + +template <class T> +class NoopCounter : public Counter<T> +{ + +public: + NoopCounter() = default; + + NoopCounter(nostd::string_view /*name*/, + nostd::string_view /*description*/, + nostd::string_view /*unit*/, + bool /*enabled*/) + {} + + nostd::shared_ptr<BoundNoopCounter<T>> bindNoopCounter( + const common::KeyValueIterable & /*labels*/) + { + return nostd::shared_ptr<BoundNoopCounter<T>>(new BoundNoopCounter<T>()); + } + + virtual void add(T value, const common::KeyValueIterable & /*labels*/) override {} + + virtual void update(T value, const common::KeyValueIterable & /*labels*/) override {} + + virtual bool IsEnabled() override { return false; } + + virtual nostd::string_view GetName() override { return nostd::string_view(""); } + + virtual nostd::string_view GetDescription() override { return nostd::string_view(""); } + + virtual nostd::string_view GetUnits() override { return nostd::string_view(""); } + + virtual InstrumentKind GetKind() override { return InstrumentKind::Counter; } +}; + +template <class T> +class BoundNoopUpDownCounter : public BoundUpDownCounter<T> +{ + +public: + BoundNoopUpDownCounter() = default; + + BoundNoopUpDownCounter(nostd::string_view /*name*/, + nostd::string_view /*description*/, + nostd::string_view /*unit*/, + bool /*enabled*/) + {} + + virtual void add(T value) override {} + + virtual bool IsEnabled() override { return false; } + + virtual nostd::string_view GetName() override { return nostd::string_view(""); } + + virtual nostd::string_view GetDescription() override { return nostd::string_view(""); } + + virtual nostd::string_view GetUnits() override { return nostd::string_view(""); } + + virtual InstrumentKind GetKind() override { return InstrumentKind::UpDownCounter; } +}; + +template <class T> +class NoopUpDownCounter : public UpDownCounter<T> +{ + +public: + NoopUpDownCounter() = default; + + NoopUpDownCounter(nostd::string_view /*name*/, + nostd::string_view /*description*/, + nostd::string_view /*unit*/, + bool /*enabled*/) + {} + + nostd::shared_ptr<BoundNoopUpDownCounter<T>> bindNoopUpDownCounter( + const common::KeyValueIterable & /*labels*/) + { + return nostd::shared_ptr<BoundNoopUpDownCounter<T>>(new BoundNoopUpDownCounter<T>()); + } + + virtual void add(T value, const common::KeyValueIterable & /*labels*/) override {} + + virtual void update(T value, const common::KeyValueIterable & /*labels*/) override {} + + virtual bool IsEnabled() override { return false; } + + virtual nostd::string_view GetName() override { return nostd::string_view(""); } + + virtual nostd::string_view GetDescription() override { return nostd::string_view(""); } + + virtual nostd::string_view GetUnits() override { return nostd::string_view(""); } + + virtual InstrumentKind GetKind() override { return InstrumentKind::UpDownCounter; } +}; + +template <class T> +class BoundNoopValueRecorder : public BoundValueRecorder<T> +{ + +public: + BoundNoopValueRecorder() = default; + + BoundNoopValueRecorder(nostd::string_view /*name*/, + nostd::string_view /*description*/, + nostd::string_view /*unit*/, + bool /*enabled*/) + {} + + virtual void record(T value) override {} + + virtual bool IsEnabled() override { return false; } + + virtual nostd::string_view GetName() override { return nostd::string_view(""); } + + virtual nostd::string_view GetDescription() override { return nostd::string_view(""); } + + virtual nostd::string_view GetUnits() override { return nostd::string_view(""); } + + virtual InstrumentKind GetKind() override { return InstrumentKind::ValueRecorder; } +}; + +template <class T> +class NoopValueRecorder : public ValueRecorder<T> +{ + +public: + NoopValueRecorder() = default; + + NoopValueRecorder(nostd::string_view /*name*/, + nostd::string_view /*description*/, + nostd::string_view /*unit*/, + bool /*enabled*/) + {} + + nostd::shared_ptr<BoundNoopValueRecorder<T>> bindNoopValueRecorder( + const common::KeyValueIterable & /*labels*/) + { + return nostd::shared_ptr<BoundNoopValueRecorder<T>>(new BoundNoopValueRecorder<T>()); + } + + virtual void record(T value, const common::KeyValueIterable & /*labels*/) override {} + + virtual void update(T value, const common::KeyValueIterable & /*labels*/) override {} + + virtual bool IsEnabled() override { return false; } + + virtual nostd::string_view GetName() override { return nostd::string_view(""); } + + virtual nostd::string_view GetDescription() override { return nostd::string_view(""); } + + virtual nostd::string_view GetUnits() override { return nostd::string_view(""); } + + virtual InstrumentKind GetKind() override { return InstrumentKind::ValueRecorder; } +}; + +/** + * No-op implementation of Meter. This class should not be used directly. + */ +class NoopMeter : public Meter +{ +public: + NoopMeter() = default; + + /** + * + * Creates a new NoopCounter<T> and returns a shared ptr to that counter. + * + * @param name the name of the instrument. + * @param description a brief description of the instrument. + * @param unit the unit of metric values following https://unitsofmeasure.org/ucum.html. + * @param enabled a boolean that turns the metric instrument on and off. + * @return + */ + nostd::shared_ptr<Counter<short>> NewShortCounter(nostd::string_view name, + nostd::string_view description, + nostd::string_view unit, + const bool enabled) override + { + return nostd::shared_ptr<Counter<short>>{ + new NoopCounter<short>(name, description, unit, enabled)}; + } + + nostd::shared_ptr<Counter<int>> NewIntCounter(nostd::string_view name, + nostd::string_view description, + nostd::string_view unit, + const bool enabled) override + { + return nostd::shared_ptr<Counter<int>>{new NoopCounter<int>(name, description, unit, enabled)}; + } + + nostd::shared_ptr<Counter<float>> NewFloatCounter(nostd::string_view name, + nostd::string_view description, + nostd::string_view unit, + const bool enabled) override + { + return nostd::shared_ptr<Counter<float>>{ + new NoopCounter<float>(name, description, unit, enabled)}; + } + + nostd::shared_ptr<Counter<double>> NewDoubleCounter(nostd::string_view name, + nostd::string_view description, + nostd::string_view unit, + const bool enabled) override + { + return nostd::shared_ptr<Counter<double>>{ + new NoopCounter<double>(name, description, unit, enabled)}; + } + + /** + * + * Creates a new NoopCounter<T> and returns a shared ptr to that counter. + * + * @param name the name of the instrument. + * @param description a brief description of the instrument. + * @param unit the unit of metric values following https://unitsofmeasure.org/ucum.html. + * @param enabled a boolean that turns the metric instrument on and off. + * @return + */ + nostd::shared_ptr<UpDownCounter<short>> NewShortUpDownCounter(nostd::string_view name, + nostd::string_view description, + nostd::string_view unit, + const bool enabled) override + { + return nostd::shared_ptr<UpDownCounter<short>>{ + new NoopUpDownCounter<short>(name, description, unit, enabled)}; + } + + nostd::shared_ptr<UpDownCounter<int>> NewIntUpDownCounter(nostd::string_view name, + nostd::string_view description, + nostd::string_view unit, + const bool enabled) override + { + return nostd::shared_ptr<UpDownCounter<int>>{ + new NoopUpDownCounter<int>(name, description, unit, enabled)}; + } + + nostd::shared_ptr<UpDownCounter<float>> NewFloatUpDownCounter(nostd::string_view name, + nostd::string_view description, + nostd::string_view unit, + const bool enabled) override + { + return nostd::shared_ptr<UpDownCounter<float>>{ + new NoopUpDownCounter<float>(name, description, unit, enabled)}; + } + + nostd::shared_ptr<UpDownCounter<double>> NewDoubleUpDownCounter(nostd::string_view name, + nostd::string_view description, + nostd::string_view unit, + const bool enabled) override + { + return nostd::shared_ptr<UpDownCounter<double>>{ + new NoopUpDownCounter<double>(name, description, unit, enabled)}; + } + + /** + * + * Creates a new ValueRecorder<T> and returns a shared ptr to that counter. + * + * @param name the name of the instrument. + * @param description a brief description of the instrument. + * @param unit the unit of metric values following https://unitsofmeasure.org/ucum.html. + * @param enabled a boolean that turns the metric instrument on and off. + * @return + */ + nostd::shared_ptr<ValueRecorder<short>> NewShortValueRecorder(nostd::string_view name, + nostd::string_view description, + nostd::string_view unit, + const bool enabled) override + { + return nostd::shared_ptr<ValueRecorder<short>>{ + new NoopValueRecorder<short>(name, description, unit, enabled)}; + } + + nostd::shared_ptr<ValueRecorder<int>> NewIntValueRecorder(nostd::string_view name, + nostd::string_view description, + nostd::string_view unit, + const bool enabled) override + { + return nostd::shared_ptr<ValueRecorder<int>>{ + new NoopValueRecorder<int>(name, description, unit, enabled)}; + } + + nostd::shared_ptr<ValueRecorder<float>> NewFloatValueRecorder(nostd::string_view name, + nostd::string_view description, + nostd::string_view unit, + const bool enabled) override + { + return nostd::shared_ptr<ValueRecorder<float>>{ + new NoopValueRecorder<float>(name, description, unit, enabled)}; + } + + nostd::shared_ptr<ValueRecorder<double>> NewDoubleValueRecorder(nostd::string_view name, + nostd::string_view description, + nostd::string_view unit, + const bool enabled) override + { + return nostd::shared_ptr<ValueRecorder<double>>{ + new NoopValueRecorder<double>(name, description, unit, enabled)}; + } + + /** + * + * Creates a new SumObserver<T> and returns a shared ptr to that counter. + * + * @param name the name of the instrument. + * @param description a brief description of the instrument. + * @param unit the unit of metric values following https://unitsofmeasure.org/ucum.html. + * @param enabled a boolean that turns the metric instrument on and off. + * @return + */ + nostd::shared_ptr<SumObserver<short>> NewShortSumObserver( + nostd::string_view name, + nostd::string_view description, + nostd::string_view unit, + const bool enabled, + void (*callback)(ObserverResult<short>)) override + { + return nostd::shared_ptr<SumObserver<short>>{ + new NoopSumObserver<short>(name, description, unit, enabled, callback)}; + } + + nostd::shared_ptr<SumObserver<int>> NewIntSumObserver( + nostd::string_view name, + nostd::string_view description, + nostd::string_view unit, + const bool enabled, + void (*callback)(ObserverResult<int>)) override + { + return nostd::shared_ptr<SumObserver<int>>{ + new NoopSumObserver<int>(name, description, unit, enabled, callback)}; + } + + nostd::shared_ptr<SumObserver<float>> NewFloatSumObserver( + nostd::string_view name, + nostd::string_view description, + nostd::string_view unit, + const bool enabled, + void (*callback)(ObserverResult<float>)) override + { + return nostd::shared_ptr<SumObserver<float>>{ + new NoopSumObserver<float>(name, description, unit, enabled, callback)}; + } + + nostd::shared_ptr<SumObserver<double>> NewDoubleSumObserver( + nostd::string_view name, + nostd::string_view description, + nostd::string_view unit, + const bool enabled, + void (*callback)(ObserverResult<double>)) override + { + return nostd::shared_ptr<SumObserver<double>>{ + new NoopSumObserver<double>(name, description, unit, enabled, callback)}; + } + + /** + * + * Creates a new UpDownSumObserver<T> and returns a shared ptr to that counter. + * + * @param name the name of the instrument. + * @param description a brief description of the instrument. + * @param unit the unit of metric values following https://unitsofmeasure.org/ucum.html. + * @param enabled a boolean that turns the metric instrument on and off. + * @return + */ + nostd::shared_ptr<UpDownSumObserver<short>> NewShortUpDownSumObserver( + nostd::string_view name, + nostd::string_view description, + nostd::string_view unit, + const bool enabled, + void (*callback)(ObserverResult<short>)) override + { + return nostd::shared_ptr<UpDownSumObserver<short>>{ + new NoopUpDownSumObserver<short>(name, description, unit, enabled, callback)}; + } + + nostd::shared_ptr<UpDownSumObserver<int>> NewIntUpDownSumObserver( + nostd::string_view name, + nostd::string_view description, + nostd::string_view unit, + const bool enabled, + void (*callback)(ObserverResult<int>)) override + { + return nostd::shared_ptr<UpDownSumObserver<int>>{ + new NoopUpDownSumObserver<int>(name, description, unit, enabled, callback)}; + } + + nostd::shared_ptr<UpDownSumObserver<float>> NewFloatUpDownSumObserver( + nostd::string_view name, + nostd::string_view description, + nostd::string_view unit, + const bool enabled, + void (*callback)(ObserverResult<float>)) override + { + return nostd::shared_ptr<UpDownSumObserver<float>>{ + new NoopUpDownSumObserver<float>(name, description, unit, enabled, callback)}; + } + + nostd::shared_ptr<UpDownSumObserver<double>> NewDoubleUpDownSumObserver( + nostd::string_view name, + nostd::string_view description, + nostd::string_view unit, + const bool enabled, + void (*callback)(ObserverResult<double>)) override + { + return nostd::shared_ptr<UpDownSumObserver<double>>{ + new NoopUpDownSumObserver<double>(name, description, unit, enabled, callback)}; + } + + /** + * + * Creates a new ValueObserverObserver<T> and returns a shared ptr to that counter. + * + * @param name the name of the instrument. + * @param description a brief description of the instrument. + * @param unit the unit of metric values following https://unitsofmeasure.org/ucum.html. + * @param enabled a boolean that turns the metric instrument on and off. + * @return + */ + nostd::shared_ptr<ValueObserver<short>> NewShortValueObserver( + nostd::string_view name, + nostd::string_view description, + nostd::string_view unit, + const bool enabled, + void (*callback)(ObserverResult<short>)) override + { + return nostd::shared_ptr<ValueObserver<short>>{ + new NoopValueObserver<short>(name, description, unit, enabled, callback)}; + } + + nostd::shared_ptr<ValueObserver<int>> NewIntValueObserver( + nostd::string_view name, + nostd::string_view description, + nostd::string_view unit, + const bool enabled, + void (*callback)(ObserverResult<int>)) override + { + return nostd::shared_ptr<ValueObserver<int>>{ + new NoopValueObserver<int>(name, description, unit, enabled, callback)}; + } + + nostd::shared_ptr<ValueObserver<float>> NewFloatValueObserver( + nostd::string_view name, + nostd::string_view description, + nostd::string_view unit, + const bool enabled, + void (*callback)(ObserverResult<float>)) override + { + return nostd::shared_ptr<ValueObserver<float>>{ + new NoopValueObserver<float>(name, description, unit, enabled, callback)}; + } + + nostd::shared_ptr<ValueObserver<double>> NewDoubleValueObserver( + nostd::string_view name, + nostd::string_view description, + nostd::string_view unit, + const bool enabled, + void (*callback)(ObserverResult<double>)) override + { + return nostd::shared_ptr<ValueObserver<double>>{ + new NoopValueObserver<double>(name, description, unit, enabled, callback)}; + } + + /** + * + * Utility method that allows users to atomically record measurements to a set of + * synchronous metric instruments with a common set of labels. + * + * @param labels the set of labels to associate with this recorder. + * @param instrs the instruments to record to. + * @param values the value to record to those instruments. + */ + void RecordShortBatch(const common::KeyValueIterable &labels, + nostd::span<SynchronousInstrument<short> *> instruments, + nostd::span<const short> values) noexcept override + { + // No-op + } + + void RecordIntBatch(const common::KeyValueIterable &labels, + nostd::span<SynchronousInstrument<int> *> instruments, + nostd::span<const int> values) noexcept override + { + // No-op + } + + void RecordFloatBatch(const common::KeyValueIterable &labels, + nostd::span<SynchronousInstrument<float> *> instruments, + nostd::span<const float> values) noexcept override + { + // No-op + } + + void RecordDoubleBatch(const common::KeyValueIterable &labels, + nostd::span<SynchronousInstrument<double> *> instruments, + nostd::span<const double> values) noexcept override + { + // No-op + } +}; + +class NoopMeterProvider final : public opentelemetry::metrics::MeterProvider +{ +public: + NoopMeterProvider() + : meter_{nostd::shared_ptr<opentelemetry::metrics::NoopMeter>( + new opentelemetry::metrics::NoopMeter)} + {} + + nostd::shared_ptr<opentelemetry::metrics::Meter> GetMeter( + nostd::string_view library_name, + nostd::string_view library_version) override + { + return meter_; + } + +private: + nostd::shared_ptr<opentelemetry::metrics::Meter> meter_; +}; +} // namespace metrics +OPENTELEMETRY_END_NAMESPACE +#endif |