| 
									
										
										
										
											2019-05-02 19:45:27 -05:00
										 |  |  | /*
 | 
					
						
							|  |  |  |  * Prometheus Internal API | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * Copyright (C) 2019 Sangoma, Inc. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * Matt Jordan <mjordan@digium.com> | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * See http://www.asterisk.org for more information about
 | 
					
						
							|  |  |  |  * the Asterisk project. Please do not directly contact | 
					
						
							|  |  |  |  * any of the maintainers of this project for assistance; | 
					
						
							|  |  |  |  * the project provides a web site, mailing lists and IRC | 
					
						
							|  |  |  |  * channels for your use. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * This program is free software, distributed under the terms of | 
					
						
							|  |  |  |  * the GNU General Public License Version 2. See the LICENSE file | 
					
						
							|  |  |  |  * at the top of the source tree. | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #ifndef PROMETHEUS_INTERNAL_H__
 | 
					
						
							|  |  |  | #define PROMETHEUS_INTERNAL_H__
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /*!
 | 
					
						
							| 
									
										
										
										
											2021-11-12 19:41:09 +01:00
										 |  |  |  * \file | 
					
						
							| 
									
										
										
										
											2019-05-02 19:45:27 -05:00
										 |  |  |  * | 
					
						
							|  |  |  |  * \brief Prometheus Metric Internal API | 
					
						
							|  |  |  |  * | 
					
						
							| 
									
										
										
										
											2021-11-12 19:41:09 +01:00
										 |  |  |  * This module provides internal APIs for res_prometheus. | 
					
						
							| 
									
										
										
										
											2019-05-02 19:45:27 -05:00
										 |  |  |  * It should not be used outsize of that module, and should | 
					
						
							|  |  |  |  * typically only provide intialization functions for units that | 
					
						
							|  |  |  |  * want to register metrics / handlers with the core API. | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-01-03 10:28:28 -06:00
										 |  |  | /*!
 | 
					
						
							|  |  |  |  * \brief Retrieve the amount of time it took to perform the last scrape | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * \details Time returned is in milliseconds | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * \retval The scrape duration, in milliseconds | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | int64_t prometheus_last_scrape_duration_get(void); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /*!
 | 
					
						
							|  |  |  |  * \brief Retrieve the timestamp when the last scrape occurred | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * \retval The time when the last scrape occurred | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | struct timeval prometheus_last_scrape_time_get(void); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /*!
 | 
					
						
							|  |  |  |  * \brief Get the raw output of what a scrape would produce | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * \details | 
					
						
							|  |  |  |  * It can be useful to dump what a scrape will look like. | 
					
						
							|  |  |  |  * This function returns the raw string representation | 
					
						
							|  |  |  |  * of the metrics. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * \retval NULL on error | 
					
						
							|  |  |  |  * \retval Malloc'd ast_str on success | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | struct ast_str *prometheus_scrape_to_string(void); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /*!
 | 
					
						
							|  |  |  |  * \brief Initialize CLI command | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * \retval 0 success | 
					
						
							|  |  |  |  * \retval -1 error | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | int cli_init(void); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-05-02 19:45:27 -05:00
										 |  |  | /*!
 | 
					
						
							|  |  |  |  * \brief Initialize channel metrics | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * \retval 0 success | 
					
						
							|  |  |  |  * \retval -1 error | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | int channel_metrics_init(void); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-05-09 09:41:02 -05:00
										 |  |  | /*!
 | 
					
						
							|  |  |  |  * \brief Initialize endpoint metrics | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * \retval 0 success | 
					
						
							|  |  |  |  * \retval -1 error | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | int endpoint_metrics_init(void); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-05-09 09:41:49 -05:00
										 |  |  | /*!
 | 
					
						
							|  |  |  |  * \brief Initialize bridge metrics | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * \retval 0 success | 
					
						
							|  |  |  |  * \retval -1 error | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | int bridge_metrics_init(void); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-05-10 09:36:01 -05:00
										 |  |  | /*!
 | 
					
						
							|  |  |  |  * \brief Initialize PJSIP outbound registration metrics | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * \retval 0 success | 
					
						
							|  |  |  |  * \retval -1 error | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | int pjsip_outbound_registration_metrics_init(void); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-05-02 19:45:27 -05:00
										 |  |  | #endif /* #define PROMETHEUS_INTERNAL_H__ */
 |