A major modernization of the exporter.
Breaking changes
- The
-lshort flag was removed. Use--web.listen-address(now repeatable). - Logs are now written in logfmt format, or JSON with
--log.format=json. - The
--versionoutput format changed.
Exposed metrics are unchanged. See the upgrade notes.
New
-
TLS, basic authentication and systemd socket activation via
--web.config.file, using the Prometheus exporter-toolkit. See the documentation. -
New opt-in method
stats.fetch: exports statistics from the Kamailio statistics framework, including custom script stats created withupdate_stat()(#21). The groups to fetch are controlled with--kamailio.stats-groups(defaultscript):kamailio_stats_fetch_value{group="script",name="destination_down"} 4See the documentation.
-
DMQ node status metrics via
dmq.list_nodes(#22, thanks @kcroxford-mb):kamailio_dmq_list_nodes_node{host,port,status,local}. -
--log.leveland--log.formatflags. -
kamailio_exporter_build_infometric.
Fixed
core.shmmemmetrics were exported as 0 when Kamailio returns doubles (#30, #31, thanks @denzs).- Scrape URIs without slashes (
tcp:host:port) are now accepted, and invalid URIs are rejected at startup with a clear error (#28). - Fixed a startup panic on scheme-less scrape URIs.
- BINRPC values larger than 32 bits are now encoded correctly, and responses arriving in several TCP segments (short reads) are handled (go-kamailio-binrpc v3.3.0).
- Struct fields that are not defined metrics are now skipped:
core.uptimealso returnsnowandup_sinceas date strings, which are not exported and logged a parse error on every scrape.
Internal
- Requires Go 1.25; all dependencies updated; module path is now
github.com/florentchauveau/kamailio_exporter/v2. - New test suite running against a fake BINRPC server; CI with race detector.
- Releases are now built by goreleaser.
Full changelog: v1.0.1...v2.0.0