Metrics

Overview

SIP3 uses vendor-neutral application metric facade called Micrometer. It allows SIP3 to send multi-dimensional QoS metrics to the most popular monitoring systems such as CloudWatch, Datadog, Elastic, InfluxDB, New Relic, Prometheus, etc.

Please read Micrometer Documentation to get more information about basic concepts, metric types, dimensional data models and specific implementation details.

SIP Quality of Service Dashboard

You can use SIP QoS Metrics to retrieve the most important QoS metrics described in RFC 6076 and build informative dashboards for monitoring and troubleshooting

Datadog: SIP QoS Metrics in Datadog

Grafana: SIP QoS Metrics in Grafana

Building a chart

Under the hood of most charts there are simple expressions. Let’s look closer to Answer Seizure Ratio (ASR) metric with formula:

\$ASR = "Seizures resulting in answer signal"/"Total seizures" * 100\$

In the case of using InfluxDB and Grafana query for chart will be:

SELECT sum(Answered)/sum(Seizure)*100 FROM
(SELECT sum("value") as Answered FROM "sip_call_attempts" WHERE ("state" = 'answered') AND $timeFilter GROUP BY time($__interval) fill(null)),
(SELECT sum("value") as Seizure FROM "sip_call_attempts" WHERE $timeFilter GROUP BY time($__interval) fill(null))
GROUP BY time($__interval) fill(null)

For Datadog query is pretty simple:

(sum:sip_call_attempts{state:answered}.as_count()/sum:sip_call_attempts{state:*}.as_count())*100

SIP Metrics

The list below contains entire set of SIP QoS metrics aggregated and reported by SIP3. You can use it to retrieve the most important QoS metrics described in RFC 6076.

Name Type Tags Description

sip_call_messages

Counter

src_host, dst_host, cseq_method, method, status_code, status_type

Call messages

sip_call_attempts

Counter

src_host, dst_host, state, error_code, error_type, expired, retransmits

Call attempts

sip_call_transactions

Counter

src_host, dst_host, state, error_code, error_type, expired, retransmits

Call transactions

sip_call_retransmits

Counter

src_host, dst_host, state, error_code, error_type, expired, retransmits

Call retransmits

sip_call_duration

Timer

src_host, dst_host, state, distribution, error_code, error_type, expired, retransmits

Call duration

sip_call_established

Counter

src_host, dst_host, retransmits

Established calls

sip_call_trying-delay

Timer

src_host, dst_host, retransmits

The time interval between initial INVITE message and corresponding 100 response

sip_call_setup-time

Timer

src_host, dst_host, retransmits

The time interval between initial INVITE message and corresponding 18x response

sip_call_establish-time

Timer

src_host, dst_host, retransmits

The time interval between initial INVITE message and corresponding 200 response

sip_call_disconnect-time

Timer

src_host, dst_host, retransmits

The time interval between the first BYE message and corresponding 200 response

sip_transaction_response-delay

Timer

src_host, dst_host

The time interval between SIP request message and corresponding response

sip_register_messages

Counter

src_host, dst_host, cseq_method, method, status_code, status_type

Registration messages

sip_register_request-delay

Timer

src_host, dst_host

The time interval between initial REGISTER message and corresponding 200 response

sip_register_active

Timer

src_host, dst_host

The amount of active registrations

Media Quality of Service Dashboard

You can use RTP/RTCP Metrics and Media Metrics to retrieve the most important QoS metrics such as R-Factor, Mean Opinion Score(MOS) according to ITU-T Recommendation G.107: The E-model: a computational model for use in transmission planning, Jitter, etc. Creating Dashboards with this metrics helps to investigate Media issues more effectively:

Datadog: Media QoS Metrics in Datadog

Grafana: Media QoS Metrics in Grafana

RTP/RTCP Metrics

The list below contains entire set of RTP/RTCP QoS metrics aggregated and reported by SIP3.

Name Type Tags Description

rtpr_rtp_mos, rtpr_rtcp_mos

Summary

src_host, dst_host, codec

Mean opinion score

rtpr_rtp_r-factor, rtpr_rtcp_r-factor

Summary

src_host, dst_host, codec

R-Factor

rtpr_rtp_duration, rtpr_rtcp_duration

Timer

src_host, dst_host, codec

Call media duration

rtpr_rtp_jitter, rtpr_rtcp_jitter

Summary

src_host, dst_host, codec

Average jitter

rtpr_rtp_expected-packets, rtpr_rtcp_expected-packets

Summary

src_host, dst_host, codec

Expected RTP packets

rtpr_rtp_lost-packets, rtpr_rtcp_lost-packets

Summary

src_host, dst_host, codec

Lost RTP packets

rtpr_rtp_rejected-packets, rtpr_rtcp_rejected-packets

Summary

src_host, dst_host, codec

Rejected RTP packets

rtpr_rtp_bad-reports, rtpr_rtcp_bad

Summary

src_host, dst_host, codec_name

Number of bad reports

rtpr_rtp_bad-reports-fraction, rtpr_rtcp_bad-reports-fraction

Summary

src_host, dst_host, codec_name

Bad reports fraction

rtpr_rtp_duration, rtpr_rtcp_duration

Timer

src_host, dst_host, codec_name

RTP/RTCP stream duration

Custom Dashboards

You can build custom dashboards to improve troubleshooting and monitoring. With User Defined Attributes, like User-Agent or custom Reason Attribute:

Datadog: Custom dashboard with UDAs