Charts: Difference between revisions
(→series) |
(Rewrite: konsolidace struktury, odstranění duplicit, přidání tabulek pro přehlednost) |
||
| (21 intermediate revisions by 2 users not shown) | |||
| Line 1: | Line 1: | ||
= Charts = | = Charts = | ||
Charts | Charts visualize call data (concurrent calls, quality metrics, SIP responses) over time. The graph is interactive – click legend items to hide/show data sources, hover to see values. | ||
Charts also appear in the CDR view's right panel, automatically filtering based on the current CDR selection. | |||
<kroki lang="mermaid"> | |||
%%{init: {'flowchart': {'nodeSpacing': 15, 'rankSpacing': 30}}}%% | |||
flowchart LR | |||
A[Click + button] --> B[Configure Date Range] | |||
B --> C[Add Series<br/>Data Sources] | |||
C --> D[Apply Filters<br/>Common/RTP] | |||
D --> E[Set Description<br/>& Save Template] | |||
E --> F[View Interactive<br/>Chart] | |||
</kroki> | |||
== | == Creating a Chart == | ||
# Click the '''+''' button in the Charts panel | |||
# Configure the '''Date range''' (time interval and X-axis density) | |||
# Add '''Series''' (data sources to plot) | |||
# Apply '''Filters''' (Common/RTP tabs – same as CDR filter) | |||
# Set '''Description''' to name and save the chart as a template | |||
=== Templates === | |||
Templates store chart configurations for reuse. To save a new template, enter a name in the Description field – a "Save" button appears next to the template dropdown. | |||
=== Date Range === | |||
{| class="wikitable" | |||
! Setting !! Description | |||
|- | |||
| Time interval || Start/end date for the chart | |||
|- | |||
| X-axis density || Granularity of data points (minute, hour, day) | |||
|} | |||
== Series (Data Sources) == | |||
The Series section defines what data to plot. Add multiple series to compare metrics. | |||
=== | === Available Series Types === | ||
{| class="wikitable" | |||
! Series Type !! Description | |||
|- | |||
| '''Number of calls''' || Min/max/avg concurrent calls, total call distribution | |||
|- | |||
| '''MOS / jitter / delay / packet loss''' || RTP quality metrics | |||
|- | |||
| '''RTCP''' || RTCP protocol statistics | |||
|- | |||
| '''ACD, ASR, PDD, SIP responses''' || Signaling metrics | |||
|- | |||
| '''Codecs''' || Codec usage distribution | |||
|- | |||
| '''CallPerSec''' || Calls Per Second (CPS) rate | |||
|} | |||
{{Note|1='''ACD Average''' = mean duration of calls ''started'' in the interval. '''ACD Immediate''' = mean duration of calls ''ongoing'' in the interval (shows higher values for short intervals).}} | |||
=== Series Configuration === | |||
{| class="wikitable" | |||
! Column !! Description | |||
|- | |||
| '''Param''' || SIP response code (for SIP response series) | |||
|- | |||
| '''Axis Side''' || Assign to Left or Right Y-axis | |||
|- | |||
| '''Primary''' || Sets the Y-axis scale; non-primary series use this scale | |||
|- | |||
| '''Type''' || Line, bar, area chart type | |||
|- | |||
| '''Line''' || Line decoration style | |||
|- | |||
| '''Color''' || Series color | |||
|- | |||
| '''Fill''' || Fill area below line | |||
|- | |||
| '''Markers''' || Show data point dots | |||
|- | |||
| '''Smooth''' || Smooth lines between points | |||
|} | |||
== Filters == | |||
The '''Filters - common''' and '''Filters - RTP''' tabs filter chart data using the same criteria as the CDR filter form. The date range is set separately in the main configuration section. | |||
For filter details, see [[Call_Detail_Record_-_CDR#Filtering]]. | |||
== Filtering by Provider (IP Groups) == | |||
Use IP groups to filter charts by specific providers without manual IP configuration. | |||
=== Setup === | |||
# '''Create IP Group:''' GUI → Groups → IPs → New group → Enter provider IPs/CIDRs | |||
# '''Create Chart:''' Click + → Select series type (e.g., "MOS / jitter / delay / packet loss") | |||
# '''Apply Filter:''' Filters - common tab → Group Filters → Select your IP group from "Caller Groups" or "Called Groups" | |||
{{Tip|To compare multiple providers: add separate series for each, apply different IP group filters, and use the settings icon to name each series for the legend.}} | |||
== License Usage Per Sensor == | |||
To track license utilization for specific sensors: | |||
# Navigate to '''GUI → CDR''' | |||
# Filter by '''id_sensor''' for your target sensor | |||
# Open '''Charts''' panel → Click '''+''' | |||
# Select '''Number of license calls''' template | |||
{{Note|1=Total license usage may be lower than sum of individual sensors due to CDR deduplication (matching last 6 digits of caller/called within ±10s window).}} | |||
'''487 Request Terminated''' calls are excluded from concurrent call counts. | |||
== Custom SIP Header Analysis == | |||
To visualize traffic by custom headers (e.g., <code>x-route</code> for carrier routing): | |||
=== Prerequisites === | |||
<syntaxhighlight lang="ini"> | |||
# /etc/voipmonitor.conf | |||
custom_headers = x-route | |||
</syntaxhighlight> | |||
Enable in GUI: Settings → CDR Custom Headers → Check "Show as Column" | |||
=== | === Method: Compare Specific Route vs All Traffic === | ||
# Create chart with '''two series''' (both "number of calls") | |||
# '''Series 1:''' Filter <code>x-route = %</code> (all traffic with header) | |||
# '''Series 2:''' Filter <code>x-route = ATT</code> (specific route) | |||
The gap between lines shows relative contribution (visual comparison, not calculated percentage). | |||
{{Note|For exact percentages, use direct SQL queries on the database.}} | |||
== Troubleshooting == | |||
=== | === SIP Response Colors Change === | ||
Colors are '''not fixed''' – the dominant (most frequent) response code gets green, others rotate. This is a known limitation (VG-3031 feature request). | |||
=== Flow Diagrams vs Pie Charts Show Different Percentages === | |||
'''Cause 1:''' Different time ranges configured. Verify both use identical intervals. | |||
'''Cause 2:''' Near current time, flow diagrams show lower 200 OK because: | |||
* In-progress calls haven't completed signaling | |||
* Database write latency excludes recent calls | |||
'''Solution:''' Use time periods at least several minutes old for consistent comparison. | |||
=== | === Tools Concurrent Calls Stats vs Charts Differ === | ||
{| class="wikitable" | |||
! Source !! Counting Method | |||
|- | |||
| '''Tools → Concurrent Calls Stats''' || Counts every CDR leg separately (for license compliance) | |||
|- | |||
| '''Standard "concurrent calls" chart''' || Counts every CDR leg separately (matches alerts) | |||
|- | |||
| '''"concurrent calls - license chart"''' || Merges correlated legs into end-to-end calls | |||
|} | |||
To match alert behavior, use standard "concurrent calls" chart (not license chart) with same filters. | |||
=== | === Making Charts Match License Count for Specific Segments === | ||
Apply IP filters to count only specific traffic: | |||
* '''Carrier IP filter:''' Counts calls between your system and that carrier only | |||
* '''Customer IP filter:''' Counts calls between customers and your PBX only | |||
* '''No filter:''' Counts ALL captured traffic (determines actual license usage) | |||
=== | === Alerts Fire Once During Sustained Spike === | ||
Alerts use '''edge triggering''' – they fire when crossing the threshold, then remain triggered. A new notification requires the metric to drop below threshold and cross again. | |||
=== Chart Timeouts for Multi-Day Ranges === | |||
'''Primary solution:''' Increase MySQL buffer: | |||
<syntaxhighlight lang="ini"> | |||
[mysqld] | |||
innodb_buffer_pool_size = 16G # 70-80% of available RAM | |||
</syntaxhighlight> | |||
'''Workarounds:''' | |||
* Generate charts during off-peak hours | |||
* Use [[Reports#Daily_Charts_Report|Daily Charts Report]] to schedule automatic generation | |||
For detailed tuning, see [[Scaling]]. | |||
[[ | === Filter Works in CDR List but Not in Chart === | ||
Check for: | |||
* Special characters in filter values (parentheses, quotes) | |||
* Wildcard (<code>%</code>) behavior differences | |||
* Different time ranges between CDR list and chart | |||
* CDR Summary table issues (test with <code>disable_cdr_summary = yes</code>) | |||
=== Cannot Aggregate Time-of-Day Across Days === | |||
Charts show continuous time-series (Mon 9AM, Mon 10AM, Tue 9AM...). They '''cannot''' aggregate similar time slots across days (e.g., "total 9-10AM calls for the week"). | |||
For time-of-day pattern analysis, use direct SQL queries or third-party reporting tools. | |||
== See Also == | |||
* [[Reports]] – Scheduled reports including Daily Charts | |||
* [[Groups]] – IP and telephone number groups for filtering | |||
* [[Alerts]] – Threshold-based alerting system | |||
* [[Scaling]] – Database performance tuning | |||
== AI Summary for RAG == | |||
'''Summary:''' Charts in VoIPmonitor visualize call data over time with interactive graphs. Create by clicking + and configuring date range, series (number of calls, MOS/jitter/delay/packet loss, RTCP, ACD/ASR/PDD, codecs, CallPerSec), and filters. Templates save configurations for reuse. For license usage per sensor: CDR filter by id_sensor → Charts → "Number of license calls" template. Total license may be lower than sum of sensors due to CDR deduplication (last 6 digits matching). Use IP groups (GUI → Groups → IPs) to filter by provider. Three concurrent calls counting methods: Tools/standard chart count CDR legs separately; "license chart" merges legs. Common issues: SIP response colors rotate (no fix, VG-3031), flow vs pie charts differ near current time (use older periods), chart timeouts (increase innodb_buffer_pool_size), cannot aggregate time-of-day across days (use SQL). | |||
'''Keywords:''' charts, graphs, visualization, number of calls, CallPerSec, CPS, MOS, jitter, delay, packet loss, RTCP, ACD, ASR, PDD, codecs, templates, filters, IP groups, provider filtering, license usage, id_sensor, concurrent calls, license chart, CDR leg, color rotation, chart timeout, innodb_buffer_pool_size, custom SIP header, x-route, wildcard filter | |||
'''Key Questions:''' | |||
* How to create charts in VoIPmonitor GUI? | |||
* How to view Calls Per Second (CPS) in a graph? | |||
* How to monitor MOS, jitter, delay, and packet loss over time? | |||
* How to identify license usage per instance/sensor? | |||
* How to use IP groups to filter charts by provider? | |||
* Why do SIP response code colors change in charts? | |||
* Why do flow diagrams and pie charts show different SIP response percentages? | |||
* Why do concurrent calls in Tools differ from Concurrent Calls chart? | |||
* What is the difference between "concurrent calls" and "concurrent calls - license chart"? | |||
* Why do charts timeout for date ranges longer than a day? | |||
* How to create percentage comparison for custom SIP headers? | |||
Latest revision as of 16:50, 8 January 2026
Charts
Charts visualize call data (concurrent calls, quality metrics, SIP responses) over time. The graph is interactive – click legend items to hide/show data sources, hover to see values.
Charts also appear in the CDR view's right panel, automatically filtering based on the current CDR selection.
Creating a Chart
- Click the + button in the Charts panel
- Configure the Date range (time interval and X-axis density)
- Add Series (data sources to plot)
- Apply Filters (Common/RTP tabs – same as CDR filter)
- Set Description to name and save the chart as a template
Templates
Templates store chart configurations for reuse. To save a new template, enter a name in the Description field – a "Save" button appears next to the template dropdown.
Date Range
| Setting | Description |
|---|---|
| Time interval | Start/end date for the chart |
| X-axis density | Granularity of data points (minute, hour, day) |
Series (Data Sources)
The Series section defines what data to plot. Add multiple series to compare metrics.
Available Series Types
| Series Type | Description |
|---|---|
| Number of calls | Min/max/avg concurrent calls, total call distribution |
| MOS / jitter / delay / packet loss | RTP quality metrics |
| RTCP | RTCP protocol statistics |
| ACD, ASR, PDD, SIP responses | Signaling metrics |
| Codecs | Codec usage distribution |
| CallPerSec | Calls Per Second (CPS) rate |
ℹ️ Note: ACD Average = mean duration of calls started in the interval. ACD Immediate = mean duration of calls ongoing in the interval (shows higher values for short intervals).
Series Configuration
| Column | Description |
|---|---|
| Param | SIP response code (for SIP response series) |
| Axis Side | Assign to Left or Right Y-axis |
| Primary | Sets the Y-axis scale; non-primary series use this scale |
| Type | Line, bar, area chart type |
| Line | Line decoration style |
| Color | Series color |
| Fill | Fill area below line |
| Markers | Show data point dots |
| Smooth | Smooth lines between points |
Filters
The Filters - common and Filters - RTP tabs filter chart data using the same criteria as the CDR filter form. The date range is set separately in the main configuration section.
For filter details, see Call_Detail_Record_-_CDR#Filtering.
Filtering by Provider (IP Groups)
Use IP groups to filter charts by specific providers without manual IP configuration.
Setup
- Create IP Group: GUI → Groups → IPs → New group → Enter provider IPs/CIDRs
- Create Chart: Click + → Select series type (e.g., "MOS / jitter / delay / packet loss")
- Apply Filter: Filters - common tab → Group Filters → Select your IP group from "Caller Groups" or "Called Groups"
💡 Tip: To compare multiple providers: add separate series for each, apply different IP group filters, and use the settings icon to name each series for the legend.
License Usage Per Sensor
To track license utilization for specific sensors:
- Navigate to GUI → CDR
- Filter by id_sensor for your target sensor
- Open Charts panel → Click +
- Select Number of license calls template
ℹ️ Note: Total license usage may be lower than sum of individual sensors due to CDR deduplication (matching last 6 digits of caller/called within ±10s window).
487 Request Terminated calls are excluded from concurrent call counts.
Custom SIP Header Analysis
To visualize traffic by custom headers (e.g., x-route for carrier routing):
Prerequisites
# /etc/voipmonitor.conf
custom_headers = x-route
Enable in GUI: Settings → CDR Custom Headers → Check "Show as Column"
Method: Compare Specific Route vs All Traffic
- Create chart with two series (both "number of calls")
- Series 1: Filter
x-route = %(all traffic with header) - Series 2: Filter
x-route = ATT(specific route)
The gap between lines shows relative contribution (visual comparison, not calculated percentage).
ℹ️ Note: For exact percentages, use direct SQL queries on the database.
Troubleshooting
SIP Response Colors Change
Colors are not fixed – the dominant (most frequent) response code gets green, others rotate. This is a known limitation (VG-3031 feature request).
Flow Diagrams vs Pie Charts Show Different Percentages
Cause 1: Different time ranges configured. Verify both use identical intervals.
Cause 2: Near current time, flow diagrams show lower 200 OK because:
- In-progress calls haven't completed signaling
- Database write latency excludes recent calls
Solution: Use time periods at least several minutes old for consistent comparison.
Tools Concurrent Calls Stats vs Charts Differ
| Source | Counting Method |
|---|---|
| Tools → Concurrent Calls Stats | Counts every CDR leg separately (for license compliance) |
| Standard "concurrent calls" chart | Counts every CDR leg separately (matches alerts) |
| "concurrent calls - license chart" | Merges correlated legs into end-to-end calls |
To match alert behavior, use standard "concurrent calls" chart (not license chart) with same filters.
Making Charts Match License Count for Specific Segments
Apply IP filters to count only specific traffic:
- Carrier IP filter: Counts calls between your system and that carrier only
- Customer IP filter: Counts calls between customers and your PBX only
- No filter: Counts ALL captured traffic (determines actual license usage)
Alerts Fire Once During Sustained Spike
Alerts use edge triggering – they fire when crossing the threshold, then remain triggered. A new notification requires the metric to drop below threshold and cross again.
Chart Timeouts for Multi-Day Ranges
Primary solution: Increase MySQL buffer:
[mysqld]
innodb_buffer_pool_size = 16G # 70-80% of available RAM
Workarounds:
- Generate charts during off-peak hours
- Use Daily Charts Report to schedule automatic generation
For detailed tuning, see Scaling.
Filter Works in CDR List but Not in Chart
Check for:
- Special characters in filter values (parentheses, quotes)
- Wildcard (
%) behavior differences - Different time ranges between CDR list and chart
- CDR Summary table issues (test with
disable_cdr_summary = yes)
Cannot Aggregate Time-of-Day Across Days
Charts show continuous time-series (Mon 9AM, Mon 10AM, Tue 9AM...). They cannot aggregate similar time slots across days (e.g., "total 9-10AM calls for the week").
For time-of-day pattern analysis, use direct SQL queries or third-party reporting tools.
See Also
- Reports – Scheduled reports including Daily Charts
- Groups – IP and telephone number groups for filtering
- Alerts – Threshold-based alerting system
- Scaling – Database performance tuning
AI Summary for RAG
Summary: Charts in VoIPmonitor visualize call data over time with interactive graphs. Create by clicking + and configuring date range, series (number of calls, MOS/jitter/delay/packet loss, RTCP, ACD/ASR/PDD, codecs, CallPerSec), and filters. Templates save configurations for reuse. For license usage per sensor: CDR filter by id_sensor → Charts → "Number of license calls" template. Total license may be lower than sum of sensors due to CDR deduplication (last 6 digits matching). Use IP groups (GUI → Groups → IPs) to filter by provider. Three concurrent calls counting methods: Tools/standard chart count CDR legs separately; "license chart" merges legs. Common issues: SIP response colors rotate (no fix, VG-3031), flow vs pie charts differ near current time (use older periods), chart timeouts (increase innodb_buffer_pool_size), cannot aggregate time-of-day across days (use SQL).
Keywords: charts, graphs, visualization, number of calls, CallPerSec, CPS, MOS, jitter, delay, packet loss, RTCP, ACD, ASR, PDD, codecs, templates, filters, IP groups, provider filtering, license usage, id_sensor, concurrent calls, license chart, CDR leg, color rotation, chart timeout, innodb_buffer_pool_size, custom SIP header, x-route, wildcard filter
Key Questions:
- How to create charts in VoIPmonitor GUI?
- How to view Calls Per Second (CPS) in a graph?
- How to monitor MOS, jitter, delay, and packet loss over time?
- How to identify license usage per instance/sensor?
- How to use IP groups to filter charts by provider?
- Why do SIP response code colors change in charts?
- Why do flow diagrams and pie charts show different SIP response percentages?
- Why do concurrent calls in Tools differ from Concurrent Calls chart?
- What is the difference between "concurrent calls" and "concurrent calls - license chart"?
- Why do charts timeout for date ranges longer than a day?
- How to create percentage comparison for custom SIP headers?