Prometheus Module
__________________________________________________________
Table of Contents
1. Admin Guide
1.1. Overview
1.2. Dependencies
1.2.1. External Libraries or Applications
1.2.2. OpenSIPS Modules
1.3. Exported Parameters
1.3.1. root(string)
1.3.2. prefix(string)
1.3.3. group_prefix(string)
1.3.4. delimiter(string)
1.3.5. group_label(string)
1.3.6. group_mode(int)
1.3.7. statistics(string)
1.3.8. labels(string)
1.4. Exported Functions
1.5. Examples
2. Contributors
2.1. By Commit Statistics
2.2. By Commit Activity
3. Documentation
3.1. Contributors
List of Tables
2.1. Top contributors by DevScore^(1), authored commits^(2) and
lines added/removed^(3)
2.2. Most recently active contributors^(1) to this module
List of Examples
1.1. Set root parameter
1.2. Set prefix parameter
1.3. Set group_prefix parameter
1.4. Set delimiter parameter
1.5. Set group_label parameter
1.6. Set group_mode parameter
1.7. Set statistics parameter
1.8. Set statistics parameter
1.9. Prometheus Scarpe Config
Chapter 1. Admin Guide
1.1. 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.
1.2. Dependencies
1.2.1. External Libraries or Applications
None
1.2.2. OpenSIPS Modules
The following modules must be loaded before this module:
* httpd module.
1.3. Exported Parameters
1.3.1. 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".
Example 1.1. Set root parameter
...
modparam("prometheus", "root", "prometheus")
...
1.3.2. prefix(string)
Appends a prefix to each statistic exported.
The default value is "opensips".
Example 1.2. Set prefix parameter
...
modparam("prometheus", "prefix", "opensips_1")
...
1.3.3. group_prefix(string)
Appends a prefix to the name of the group the statistic belongs
to.
The default value is "" (no group prefix).
Example 1.3. Set group_prefix parameter
...
modparam("prometheus", "group_prefix", "opensips")
...
1.3.4. delimiter(string)
Specifies the delimiter to be used to separate prefix and
group_prefix.
The default value is "_".
Example 1.4. Set delimiter parameter
...
modparam("prometheus", "delimiter", "-")
...
1.3.5. group_label(string)
Specifies the label used to store the group when group_mode is
2.
The default value is "group".
Example 1.5. Set group_label parameter
...
modparam("prometheus", "group_label", "grp")
...
1.3.6. 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.
For example, timestamp statistic from the core group would
be exported as opensips_core_timestamp. Note that the
group_prefix is still attached to the group's name.
* 2 - send the group as a label of the statstic.
The name of the label is specified by the group_label
parameter.
The default value is 0 (do not specify the group).
Example 1.6. Set group_mode parameter
...
modparam("prometheus", "group_mode", 1)
...
1.3.7. 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.
Example 1.7. Set statistics parameter
...
# export the number of active dialogs and the load statistics class
modparam("prometheus", "statistics", "active_dialogs load:")
...
1.3.8. labels(string)
Rules that define how to convert the name of a statistic within
a group to obtain the name and set of labels to be pushed in
Prometheus.
The format is group: regex, where group represents the group of
statistics for whom the regular expression should be applied
for, and regexp is a regular expression used to match the
statistic's name and convert it to the desired name and labels.
The regex format is
/matching_expression/substitution_expression/flags. The
substitution_expression resulted after the substituion should
result in a string with the following format: name:labels,
where name represents the name of the statistic as it will be
pushed towards Prometheus, and labels the labels, expressed as
key=value pairs separated by comma, as they are received by
Prometheus. Note that the labels string resulted is
concatenated to the other labeles as plain string - no other
transformations are performed.
If a statistic's name within the declared group does not match
the regular, or the resulted format does not comply with the
name:labels format, the statistics transformations are ignored
and it shall be printed as a regular statistic, as if the rule
was not even used.
This parameter can be defined multiple times, once per group.
The default value is empty: statistic name is provided.
Example 1.8. Set statistics parameter
...
# convert duration_gateway to stat duration with gateway as a label
modparam("prometheus", "statistics", "group: /^(.*)_(.*)$/1円:gateway=\"\
2\"/")
...
1.4. Exported Functions
No function exported to be used from configuration file.
1.5. 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).
Example 1.9. Prometheus Scarpe Config
scrape_configs:
- job_name: opensips
static_configs:
- targets: ['localhost:8888']
Chapter 2. Contributors
2.1. By Commit Statistics
Table 2.1. Top contributors by DevScore^(1), authored
commits^(2) and lines added/removed^(3)
Name DevScore Commits Lines ++ Lines --
1. Razvan Crainea (@razvancrainea) 26 12 1259 134
2. 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. Regarding imported patches/code, we do our best
to count the work on behalf of the proper owner, as per the
"fix_authors" and "mod_renames" arrays in
opensips/doc/build-contrib.sh. If you identify any
patches/commits which do not get properly attributed to you,
please submit a pull request which extends "fix_authors" and/or
"mod_renames".
(3) ignoring whitespace edits, renamed files and auto-generated
files
2.2. By Commit Activity
Table 2.2. Most recently active contributors^(1) to this module
Name Commit Activity
1. Razvan Crainea (@razvancrainea) Feb 2021 - Nov 2021
2. OpenSIPS Feb 2021 - Feb 2021
(1) including any documentation-related commits, excluding
merge commits
Chapter 3. Documentation
3.1. Contributors
Last edited by: Razvan Crainea (@razvancrainea), OpenSIPS.
Documentation Copyrights:
Copyright © 2021 www.opensips-solutions.com
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。