PROMETHEUS module
Admin Guide
Section titled “Admin Guide”Overview
Section titled “Overview”This module provides a HTTP interface for the Prometheus monitoring system, allowing it to fetch different statistics from OpenSIPS.
In order to use it, you have to explicitely define the statistics you want to provide by listing them in the statistics parameter.
Currently only counter and gauge metrics types are supported by the module, and whether to choose one or the other for a specific statistic is dictated by the way that statistic was defined either internally, or explicitely through the variable parameter of the statistics module.
Each exported statistic comes with a group label that indicates the group it belongs to.
Dependencies
Section titled “Dependencies”External Libraries or Applications
Section titled “External Libraries or Applications”None
OpenSIPS Modules
Section titled “OpenSIPS Modules”The following modules must be loaded before this module:
- httpd module.
Exported Parameters
Section titled “Exported Parameters”root(string)
Section titled “root(string)”Specifies the root metrics path Promethus uses to query the stats: http://[opensips_IP]:[opensips_httpd_port]/[root]
The default value is “metrics”.
...modparam("prometheus", "root", "prometheus")...prefix(string)
Section titled “prefix(string)”Appends a prefix to each statistic exported.
The default value is “opensips”.
...modparam("prometheus", "prefix", "opensips_1")...group_prefix(string)
Section titled “group_prefix(string)”Appends a prefix to the name of the group the statistic belongs to.
The default value is "" (no group prefix).
...modparam("prometheus", "group_prefix", "opensips")...delimiter(string)
Section titled “delimiter(string)”Specifies the delimiter to be used to separate prefix and group_prefix.
The default value is ”_“.
...modparam("prometheus", "delimiter", "-")...group_label(string)
Section titled “group_label(string)”Specifies the label used to store the group when group_mode is 2.
The default value is “group”.
...modparam("prometheus", "group_label", "grp")...group_mode(int)
Section titled “group_mode(int)”Specifies how the group of the statistic should be provisioned to Prometheus. Available modes are:
- 0 - do not send the statistics groups.
- 1 - send the group in the name of the statstic. timestamp core opensips_core_timestamp group_prefix
- 2 - send the group as a label of the statstic. group_label
The default value is 0 (do not specify the group).
...modparam("prometheus", "group_mode", 1)...statistics(string)
Section titled “statistics(string)”The statistics that are being exported by OpenSIPS, separated by space. The list can also contain statistics groups’s names - to do that, you shall add a colon (:) at the end of the groups’s name.
If the all value is used, then the module will expose all available statistics - therefore any other settings of this parameter is useless;
This parameter can be defined multiple times.
The default value is empty: no metric is exported.
...# export the number of active dialogs and the load statistics classmodparam("prometheus", "statistics", "active_dialogs load:")...Exported Functions
Section titled “Exported Functions”No function exported to be used from configuration file.
Examples
Section titled “Examples”In order to have Prometheus query OpenSIPS for statistics, you need to tell him where to get statistics from. To do that, you should define a scarpe job in Prometheus’s scrape_configs config, indicating the IP and port you’ve configured the httpd module to listen on (default: 0.0.0.0:8888).
scrape_configs: - job_name: opensips
static_configs: - targets: ['localhost:8888']Contributors
Section titled “Contributors”By Commit Statistics
Section titled “By Commit Statistics”Top contributors by DevScore(1), authored commits(2) and lines added/removed(3)
| # | Name | DevScore | Commits | Lines++ | Lines— |
|---|---|---|---|---|---|
| 1. | Razvan Crainea (@razvancrainea) | 25 | 13 | 1020 | 153 |
| 2. | Stefan Darius (@dariusstefan) | 8 | 4 | 249 | 30 |
| 3. | Liviu Chircu (@liviuchircu) | 3 | 1 | 1 | 1 |
| 4. | OpenSIPS | 3 | 1 | 1 | 1 |
(1) DevScore = author_commits + author_lines_added / (project_lines_added / project_commits) + author_lines_deleted / (project_lines_deleted / project_commits)
(2) including any documentation-related commits, excluding merge commits
(3) ignoring whitespace edits, renamed files and auto-generated files
By Commit Activity
Section titled “By Commit Activity”| # | Name | Commit Activity |
|---|---|---|
| 1. | Stefan Darius (@dariusstefan) | Jun 2026 - Jul 2026 |
| 2. | Razvan Crainea (@razvancrainea) | Feb 2021 - Jun 2026 |
| 3. | Liviu Chircu (@liviuchircu) | Aug 2022 - Aug 2022 |
| 4. | OpenSIPS | Feb 2021 - Feb 2021 |
(1) including any documentation-related commits, excluding merge commits
Documentation
Section titled “Documentation”Contributors
Section titled “Contributors”Last edited by: Razvan Crainea (@razvancrainea), Liviu Chircu (@liviuchircu), OpenSIPS.
License
Section titled “License”All documentation files (i.e. .md extension) are licensed under the Creative Common License 4.0