async_instruments_test.cc 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. // Copyright The OpenTelemetry Authors
  2. // SPDX-License-Identifier: Apache-2.0
  3. #include <gtest/gtest.h>
  4. #include <map>
  5. #include <memory>
  6. #include <string>
  7. #include <utility>
  8. #include "opentelemetry/metrics/observer_result.h"
  9. #include "opentelemetry/sdk/metrics/async_instruments.h"
  10. #include "opentelemetry/sdk/metrics/instruments.h"
  11. #include "opentelemetry/sdk/metrics/state/metric_storage.h"
  12. #include "opentelemetry/sdk/metrics/state/multi_metric_storage.h"
  13. #include "opentelemetry/sdk/metrics/state/observable_registry.h"
  14. using namespace opentelemetry;
  15. using namespace opentelemetry::sdk::metrics;
  16. using M = std::map<std::string, std::string>;
  17. namespace
  18. {
  19. // NOLINTNEXTLINE
  20. void asyc_generate_measurements(opentelemetry::metrics::ObserverResult /* observer */,
  21. void * /* state */)
  22. {}
  23. } // namespace
  24. TEST(AsyncInstruments, ObservableInstrument)
  25. {
  26. InstrumentDescriptor instrument_descriptor = {"long_counter", "description", "1",
  27. InstrumentType::kObservableCounter,
  28. InstrumentValueType::kLong};
  29. std::shared_ptr<ObservableRegistry> observable_registry(new ObservableRegistry());
  30. std::unique_ptr<AsyncWritableMetricStorage> metric_storage(new AsyncMultiMetricStorage());
  31. ObservableInstrument observable_counter_long(instrument_descriptor, std::move(metric_storage),
  32. observable_registry);
  33. observable_counter_long.AddCallback(asyc_generate_measurements, nullptr);
  34. }