35#if KCENON_HAS_COMMON_SYSTEM
36#include <kcenon/common/concepts/concepts.h>
77 std::is_class_v<T> && std::is_copy_constructible_v<T> &&
requires(
const T t) {
78 { t.name } -> std::convertible_to<std::string>;
79 { t.value } -> std::convertible_to<double>;
99 { t.get_current_metrics() };
100 { t.get_source_name() } -> std::convertible_to<std::string>;
101 { t.is_healthy() } -> std::convertible_to<bool>;
120 { t.collect_metrics() };
121 { t.is_collecting() } -> std::convertible_to<bool>;
122 { t.get_metric_types() };
141 { t.on_metrics_updated(std::declval<std::vector<int>>()) };
176template <
typename H,
typename E>
178 std::invocable<H, const E&> && std::is_void_v<std::invoke_result_t<H, const E&>>;
198template <
typename F,
typename M>
200 std::invocable<F, const M&> && std::convertible_to<std::invoke_result_t<F, const M&>,
bool>;
219template <
typename F,
typename M>
262 { t.store(std::declval<std::vector<int>>()) };
263 { t.is_connected() } -> std::convertible_to<bool>;
282 { t.export_metrics(std::declval<std::vector<int>>()) };
283 { t.is_ready() } -> std::convertible_to<bool>;
302 { t.is_healthy() } -> std::convertible_to<bool>;
322 { t.get_trace_id() } -> std::convertible_to<std::string>;
323 { t.get_span_id() } -> std::convertible_to<std::string>;
A configuration type that supports validation.
A type that can export metrics to external systems.
A type that supports health checking.
A type that can collect metrics from sources.
A callable that filters metrics based on criteria.
A type that can provide metrics.
A type that can be used as a metric in the monitoring system.
A type that can be used as a metric value.
A callable that can handle monitoring events.
A type that can be used as a monitoring event.
A type that can observe metric updates.
A type that can store metrics data.
A type that represents a tracing context.
Unified feature flags header for monitoring_system.