From 9d6ba594b98221de887c87a070bc22044dce58b3 Mon Sep 17 00:00:00 2001 From: Tim Wojtulewicz Date: Mon, 3 Jun 2024 10:41:50 -0700 Subject: [PATCH] Use forward declarations of prometheus-cpp types in telemetry::Manager --- src/telemetry/Manager.cc | 6 ++++++ src/telemetry/Manager.h | 9 ++++++--- 2 files changed, 12 insertions(+), 3 deletions(-) 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