https://github.com/mauricioabreu/nginx_rtmp_prometheus
Prometheus exporter for NGINX-RTMP
https://github.com/mauricioabreu/nginx_rtmp_prometheus
nginx-rtmp prometheus-exporter
Last synced: 20 days ago
JSON representation
Prometheus exporter for NGINX-RTMP
- Host: GitHub
- URL: https://github.com/mauricioabreu/nginx_rtmp_prometheus
- Owner: mauricioabreu
- License: mit
- Created: 2020-04-18T16:25:06.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2024-04-23T14:27:20.000Z (about 1 year ago)
- Last Synced: 2025-03-27T20:12:22.941Z (about 1 month ago)
- Topics: nginx-rtmp, prometheus-exporter
- Language: Go
- Homepage:
- Size: 3.12 MB
- Stars: 28
- Watchers: 2
- Forks: 10
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# NGINX-RTMP exporter for Prometheus
## Building
To build the exporter:
```
make
```or
```
make build
```## Getting started
To run this exporter:
```
./nginx_rtmp_exporter [flags]
```Help on flags:
```
./nginx_rtmp_exporter -h
```## Testing
This project comes with two commands to start a real NGINX-RTMP server and ingest a real video.
Execute `make run-nginx-rtmp` and `make ingest-stream` in your terminal, then start the exporter.
You can also serve a fake server using the `make serve-mocked-stats` - it uses the file `tests/stats.xml`.
## Metrics
NGINX-RTMP exposes its metrics in a path specified in the nginx.conf file.
To start collecting metrics you need to update your NGINX-RTMP configuration with the following directives:
```
location /stat {
rtmp_stat all;# Use this stylesheet to view XML as web page
# in browser
rtmp_stat_stylesheet stat.xsl;
}location /stat.xsl {
# XML stylesheet to view RTMP stats.
# Copy stat.xsl wherever you want
# and put the full directory path here
root /path/to/stat.xsl/;
}
```Now you can watch NGINX-RTMP statistics. This exports scrapes `localhost:8080/stats` by default you can change it for whatever address you want, juste pass `nginxrtmp.scrape-uri` argument to the exporter:
```
./nginx_rtmp_exporter --nginxrtmp.scrape-uri="localhost:9090/statistics"
```By default the NGINX-RTMP exporter serves on port `0.0.0.0:9728` at `/metrics`
## Collectors
This exporter collects and exposes the following statistics:
```
# HELP nginx_rtmp_exporter_build_info A metric with a constant '1' value labeled by version, revision, branch, and goversion from which nginx_rtmp_exporter was built.
# TYPE nginx_rtmp_exporter_build_info gauge
nginx_rtmp_exporter_build_info{branch="master",goversion="go1.14",revision="fe3d8ac350cec520648b07cf9ceb613f12362e2b",version="0.0.1"} 1
# HELP nginx_rtmp_server_current_streams Current number of active streams
# TYPE nginx_rtmp_server_current_streams gauge
nginx_rtmp_server_current_streams 6
# HELP nginx_rtmp_server_incoming_bytes_total Current total of incoming bytes
# TYPE nginx_rtmp_server_incoming_bytes_total counter
nginx_rtmp_server_incoming_bytes_total 2.40895361e+08
# HELP nginx_rtmp_server_outgoing_bytes_total Current total of outgoing bytes
# TYPE nginx_rtmp_server_outgoing_bytes_total counter
nginx_rtmp_server_outgoing_bytes_total 5.3739661e+07
# HELP nginx_rtmp_server_receive_bytes Current bandwidth in per second
# TYPE nginx_rtmp_server_receive_bytes gauge
nginx_rtmp_server_receive_bytes 6.592750549316406
# HELP nginx_rtmp_server_transmit_bytes Current bandwidth out per second
# TYPE nginx_rtmp_server_transmit_bytes gauge
nginx_rtmp_server_transmit_bytes 1.4704513549804688
# HELP nginx_rtmp_server_uptime_seconds_total Number of seconds NGINX-RTMP started
# TYPE nginx_rtmp_server_uptime_seconds_total counter
nginx_rtmp_server_uptime_seconds_total 310
# HELP nginx_rtmp_stream_incoming_bytes_total Current total of incoming bytes
# TYPE nginx_rtmp_stream_incoming_bytes_total counter
nginx_rtmp_stream_incoming_bytes_total{stream="hello"} 5.3836313e+07
nginx_rtmp_stream_incoming_bytes_total{stream="hello_240p264kbs"} 7.772386e+06
nginx_rtmp_stream_incoming_bytes_total{stream="hello_240p528kbs"} 1.5462727e+07
nginx_rtmp_stream_incoming_bytes_total{stream="hello_360p878kbs"} 2.8888155e+07
nginx_rtmp_stream_incoming_bytes_total{stream="hello_480p1128kbs"} 3.849418e+07
nginx_rtmp_stream_incoming_bytes_total{stream="hello_720p2628kbs"} 9.5998269e+07
# HELP nginx_rtmp_stream_outgoing_bytes_total Current total of outgoing bytes
# TYPE nginx_rtmp_stream_outgoing_bytes_total counter
nginx_rtmp_stream_outgoing_bytes_total{stream="hello"} 5.365292e+07
nginx_rtmp_stream_outgoing_bytes_total{stream="hello_240p264kbs"} 0
nginx_rtmp_stream_outgoing_bytes_total{stream="hello_240p528kbs"} 0
nginx_rtmp_stream_outgoing_bytes_total{stream="hello_360p878kbs"} 0
nginx_rtmp_stream_outgoing_bytes_total{stream="hello_480p1128kbs"} 0
nginx_rtmp_stream_outgoing_bytes_total{stream="hello_720p2628kbs"} 0
# HELP nginx_rtmp_stream_receive_bytes Current bandwidth in per second
# TYPE nginx_rtmp_stream_receive_bytes gauge
nginx_rtmp_stream_receive_bytes{stream="hello"} 1.468170166015625
nginx_rtmp_stream_receive_bytes{stream="hello_240p264kbs"} 0.20711517333984375
nginx_rtmp_stream_receive_bytes{stream="hello_240p528kbs"} 0.4146881103515625
nginx_rtmp_stream_receive_bytes{stream="hello_360p878kbs"} 0.77984619140625
nginx_rtmp_stream_receive_bytes{stream="hello_480p1128kbs"} 1.0345001220703125
nginx_rtmp_stream_receive_bytes{stream="hello_720p2628kbs"} 2.619903564453125
# HELP nginx_rtmp_stream_transmit_bytes Current bandwidth out per second
# TYPE nginx_rtmp_stream_transmit_bytes gauge
nginx_rtmp_stream_transmit_bytes{stream="hello"} 1.468170166015625
nginx_rtmp_stream_transmit_bytes{stream="hello_240p264kbs"} 0
nginx_rtmp_stream_transmit_bytes{stream="hello_240p528kbs"} 0
nginx_rtmp_stream_transmit_bytes{stream="hello_360p878kbs"} 0
nginx_rtmp_stream_transmit_bytes{stream="hello_480p1128kbs"} 0
nginx_rtmp_stream_transmit_bytes{stream="hello_720p2628kbs"} 0
# HELP nginx_rtmp_stream_uptime_seconds_total Number of seconds since the stream started
# TYPE nginx_rtmp_stream_uptime_seconds_total counter
nginx_rtmp_stream_uptime_seconds_total{stream="hello"} 306.805
nginx_rtmp_stream_uptime_seconds_total{stream="hello_240p264kbs"} 300.55
nginx_rtmp_stream_uptime_seconds_total{stream="hello_240p528kbs"} 300.6
nginx_rtmp_stream_uptime_seconds_total{stream="hello_360p878kbs"} 300.65
nginx_rtmp_stream_uptime_seconds_total{stream="hello_480p1128kbs"} 300.7
nginx_rtmp_stream_uptime_seconds_total{stream="hello_720p2628kbs"} 300.75
```