39typedef struct xtc_counter xtc_counter_t;
40typedef struct xtc_gauge xtc_gauge_t;
41typedef struct xtc_hist xtc_hist_t;
43typedef enum xtc_metric_kind {
44 XTC_METRIC_COUNTER = 0,
49typedef int (*xtc_metric_visit_fn)(
const char *name,
50 xtc_metric_kind_t kind,
77int xtc_counter_create(
const char *name, xtc_counter_t **out);
78void xtc_counter_destroy(xtc_counter_t *c);
79void xtc_counter_inc(xtc_counter_t *c);
80void xtc_counter_add(xtc_counter_t *c, int64_t delta);
81uint64_t xtc_counter_read(
const xtc_counter_t *c);
83int xtc_gauge_create(
const char *name, xtc_gauge_t **out);
84void xtc_gauge_destroy(xtc_gauge_t *g);
85void xtc_gauge_set(xtc_gauge_t *g, int64_t v);
86void xtc_gauge_add(xtc_gauge_t *g, int64_t delta);
87int64_t xtc_gauge_read(
const xtc_gauge_t *g);
89int xtc_hist_create(
const char *name, xtc_hist_t **out);
90void xtc_hist_destroy(xtc_hist_t *h);
91void xtc_hist_record(xtc_hist_t *h, int64_t value_ns);
92int64_t xtc_hist_quantile(
const xtc_hist_t *h,
double q);
93uint64_t xtc_hist_count(
const xtc_hist_t *h);
95int xtc_metrics_iterate(xtc_metric_visit_fn fn,
void *user);
96int xtc_metrics_dump_prometheus(
int fd);