3#ifdef LOGIT_WITH_PROMETHEUS
12#ifndef LOGIT_WITH_PROMETHEUS
14 LOGIT_WARN(
"Prometheus payload example requires LOGIT_WITH_PROMETHEUS=ON");
19 unsigned long long jobs_processed = 41;
24 "Current application queue depth",
25 [&queue_depth]() {
return static_cast<double>(queue_depth); },
26 {{
"queue",
"orders"}});
28 "jobs_processed_total",
29 "Total processed jobs",
30 [&jobs_processed]() {
return static_cast<double>(jobs_processed); });
36 config.
on_collect = [®istry](std::vector<logit::PrometheusMetricFamily>& families) {
40 std::cout << payload << std::endl;
50 LOGIT_INFO(
"Prometheus payload logger started");
Declarative registry for custom Prometheus application metrics.
Exposes log metrics as Prometheus text exposition format via user-provided callback.
Stores custom gauge and counter callbacks for Prometheus collection.
void collect(std::vector< PrometheusMetricFamily > &out) const
Appends current registry metrics to the output vector.
void set_counter(const std::string &name, const std::string &help, std::function< double()> value_fn, std::vector< PrometheusLabel > labels={})
Registers or replaces a counter metric callback.
void set_gauge(const std::string &name, const std::string &help, std::function< double()> value_fn, std::vector< PrometheusLabel > labels={})
Registers or replaces a gauge metric callback.
#define LOGIT_ADD_CONSOLE_DEFAULT()
Macro for adding the default console logger.
#define LOGIT_WAIT()
Macro for waiting for all asynchronous loggers to finish processing.
#define LOGIT_SHUTDOWN()
Macro for shutting down logger system.
#define LOGIT_ADD_LOGGER(logger_type, logger_args, formatter_type, formatter_args)
Macro for adding a logger with a specific formatter.
Unified umbrella header for the LogIt++ library.
std::function< void(std::string)> on_payload
std::function< void(std::vector< PrometheusMetricFamily > &)> on_collect
PrometheusTextFormatConfig format
bool include_build_info
Emit logit_build_info metric.
std::string metric_prefix
Prefix applied to built-in metric names.