1 /* 2 * Copyright (c) 2024 Mustafa Abdullah Kus, Sparse Technology 3 * 4 * SPDX-License-Identifier: Apache-2.0 5 */ 6 7 #ifndef ZEPHYR_INCLUDE_PROMETHEUS_FORMATTER_H_ 8 #define ZEPHYR_INCLUDE_PROMETHEUS_FORMATTER_H_ 9 10 /** 11 * @file 12 * 13 * @brief Prometheus formatter APIs. 14 * 15 * @addtogroup prometheus 16 * @{ 17 */ 18 19 #include <zephyr/net/prometheus/collector.h> 20 21 /** 22 * @brief Format exposition data for Prometheus 23 * 24 * Formats the exposition data collected by the specified collector into the provided buffer. 25 * Function will format metric data according to Prometheus text-based format 26 * 27 * @param collector Pointer to the collector containing the data to format. 28 * @param buffer Pointer to the buffer where the formatted exposition data will be stored. 29 * @param buffer_size Size of the buffer. 30 * 31 * @return 0 on success, negative errno on error. 32 */ 33 int prometheus_format_exposition(struct prometheus_collector *collector, char *buffer, 34 size_t buffer_size); 35 36 /** 37 * @brief Format exposition data for one metric for Prometheus 38 * 39 * Formats the exposition data of one specific metric into the provided buffer. 40 * Function will format metric data according to Prometheus text-based format. 41 * 42 * @param metric Pointer to the metric containing the data to format. 43 * @param buffer Pointer to the buffer where the formatted exposition data will be stored. 44 * @param buffer_size Size of the buffer. 45 * @param written How many bytes have been written to the buffer. 46 * 47 * @return 0 on success, negative errno on error. 48 */ 49 int prometheus_format_one_metric(struct prometheus_metric *metric, char *buffer, 50 size_t buffer_size, int *written); 51 52 /** 53 * @} 54 */ 55 56 #endif /* ZEPHYR_INCLUDE_PROMETHEUS_FORMATTER_H_ */ 57