libprom
@VERSION@
C based libraries to expose metrics in Promtheus exposition format
|
00001 /* 00002 Copyright 2019-2020 DigitalOcean Inc. 00003 Copyright 2021 Jens Elkner <jel+libprom@cs.uni-magdeburg.de> 00004 00005 Licensed under the Apache License, Version 2.0 (the "License"); 00006 you may not use this file except in compliance with the License. 00007 You may obtain a copy of the License at 00008 00009 http://www.apache.org/licenses/LICENSE-2.0 00010 00011 Unless required by applicable law or agreed to in writing, software 00012 distributed under the License is distributed on an "AS IS" BASIS, 00013 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 00014 See the License for the specific language governing permissions and 00015 limitations under the License. 00016 */ 00017 00018 #ifndef PROM_COLLECTOR_H 00019 #define PROM_COLLECTOR_H 00020 00021 #include <sys/types.h> 00022 #include "prom_map.h" 00023 #include "prom_metric.h" 00024 00034 typedef struct prom_collector prom_collector_t; 00035 00047 typedef prom_map_t *prom_collect_fn(prom_collector_t *self); 00048 00056 typedef void prom_collector_free_data_fn(prom_collector_t *self); 00057 00064 prom_collector_t *prom_collector_new(const char *name); 00065 00083 prom_collector_t *ppc_new(const char *limits_path, const char *stat_path, pid_t pid, const char **label_keys, const char **label_vals); 00084 00095 int prom_collector_destroy(prom_collector_t *self); 00096 00097 00104 int prom_collector_destroy_generic(void *gen); 00105 00110 void prom_collector_free_generic(void *gen); 00111 00120 int prom_collector_add_metric(prom_collector_t *self, prom_metric_t *metric); 00121 00129 int prom_collector_set_collect_fn(prom_collector_t *self, prom_collect_fn *fn); 00130 00145 void *prom_collector_data_set(prom_collector_t *self, void *data, prom_collector_free_data_fn *fn); 00146 00153 void *prom_collector_data_get(prom_collector_t *self); 00154 00161 prom_map_t *prom_collector_metrics_get(prom_collector_t *self); 00162 00163 #endif // PROM_COLLECTOR_H