video-iac/k8s/monitoring/templates/session-telemetry-dashboard...

995 lines
29 KiB
YAML
Raw Normal View History

2026-01-04 23:35:13 +00:00
apiVersion: v1
kind: ConfigMap
metadata:
name: session-telemetry-dashboard
labels:
grafana_dashboard: "1"
data:
session-telemetry.json: |
{
"annotations": {
"list": []
},
"editable": true,
"gnetId": null,
"graphTooltip": 0,
"hideControls": false,
"id": null,
"iteration": 1583185057230,
"links": [],
"panels": [
{
"datasource": "Prometheus",
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{ "color": "red", "value": null },
{ "color": "green", "value": 95 }
]
},
"unit": "percent"
},
"overrides": []
},
"gridPos": {
"h": 4,
"w": 6,
"x": 0,
"y": 0
},
"id": 1,
"options": {
"orientation": "auto",
"reduceOptions": {
"calcs": ["lastNotNull"],
"fields": "",
"values": false
},
"showThresholdLabels": false,
"showThresholdMarkers": true
},
"pluginVersion": "8.0.0",
"targets": [
{
2026-01-11 23:10:38 +00:00
"expr": "sum(increase(session_peer_telemetry_total{video_seen="true", classifier=~"$classifier"}[$__range])) / sum(increase(session_peer_telemetry_total{classifier=~"$classifier"}[$__range])) * 100",
2026-01-04 23:35:13 +00:00
"refId": "A"
}
],
2026-01-07 13:27:54 +00:00
"description": "Percentage of telemetry events where video was successfully seen by the participant.",
2026-01-04 23:35:13 +00:00
"title": "Overall Video Success Rate",
"type": "stat"
},
2026-01-08 11:59:51 +00:00
{
"datasource": "${logs}",
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{ "color": "green", "value": null }
]
},
"unit": "none"
},
"overrides": []
},
"gridPos": {
"h": 4,
"w": 6,
"x": 6,
"y": 0
},
"id": 13,
"options": {
"orientation": "auto",
"reduceOptions": {
"calcs": ["lastNotNull"],
"fields": "",
"values": false
},
"showThresholdLabels": false,
"showThresholdMarkers": true
},
"pluginVersion": "8.0.0",
"targets": [
{
2026-01-11 23:10:38 +00:00
"expr": "sum(count_over_time({namespace=\"webrtc-be\", container=\"webrtc-be\"} |= \"type=join_telemetry\" |~ \"classifier=\\\"($classifier)\\\"\" [$__range]))",
2026-01-08 11:59:51 +00:00
"refId": "A"
}
],
"description": "Total number of participants who joined a session in the selected time range.",
"title": "Participants Joined",
"type": "stat"
},
{
"datasource": "${logs}",
"fieldConfig": {
"defaults": {
"color": {
"mode": "thresholds"
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{ "color": "blue", "value": null }
]
},
"unit": "none"
},
"overrides": []
},
"gridPos": {
"h": 4,
"w": 6,
"x": 12,
"y": 0
},
"id": 14,
"options": {
"orientation": "auto",
"reduceOptions": {
"calcs": ["lastNotNull"],
"fields": "",
"values": false
},
"showThresholdLabels": false,
"showThresholdMarkers": true
},
"pluginVersion": "8.0.0",
"targets": [
{
2026-01-11 23:10:38 +00:00
"expr": "count(sum by (room) (count_over_time({namespace=\"webrtc-be\", container=\"webrtc-be\"} |= \"type=join_telemetry\" |~ \"classifier=\\\"($classifier)\\\"\" | logfmt [$__range])))",
2026-01-08 11:59:51 +00:00
"refId": "A"
}
],
"description": "Total number of unique rooms joined in the selected time range.",
"title": "Unique Rooms Joined",
"type": "stat"
},
2026-01-08 12:05:59 +00:00
{
"datasource": "${logs}",
"fieldConfig": {
"defaults": {
"color": {
"mode": "palette-classic"
},
"custom": {
"axisLabel": "Joins",
"axisPlacement": "auto",
"barAlignment": 0,
"drawStyle": "line",
"fillOpacity": 10,
"gradientMode": "none",
"hideFrom": {
"legend": false,
"tooltip": false,
"viz": false
},
"lineInterpolation": "smooth",
"lineWidth": 2,
"pointSize": 5,
"showPoints": "auto",
"spanNulls": false,
"stacking": {
"group": "A",
"mode": "none"
},
"thresholdsStyle": {
"mode": "off"
}
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{ "color": "green", "value": null }
]
},
"unit": "none"
},
"overrides": []
},
"gridPos": {
"h": 4,
"w": 6,
"x": 18,
"y": 0
},
"id": 15,
"options": {
"legend": {
"calcs": [],
"displayMode": "list",
"placement": "bottom"
},
"tooltip": {
"mode": "single"
}
},
"targets": [
{
2026-01-11 23:10:38 +00:00
"expr": "sum(count_over_time({namespace=\"webrtc-be\", container=\"webrtc-be\"} |= \"type=join_telemetry\" |~ \"classifier=\\\"($classifier)\\\"\" [$__interval]))",
2026-01-08 12:05:59 +00:00
"legendFormat": "Joins",
"refId": "A"
}
],
"description": "Timeline of participant join events.",
"title": "Join Events Over Time",
"type": "timeseries"
},
2026-01-04 23:35:13 +00:00
{
"datasource": "Prometheus",
"gridPos": {
"h": 8,
"w": 8,
"x": 0,
"y": 4
},
"id": 2,
"options": {
"legend": {
"displayMode": "list",
2026-01-06 12:20:51 +00:00
"placement": "right",
"values": [
"value"
]
2026-01-04 23:35:13 +00:00
},
"pieType": "pie",
"reduceOptions": {
"calcs": ["lastNotNull"],
"fields": "",
"values": false
}
},
"targets": [
{
2026-01-11 23:10:38 +00:00
"expr": "sum(increase(session_peer_telemetry_total{classifier=~"$classifier"}[$__range])) by (p2p)",
2026-01-04 23:52:36 +00:00
"legendFormat": "P2P: {{ "{{" }}p2p{{ "}}" }}",
2026-01-04 23:35:13 +00:00
"refId": "A"
}
],
2026-01-07 13:27:54 +00:00
"description": "Breakdown of peer connections using direct P2P vs those relayed through a TURN server.",
2026-01-04 23:35:13 +00:00
"title": "P2P vs non-P2P",
"type": "piechart"
},
{
"datasource": "Prometheus",
"gridPos": {
"h": 8,
"w": 8,
"x": 8,
"y": 4
},
2026-01-08 01:29:57 +00:00
"id": 12,
"options": {
"legend": {
"displayMode": "list",
"placement": "right",
"values": [
"value"
]
},
"pieType": "pie",
"reduceOptions": {
"calcs": ["lastNotNull"],
"fields": "",
"values": false
}
},
"targets": [
{
2026-01-11 23:10:38 +00:00
"expr": "sum(increase(session_peer_telemetry_total{classifier=~"$classifier"}[$__range])) by (relay)",
2026-01-08 01:29:57 +00:00
"legendFormat": "Relay: {{ "{{" }}relay{{ "}}" }}",
"refId": "A"
}
],
"description": "Breakdown of peer connections using a TURN relay vs direct connections.",
"title": "Turn vs No Turn",
"type": "piechart"
},
{
"datasource": "Prometheus",
"gridPos": {
"h": 8,
"w": 8,
"x": 16,
"y": 4
},
2026-01-04 23:35:13 +00:00
"id": 3,
"options": {
"legend": {
"displayMode": "list",
2026-01-06 12:20:51 +00:00
"placement": "right",
"values": [
"value"
]
2026-01-04 23:35:13 +00:00
},
"pieType": "pie",
"reduceOptions": {
"calcs": ["lastNotNull"],
"fields": "",
"values": false
}
},
"targets": [
{
2026-01-11 23:10:38 +00:00
"expr": "sum(increase(session_peer_telemetry_total{classifier=~"$classifier"}[$__range])) by (protocol)",
2026-01-04 23:52:36 +00:00
"legendFormat": "{{ "{{" }}protocol{{ "}}" }}",
2026-01-04 23:35:13 +00:00
"refId": "A"
}
],
2026-01-07 13:27:54 +00:00
"description": "Comparison of transport protocols (UDP vs TCP) used by participants.",
2026-01-04 23:35:13 +00:00
"title": "Protocol Breakdown (UDP/TCP)",
"type": "piechart"
},
{
"datasource": "Prometheus",
"gridPos": {
"h": 8,
"w": 8,
2026-01-08 01:29:57 +00:00
"x": 0,
"y": 12
2026-01-04 23:35:13 +00:00
},
"id": 4,
"options": {
"legend": {
"displayMode": "list",
2026-01-06 12:20:51 +00:00
"placement": "right",
"values": [
"value"
]
2026-01-04 23:35:13 +00:00
},
"pieType": "pie",
"reduceOptions": {
"calcs": ["lastNotNull"],
"fields": "",
"values": false
}
},
"targets": [
{
2026-01-11 23:10:38 +00:00
"expr": "sum(increase(session_summary_telemetry_total{type=\"join\", classifier=~\"$classifier\"}[$__range])) by (how_many_seen)",
2026-01-04 23:52:36 +00:00
"legendFormat": "{{ "{{" }}how_many_seen{{ "}}" }}",
2026-01-04 23:35:13 +00:00
"refId": "A"
}
],
2026-01-07 13:27:54 +00:00
"description": "Summary of what participants saw upon joining (e.g., 'first' in the room vs 'all' others seen).",
"title": "Join Summary",
2026-01-04 23:35:13 +00:00
"type": "piechart"
},
{
"datasource": "Prometheus",
"gridPos": {
"h": 8,
"w": 8,
2026-01-08 01:29:57 +00:00
"x": 8,
2026-01-04 23:35:13 +00:00
"y": 12
},
"id": 7,
"options": {
"legend": {
"displayMode": "list",
2026-01-06 12:20:51 +00:00
"placement": "right",
"values": [
"value"
]
2026-01-04 23:35:13 +00:00
},
"pieType": "pie",
"reduceOptions": {
"calcs": ["lastNotNull"],
"fields": "",
"values": false
}
},
"targets": [
{
2026-01-11 23:10:38 +00:00
"expr": "sum(increase(session_summary_telemetry_total{type=\"leave\", classifier=~\"$classifier\"}[$__range])) by (how_many_seen)",
2026-01-04 23:52:36 +00:00
"legendFormat": "{{ "{{" }}how_many_seen{{ "}}" }}",
2026-01-04 23:35:13 +00:00
"refId": "A"
}
],
2026-01-07 13:27:54 +00:00
"description": "Summary of what participants had seen by the time they left the session.",
"title": "Leave Summary",
2026-01-04 23:35:13 +00:00
"type": "piechart"
},
{
"datasource": "Prometheus",
"gridPos": {
"h": 8,
"w": 8,
2026-01-08 01:29:57 +00:00
"x": 0,
"y": 20
2026-01-04 23:35:13 +00:00
},
"id": 5,
2026-01-07 13:49:17 +00:00
"options": {
"calculate": false,
"calculation": {},
"color": {
"mode": "scheme",
"scheme": "Oranges"
},
"dataFormat": "tsbuckets",
"hideZeroBuckets": true,
"yAxis": {
"axisPlacement": "auto",
"axisUnit": "short"
}
},
2026-01-04 23:35:13 +00:00
"targets": [
{
2026-01-11 23:10:38 +00:00
"expr": "sum(increase(session_join_telemetry_others_bucket{classifier=~\"$classifier\"}[$__range])) by (le)",
2026-01-04 23:35:13 +00:00
"format": "heatmap",
"refId": "A"
}
],
2026-01-07 13:27:54 +00:00
"description": "Heatmap showing the number of other participants already present in the room when a new user joins.",
2026-01-04 23:35:13 +00:00
"title": "Participants on Join (Distribution)",
"type": "heatmap"
},
{
"datasource": "Prometheus",
"gridPos": {
"h": 8,
"w": 8,
2026-01-08 01:29:57 +00:00
"x": 8,
"y": 20
2026-01-04 23:35:13 +00:00
},
"id": 6,
2026-01-07 13:49:17 +00:00
"options": {
"calculate": false,
"calculation": {},
"color": {
"mode": "scheme",
"scheme": "Blues"
},
"dataFormat": "tsbuckets",
"hideZeroBuckets": true,
"yAxis": {
"axisPlacement": "auto",
"axisUnit": "s"
}
},
2026-01-04 23:35:13 +00:00
"targets": [
{
2026-01-11 23:10:38 +00:00
"expr": "sum(increase(session_join_telemetry_age_bucket{classifier=~\"$classifier\"}[$__range])) by (le)",
2026-01-04 23:35:13 +00:00
"format": "heatmap",
"refId": "A"
}
],
2026-01-07 13:27:54 +00:00
"description": "Heatmap showing how long the session has been active when a new user joins.",
2026-01-04 23:35:13 +00:00
"title": "Session Age on Join (Distribution)",
"type": "heatmap"
2026-01-06 14:21:39 +00:00
},
{
"datasource": "${logs}",
"fieldConfig": {
"defaults": {
"custom": {
"align": "auto",
"displayMode": "auto"
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{ "color": "green", "value": null }
]
}
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 24,
"x": 0,
2026-01-08 01:29:57 +00:00
"y": 28
2026-01-06 14:21:39 +00:00
},
"id": 8,
"options": {
"showHeader": true
},
"targets": [
2026-01-07 13:37:21 +00:00
{
2026-01-11 23:10:38 +00:00
"expr": "{namespace=\"webrtc-be\", container=\"webrtc-be\"} |= \"type=peer_telemetry\" |~ \"classifier=\\\"($classifier)\\\"\" | logfmt",
2026-01-07 13:08:54 +00:00
"maxLines": 500,
2026-01-06 14:21:39 +00:00
"refId": "A"
2026-01-07 13:37:21 +00:00
}
2026-01-06 14:21:39 +00:00
],
2026-01-07 13:27:54 +00:00
"description": "Raw table of connection and media telemetry events per user/room.",
2026-01-06 14:21:39 +00:00
"title": "Raw Peer Telemetry",
2026-01-07 03:02:58 +00:00
"transformations": [
2026-01-07 03:26:14 +00:00
{
2026-01-07 05:04:13 +00:00
"id": "extractFields",
2026-01-07 03:26:14 +00:00
"options": {
2026-01-07 05:04:13 +00:00
"format": "json",
"source": "labels"
2026-01-07 03:26:14 +00:00
}
},
2026-01-07 03:02:58 +00:00
{
"id": "organize",
"options": {
"excludeByName": {
"app": true,
2026-01-07 03:26:14 +00:00
"app_kubernetes_io_component": true,
"app_kubernetes_io_name": true,
"cluster": true,
2026-01-07 03:02:58 +00:00
"container": true,
2026-01-07 03:26:14 +00:00
"filename": true,
2026-01-07 05:12:18 +00:00
"id": true,
2026-01-07 03:02:58 +00:00
"job": true,
2026-01-07 05:04:13 +00:00
"labels": true,
2026-01-07 03:02:58 +00:00
"level": true,
2026-01-07 05:12:18 +00:00
"Line": true,
2026-01-07 03:02:58 +00:00
"namespace": true,
2026-01-07 03:26:14 +00:00
"pod": true,
"pod_template_hash": true,
2026-01-07 03:02:58 +00:00
"stream": true,
2026-01-07 05:12:18 +00:00
"tsNs": true,
2026-01-07 03:02:58 +00:00
"type": true
},
"indexByName": {
"Time": 0,
"room": 1,
"user": 2,
"p2p": 3,
"protocol": 4,
"relay": 5,
"turn_server": 6,
2026-01-11 01:21:16 +00:00
"video_seen": 7,
"local_candidate_type": 8,
"remote_candidate_type": 9,
"remote_ip": 10,
2026-01-11 01:49:55 +00:00
"ice_state": 11,
2026-01-11 13:47:33 +00:00
"user_agent": 12,
"local_url": 13,
"local_port": 14,
"local_rel_port": 15,
"local_rel_addr": 16,
"rtt": 17
2026-01-07 03:02:58 +00:00
},
2026-01-11 01:49:55 +00:00
"renameByName": {
"ice_state": "ICE State",
"local_candidate_type": "Local Candidate",
"remote_candidate_type": "Remote Candidate",
"remote_ip": "Remote IP",
2026-01-11 13:47:33 +00:00
"user_agent": "User Agent",
"local_url": "STUN/TURN URL",
"local_port": "Ext Port",
"local_rel_port": "Int Port",
"local_rel_addr": "Int IP",
"rtt": "RTT"
2026-01-11 01:49:55 +00:00
}
2026-01-07 03:02:58 +00:00
}
}
],
2026-01-06 14:21:39 +00:00
"type": "table"
},
{
"datasource": "${logs}",
"fieldConfig": {
"defaults": {
"custom": {
"align": "auto",
"displayMode": "auto"
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{ "color": "green", "value": null }
]
}
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 24,
"x": 0,
2026-01-08 01:29:57 +00:00
"y": 36
2026-01-06 14:21:39 +00:00
},
"id": 9,
"options": {
"showHeader": true
},
"targets": [
2026-01-07 13:37:21 +00:00
{
2026-01-11 23:10:38 +00:00
"expr": "{namespace=\"webrtc-be\", container=\"webrtc-be\"} |= \"type=join_telemetry\" |~ \"classifier=\\\"($classifier)\\\"\" | logfmt",
2026-01-07 13:08:54 +00:00
"maxLines": 500,
2026-01-06 14:21:39 +00:00
"refId": "A"
2026-01-07 13:37:21 +00:00
}
2026-01-06 14:21:39 +00:00
],
2026-01-07 13:27:54 +00:00
"description": "Raw table of events recorded exactly when a user joins a room.",
2026-01-06 14:21:39 +00:00
"title": "Raw Join Telemetry",
2026-01-07 03:02:58 +00:00
"transformations": [
2026-01-07 03:26:14 +00:00
{
2026-01-07 05:04:13 +00:00
"id": "extractFields",
2026-01-07 03:26:14 +00:00
"options": {
2026-01-07 05:04:13 +00:00
"format": "json",
"source": "labels"
2026-01-07 03:26:14 +00:00
}
},
2026-01-07 03:02:58 +00:00
{
"id": "organize",
"options": {
"excludeByName": {
"app": true,
2026-01-07 03:26:14 +00:00
"app_kubernetes_io_component": true,
"app_kubernetes_io_name": true,
"cluster": true,
2026-01-07 03:02:58 +00:00
"container": true,
2026-01-07 03:26:14 +00:00
"filename": true,
2026-01-07 05:12:18 +00:00
"id": true,
2026-01-07 03:02:58 +00:00
"job": true,
2026-01-07 05:04:13 +00:00
"labels": true,
2026-01-07 03:02:58 +00:00
"level": true,
2026-01-07 05:12:18 +00:00
"Line": true,
2026-01-07 03:02:58 +00:00
"namespace": true,
2026-01-07 03:26:14 +00:00
"pod": true,
"pod_template_hash": true,
2026-01-07 03:02:58 +00:00
"stream": true,
2026-01-07 05:12:18 +00:00
"tsNs": true,
2026-01-07 03:02:58 +00:00
"type": true
},
"indexByName": {
"Time": 0,
"room": 1,
"user": 2,
"others_on_join": 3,
"session_age_on_join": 4
},
"renameByName": {}
}
}
],
2026-01-06 14:21:39 +00:00
"type": "table"
},
{
"datasource": "${logs}",
"fieldConfig": {
"defaults": {
"custom": {
"align": "auto",
"displayMode": "auto"
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{ "color": "green", "value": null }
]
}
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 24,
"x": 0,
2026-01-08 01:29:57 +00:00
"y": 44
2026-01-06 14:21:39 +00:00
},
"id": 10,
"options": {
"showHeader": true
},
"targets": [
2026-01-07 13:37:21 +00:00
{
2026-01-11 23:10:38 +00:00
"expr": "{namespace=\"webrtc-be\", container=\"webrtc-be\"} |= \"type=join_summary_telemetry\" |~ \"classifier=\\\"($classifier)\\\"\" | logfmt",
2026-01-07 13:08:54 +00:00
"maxLines": 500,
2026-01-06 14:21:39 +00:00
"refId": "A"
2026-01-07 13:37:21 +00:00
}
2026-01-06 14:21:39 +00:00
],
2026-01-07 13:27:54 +00:00
"description": "Detailed counts of participants seen by the user upon joining.",
2026-01-06 14:21:39 +00:00
"title": "Raw Join Summary Telemetry",
2026-01-07 03:02:58 +00:00
"transformations": [
2026-01-07 03:26:14 +00:00
{
2026-01-07 05:04:13 +00:00
"id": "extractFields",
2026-01-07 03:26:14 +00:00
"options": {
2026-01-07 05:04:13 +00:00
"format": "json",
"source": "labels"
2026-01-07 03:26:14 +00:00
}
},
2026-01-07 03:02:58 +00:00
{
"id": "organize",
"options": {
"excludeByName": {
"app": true,
2026-01-07 03:26:14 +00:00
"app_kubernetes_io_component": true,
"app_kubernetes_io_name": true,
"cluster": true,
2026-01-07 03:02:58 +00:00
"container": true,
2026-01-07 03:26:14 +00:00
"filename": true,
2026-01-07 05:12:18 +00:00
"id": true,
2026-01-07 03:02:58 +00:00
"job": true,
2026-01-07 05:04:13 +00:00
"labels": true,
2026-01-07 03:02:58 +00:00
"level": true,
2026-01-07 05:12:18 +00:00
"Line": true,
2026-01-07 03:02:58 +00:00
"namespace": true,
2026-01-07 03:26:14 +00:00
"pod": true,
"pod_template_hash": true,
2026-01-07 03:02:58 +00:00
"stream": true,
2026-01-07 05:12:18 +00:00
"tsNs": true,
2026-01-07 03:02:58 +00:00
"type": true
},
"indexByName": {
"Time": 0,
"room": 1,
"user": 2,
"how_many_seen_on_join": 3
},
"renameByName": {}
}
}
],
2026-01-06 14:21:39 +00:00
"type": "table"
},
{
"datasource": "${logs}",
"fieldConfig": {
"defaults": {
"custom": {
"align": "auto",
"displayMode": "auto"
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{ "color": "green", "value": null }
]
}
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 24,
"x": 0,
2026-01-08 01:29:57 +00:00
"y": 52
2026-01-06 14:21:39 +00:00
},
"id": 11,
"options": {
"showHeader": true
},
"targets": [
2026-01-07 13:37:21 +00:00
{
2026-01-11 23:10:38 +00:00
"expr": "{namespace=\"webrtc-be\", container=\"webrtc-be\"} |= \"type=leave_summary_telemetry\" |~ \"classifier=\\\"($classifier)\\\"\" | logfmt",
2026-01-07 13:08:54 +00:00
"maxLines": 500,
2026-01-06 14:21:39 +00:00
"refId": "A"
2026-01-07 13:37:21 +00:00
}
2026-01-06 14:21:39 +00:00
],
2026-01-07 13:27:54 +00:00
"description": "Detailed counts of participants seen by the user throughout their entire session once they leave.",
2026-01-06 14:21:39 +00:00
"title": "Raw Leave Summary Telemetry",
2026-01-07 03:02:58 +00:00
"transformations": [
2026-01-07 03:26:14 +00:00
{
2026-01-07 05:04:13 +00:00
"id": "extractFields",
2026-01-07 03:26:14 +00:00
"options": {
2026-01-07 05:04:13 +00:00
"format": "json",
"source": "labels"
2026-01-07 03:26:14 +00:00
}
},
2026-01-07 03:02:58 +00:00
{
"id": "organize",
"options": {
"excludeByName": {
"app": true,
2026-01-07 03:26:14 +00:00
"app_kubernetes_io_component": true,
"app_kubernetes_io_name": true,
"cluster": true,
2026-01-07 03:02:58 +00:00
"container": true,
2026-01-07 03:26:14 +00:00
"filename": true,
2026-01-07 05:12:18 +00:00
"id": true,
2026-01-07 03:02:58 +00:00
"job": true,
2026-01-07 05:04:13 +00:00
"labels": true,
2026-01-07 03:02:58 +00:00
"level": true,
2026-01-07 05:12:18 +00:00
"Line": true,
2026-01-07 03:02:58 +00:00
"namespace": true,
2026-01-07 03:26:14 +00:00
"pod": true,
"pod_template_hash": true,
2026-01-07 03:02:58 +00:00
"stream": true,
2026-01-07 05:12:18 +00:00
"tsNs": true,
2026-01-07 03:02:58 +00:00
"type": true
},
"indexByName": {
"Time": 0,
"room": 1,
"user": 2,
"how_many_seen_on_leave": 3
},
"renameByName": {}
}
}
],
2026-01-06 14:21:39 +00:00
"type": "table"
2026-01-11 01:21:16 +00:00
},
{
"datasource": "${logs}",
"fieldConfig": {
"defaults": {
"custom": {
"align": "auto",
"displayMode": "auto"
},
"mappings": [],
"thresholds": {
"mode": "absolute",
"steps": [
{ "color": "green", "value": null }
]
}
},
"overrides": []
},
"gridPos": {
"h": 8,
"w": 24,
"x": 0,
"y": 60
},
"id": 16,
"options": {
"showHeader": true
},
"targets": [
{
2026-01-11 23:10:38 +00:00
"expr": "{namespace=\"webrtc-be\", container=\"webrtc-be\"} |= \"type=peer_telemetry\" |~ \"classifier=\\\"($classifier)\\\"\" |= \"protocol=unknown\" | logfmt",
2026-01-11 01:21:16 +00:00
"maxLines": 500,
"refId": "A"
}
],
"description": "Filtered view of telemetry where the protocol was reported as unknown.",
"title": "Unknown Peers",
"transformations": [
{
"id": "extractFields",
"options": {
"format": "json",
"source": "labels"
}
},
{
"id": "organize",
"options": {
"excludeByName": {
"app": true,
"app_kubernetes_io_component": true,
"app_kubernetes_io_name": true,
"cluster": true,
"container": true,
"filename": true,
"id": true,
"job": true,
"labels": true,
"level": true,
"Line": true,
"namespace": true,
"pod": true,
"pod_template_hash": true,
"stream": true,
"tsNs": true,
"type": true
},
"indexByName": {
"Time": 0,
"room": 1,
"user": 2,
"p2p": 3,
"protocol": 4,
"relay": 5,
"turn_server": 6,
"video_seen": 7,
"local_candidate_type": 8,
"remote_candidate_type": 9,
"remote_ip": 10,
2026-01-11 01:49:55 +00:00
"ice_state": 11,
2026-01-11 13:47:33 +00:00
"user_agent": 12,
"local_url": 13,
"local_port": 14,
"local_rel_port": 15,
"local_rel_addr": 16,
"rtt": 17
2026-01-11 01:21:16 +00:00
},
2026-01-11 01:49:55 +00:00
"renameByName": {
"ice_state": "ICE State",
"local_candidate_type": "Local Candidate",
"remote_candidate_type": "Remote Candidate",
"remote_ip": "Remote IP",
2026-01-11 13:47:33 +00:00
"user_agent": "User Agent",
"local_url": "STUN/TURN URL",
"local_port": "Ext Port",
"local_rel_port": "Int Port",
"local_rel_addr": "Int IP",
"rtt": "RTT"
2026-01-11 01:49:55 +00:00
}
2026-01-11 01:21:16 +00:00
}
}
],
"type": "table"
2026-01-04 23:35:13 +00:00
}
],
2026-01-07 05:14:08 +00:00
"refresh": "30s",
2026-01-04 23:35:13 +00:00
"schemaVersion": 30,
"style": "dark",
"tags": ["webrtc", "telemetry"],
"templating": {
2026-01-06 14:21:39 +00:00
"list": [
{
"current": {
"selected": false,
"text": "Loki",
"value": "Loki"
},
"hide": 0,
"includeAll": false,
"label": "Logs Datasource",
"multi": false,
"name": "logs",
"options": [],
"query": "loki",
"refresh": 1,
"regex": "",
"skipUrlSync": false,
"type": "datasource"
2026-01-11 23:10:38 +00:00
},
{
"allValue": ".*",
"current": {
"selected": false,
"text": "All",
"value": "$__all"
},
"hide": 0,
"includeAll": true,
"label": "Traffic Type",
"multi": true,
"name": "classifier",
"options": [
{
"selected": true,
"text": "All",
"value": "$__all"
},
{
"selected": false,
"text": "Real",
"value": "Real"
},
{
"selected": false,
"text": "Test",
"value": "Test"
},
{
"selected": false,
"text": "Probe",
"value": "Probe"
}
],
"query": "Real, Test, Probe",
"queryValue": "",
"skipUrlSync": false,
"type": "custom"
2026-01-06 14:21:39 +00:00
}
]
2026-01-04 23:35:13 +00:00
},
"time": {
"from": "now-1h",
"to": "now"
},
"timepicker": {},
"timezone": "",
"title": "WebRTC Session Telemetry",
"uid": "webrtc-session-telemetry"
}