common.h 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. // Copyright The OpenTelemetry Authors
  2. // SPDX-License-Identifier: Apache-2.0
  3. #pragma once
  4. #include <chrono>
  5. #include <memory>
  6. #include "opentelemetry/sdk/common/exporter_utils.h"
  7. #include "opentelemetry/sdk/metrics/export/metric_producer.h"
  8. #include "opentelemetry/sdk/metrics/instruments.h"
  9. #include "opentelemetry/sdk/metrics/metric_reader.h"
  10. #include "opentelemetry/sdk/metrics/push_metric_exporter.h"
  11. #include "opentelemetry/sdk/metrics/state/metric_collector.h"
  12. class MockMetricExporter : public opentelemetry::sdk::metrics::PushMetricExporter
  13. {
  14. public:
  15. MockMetricExporter() = default;
  16. opentelemetry::sdk::common::ExportResult Export(
  17. const opentelemetry::sdk::metrics::ResourceMetrics &) noexcept override;
  18. opentelemetry::sdk::metrics::AggregationTemporality GetAggregationTemporality(
  19. opentelemetry::sdk::metrics::InstrumentType) const noexcept override;
  20. bool ForceFlush(std::chrono::microseconds) noexcept override;
  21. bool Shutdown(std::chrono::microseconds) noexcept override;
  22. };
  23. class MockMetricReader : public opentelemetry::sdk::metrics::MetricReader
  24. {
  25. public:
  26. MockMetricReader(std::unique_ptr<opentelemetry::sdk::metrics::PushMetricExporter>);
  27. MockMetricReader();
  28. opentelemetry::sdk::metrics::AggregationTemporality GetAggregationTemporality(
  29. opentelemetry::sdk::metrics::InstrumentType) const noexcept override;
  30. bool OnForceFlush(std::chrono::microseconds) noexcept override;
  31. bool OnShutDown(std::chrono::microseconds) noexcept override;
  32. void OnInitialized() noexcept override;
  33. private:
  34. std::unique_ptr<opentelemetry::sdk::metrics::PushMetricExporter> exporter_;
  35. };
  36. class MockCollectorHandle : public opentelemetry::sdk::metrics::CollectorHandle
  37. {
  38. public:
  39. MockCollectorHandle(opentelemetry::sdk::metrics::AggregationTemporality);
  40. ~MockCollectorHandle() override = default;
  41. opentelemetry::sdk::metrics::AggregationTemporality GetAggregationTemporality(
  42. opentelemetry::sdk::metrics::InstrumentType) noexcept override;
  43. private:
  44. opentelemetry::sdk::metrics::AggregationTemporality temporality_;
  45. };