libprom  @VERSION@
C based libraries to expose metrics in Promtheus exposition format
prom/include/prom_collector.h
Go to the documentation of this file.
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
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Defines