OPENTELEMETRY module
Admin Guide
Section titled “Admin Guide”Overview
Section titled “Overview”The opentelemetry module provides OpenTelemetry tracing for OpenSIPS route execution. It creates a root span per processed SIP message and a child span for each route entry.
The root SIP message span follows a local semantic convention inspired by the OpenTelemetry HTTP span conventions: it uses a method-plus-target span name, server/client/internal span kinds based on the OpenSIPS route type, and generic network, client, server and URL attributes wherever they fit the SIP model.
Spans include common SIP attributes (request method, Call-ID, CSeq, response status) and connection metadata. While a span is active, OpenSIPS logs can be attached as OpenTelemetry events for easier correlation.
Trace data is exported via the OTLP/HTTP exporter from the OpenTelemetry C++ SDK.
The local SIP span convention emitted by this module is documented in
modules/opentelemetry/semantic-convention/sip-spans.md.
Dependencies
Section titled “Dependencies”OpenSIPS Modules
Section titled “OpenSIPS Modules”The following modules must be loaded before this module:
- None.
External Libraries or Applications
Section titled “External Libraries or Applications”The following libraries or applications must be installed before running OpenSIPS with this module loaded:
- OpenTelemetry C++ SDK (opentelemetry-cpp), with the OTLP/HTTP exporter enabled.
Exported Parameters
Section titled “Exported Parameters”enable (integer)
Section titled “enable (integer)”Enables or disables OpenTelemetry tracing at startup. It can also be
changed at runtime using the opentelemetry:enable
MI command.
The module is built only when the OpenTelemetry C++ SDK is available at build time.
Default value is “0 (disabled)“.
...modparam("opentelemetry", "enable", 1)...proc_profiling (integer)
Section titled “proc_profiling (integer)”If enabled, the module will also profile/trace the OpenSIPS processes, not only the script.
Default value is “0 (disabled)“.
...modparam("opentelemetry", "proc_profiling", 1)...log_level (integer)
Section titled “log_level (integer)”Log level threshold used by the OpenTelemetry log consumer when attaching log events to the active span.
Default value is “L_DBG”.
...modparam("opentelemetry", "log_level", 3)...use_batch (integer)
Section titled “use_batch (integer)”Selects the OpenTelemetry span processor. When enabled, the module uses the batch span processor; otherwise it uses the simple span processor.
Default value is “1 (enabled)“.
...modparam("opentelemetry", "use_batch", 0)...service_name (string)
Section titled “service_name (string)”Sets the OpenTelemetry “service.name” resource attribute.
Default value is “opensips”.
...modparam("opentelemetry", "service_name", "edge-proxy")...exporter_endpoint (string)
Section titled “exporter_endpoint (string)”Overrides the OTLP/HTTP exporter endpoint. If empty, the OpenTelemetry SDK default is used.
Default value is “empty”.
...modparam("opentelemetry", "exporter_endpoint", "http://127.0.0.1:4318/v1/traces")...Exported MI Functions
Section titled “Exported MI Functions”opentelemetry:enable
Section titled “opentelemetry:enable”Replaces obsolete MI command: otel_enable.
Enables or disables OpenTelemetry tracing at runtime.
Name: opentelemetry:enable
Parameters:
- opentelemetry:enable - set to “1” to enable tracing or “0” to disable it.
MI FIFO Command Format:
## enable tracingopensips-cli -x mi opentelemetry:enable enable=1## disable tracingopensips-cli -x mi opentelemetry:enable enable=0Contributors
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. | Vlad Paiu (@vladpaiu) | 21 | 8 | 1155 | 155 |
| 2. | Razvan Crainea (@razvancrainea) | 9 | 7 | 28 | 18 |
| 3. | Stefan Darius (@dariusstefan) | 9 | 5 | 240 | 34 |
| 4. | Bogdan-Andrei Iancu (@bogdan-iancu) | 5 | 2 | 73 | 66 |
| 5. | Your Name | 3 | 1 | 230 | 0 |
(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) | Mar 2026 - Jun 2026 |
| 3. | Bogdan-Andrei Iancu (@bogdan-iancu) | Mar 2026 - Apr 2026 |
| 4. | Vlad Paiu (@vladpaiu) | Dec 2025 - Apr 2026 |
| 5. | Your Name | Jan 2026 - Jan 2026 |
(1) including any documentation-related commits, excluding merge commits
Documentation
Section titled “Documentation”Contributors
Section titled “Contributors”Last edited by: Razvan Crainea (@razvancrainea), Bogdan-Andrei Iancu (@bogdan-iancu), Vlad Paiu (@vladpaiu), Your Name.
License
Section titled “License”All documentation files (i.e. .md extension) are licensed under the Creative Common License 4.0