diff --git a/src/telemetry/Manager.cc b/src/telemetry/Manager.cc index a5a0ac872d..3ad3968e7d 100644 --- a/src/telemetry/Manager.cc +++ b/src/telemetry/Manager.cc @@ -6,6 +6,8 @@ // CivetServer is from the civetweb submodule in prometheus-cpp #include +#include +#include #include #include #include @@ -25,6 +27,10 @@ namespace zeek::telemetry { Manager::Manager() { prometheus_registry = std::make_shared(); } +// This can't be defined as =default because of the use of unique_ptr with a forward-declared type +// in Manager.h +Manager::~Manager() {} + void Manager::InitPostScript() { // Metrics port setting is used to calculate a URL for prometheus scraping std::string prometheus_url; diff --git a/src/telemetry/Manager.h b/src/telemetry/Manager.h index f81a39a6d5..c4c2537f1a 100644 --- a/src/telemetry/Manager.h +++ b/src/telemetry/Manager.h @@ -2,8 +2,6 @@ #pragma once -#include -#include #include #include #include @@ -24,6 +22,11 @@ class RecordVal; using RecordValPtr = IntrusivePtr; } // namespace zeek +namespace prometheus { +class Exposer; +class Registry; +} // namespace prometheus + namespace zeek::telemetry { /** @@ -37,7 +40,7 @@ public: Manager& operator=(const Manager&) = delete; - ~Manager() = default; + ~Manager(); /** * Initialization of the manager. This is called late during Zeek's