Leider bietet der AntMedia Server bisher keinen eigenen Prometheus Exporter an um die Statistiken über die aktuellen Zuschauerzahlen etc. in Prometheus zu übertragen und so für die Nachwelt und eine nachträgliche Auswertung zu speichern. Da der AntMedia Server allerdings eine eigene REST API anbietet, die die entsprechenden Daten bereitstellt, kann man diese per json_exporter für Prometheus abrufbar machen.
Hierzu muss im AntMedia Server der Zugriff von der jeweiligen IP-Adresse auf die API erlaubt werden. Nachfolgenden kann der json_exporter mit folgender Konfiguration gestartet werden.
---
metrics:
- name: antmedia
type: object
help: AntMedia Server broadcast statistics
path: $[*]
labels:
streamId: $.streamId
name: $.name
status: $.status
type: $.type
values:
speed: $.speed
bitrate: $.bitrate
hlsViewerCount: $.hlsViewerCount
webRTCViewerCount: $.webRTCViewerCount
rtmpViewerCount: $.rtmpViewerCount
mp4Enabled: $.mp4Enabled
webMEnabled: $.webMEnabled
In Prometheus kann der Exporter dann mit folgender Konfiguration eingebunden werden. Leider ist es bisher nicht möglich alle in AntMedia Server erstellten Applikationen über einen zentralen API Endpunkt abzurufen.
scrape_configs:
- job_name: json
static_configs:
- targets:
- http://localhost:5080/LiveApp/rest/v2/broadcasts/list/0/9999
metrics_path: /probe
scrape_interval: 15s
relabel_configs:
- source_labels: [__address__]
target_label: __param_target
- source_labels: [__param_target]
target_label: instance
- target_label: __address__
replacement: localhost:7979
Die in Prometheus vorliegenden Daten lassen sich dann z.B. per Grafana entsprechned aufbereiten und darstellen.