diff --git a/src/OpaqueVal.h b/src/OpaqueVal.h index ba0a048979..7bf96c2c7e 100644 --- a/src/OpaqueVal.h +++ b/src/OpaqueVal.h @@ -15,9 +15,6 @@ #include "zeek/RandTest.h" #include "zeek/Val.h" #include "zeek/digest.h" -#include "zeek/telemetry/Counter.h" -#include "zeek/telemetry/Gauge.h" -#include "zeek/telemetry/Histogram.h" namespace broker { class data; diff --git a/src/storage/Manager.cc b/src/storage/Manager.cc index abd2848832..b511b33b64 100644 --- a/src/storage/Manager.cc +++ b/src/storage/Manager.cc @@ -7,6 +7,8 @@ #include "zeek/RunState.h" #include "zeek/storage/ReturnCode.h" +#include "const.bif.netvar_h" + std::atomic_flag expire_running; namespace zeek::storage { diff --git a/src/telemetry/Opaques.cc b/src/telemetry/Opaques.cc index fdd9edb6e0..3f1fa6c2a3 100644 --- a/src/telemetry/Opaques.cc +++ b/src/telemetry/Opaques.cc @@ -2,6 +2,10 @@ #include "Opaques.h" +#include "zeek/telemetry/Counter.h" +#include "zeek/telemetry/Gauge.h" +#include "zeek/telemetry/Histogram.h" + using namespace zeek; TelemetryVal::TelemetryVal(std::shared_ptr) : OpaqueVal(counter_metric_type) {} @@ -22,3 +26,33 @@ IMPLEMENT_OPAQUE_VALUE(GaugeMetricVal) IMPLEMENT_OPAQUE_VALUE(GaugeMetricFamilyVal) IMPLEMENT_OPAQUE_VALUE(HistogramMetricVal) IMPLEMENT_OPAQUE_VALUE(HistogramMetricFamilyVal) + +template<> +const char* CounterMetricVal::OpaqueName() const { + return telemetry::Counter::OpaqueName; +} + +template<> +const char* CounterMetricFamilyVal::OpaqueName() const { + return telemetry::CounterFamily::OpaqueName; +} + +template<> +const char* GaugeMetricVal::OpaqueName() const { + return telemetry::Gauge::OpaqueName; +} + +template<> +const char* GaugeMetricFamilyVal::OpaqueName() const { + return telemetry::GaugeFamily::OpaqueName; +} + +template<> +const char* HistogramMetricVal::OpaqueName() const { + return telemetry::Histogram::OpaqueName; +} + +template<> +const char* HistogramMetricFamilyVal::OpaqueName() const { + return telemetry::HistogramFamily::OpaqueName; +} diff --git a/src/telemetry/Opaques.h b/src/telemetry/Opaques.h index 0de7367932..d5c5c468c9 100644 --- a/src/telemetry/Opaques.h +++ b/src/telemetry/Opaques.h @@ -10,6 +10,17 @@ namespace zeek { +namespace telemetry { + +class Counter; +class CounterFamily; +class Gauge; +class GaugeFamily; +class Histogram; +class HistogramFamily; + +} // namespace telemetry + /** * Base class for metric handles. Handle types are not serializable. */ @@ -43,7 +54,7 @@ public: protected: ValPtr DoClone(CloneState*) override { return make_intrusive(hdl); } - const char* OpaqueName() const override { return Handle::OpaqueName; } + const char* OpaqueName() const override; private: HandleType hdl;