HEPop is a prototype stand-alone HEP Capture Server designed for HOMER7 capable of emitting indexed datasets and tagged timeseries to multiple backends in bulks. HEPop is developed using NodeJS
and distributed using npm
.
TLDR; instant, stand-alone, minimal HOMER Server without Kamailio or OpenSIPS dependency/options.
This is a prototype under heavy development, please use it with caution and kindly report bugs!
The core of hepop
follows the latest homer
data design and splits indexed data and timeseries, providing multiple backend options to choose from when prototype a custom capture solution.
During testing, HEPop bulking clocked about 10-15k/PPS per shared core on a Xeon(R) CPU E5-2660 v3 @ 2.60GHz
TYPE | |
---|---|
JSON | Postgres (default), RethinkDB, MongoDB, Elasticsearch |
Timeseries | InfluxDB (default), Prometheus |
SOCKET | PROTO | TYPE/ID | DESCRIPTION | STORE | STATS |
---|---|---|---|---|---|
HEP | HEP | 1 | SIP | JSON + TS | SIP methods, SIP responses |
5 | RTCP Reports | Timeseries | RTCP, RTCPXR, X-RTP-Stat | ||
34 | RTP Agent Report | Timeseries | RTP, RTCP Stats | ||
100 | JSON Logs | JSON | String, JSON Object | ||
1000+ | Dynamic Types | JSON | |||
HTTP | JANUS | any | Custom JSON Fields | JSON | session_id, handle_id, opaque_id, event |
34 | Media Stats | Timeseries | RTCP Statistics | ||
HTTP | MEDIASOUP | any | Custom JSON Fields | JSON | roomId, peerName, producerId |
producer.stats | Media Stats | Timeseries | RTCP Statistics | ||
transport.stats | Transport Stats | Timeseries | IP SRC/DST, Bytes in/out | ||
SIPFIX | SIP (tcp/udp) | SIP comm-monitor | JSON + TS | SIP methods, SIP responses | |
RTP QOS (stats) | RTP Media stats | Timeseries | RTP, RTCP Stats |
Launch a dedicated instance of hepop
per protocol using a custom configuration:
$ hepop -c ./myconfig.js
Try the bundled Docker compose
See myconfig.js for an example configuration
-V, --version output the version number
-p, --port <number> port to listen on (default: 9060)
-a, --address <address> network address to listen on
-d, --dbName <address> database name
-t, --tableName <address> database table name
-c, --configfile <configfile> configuration file
-s, --socket <socket> socket service (udp,tcp,http,sipfix) (default: udp)
This Open-Source project is made possible by actual Humans without corporate sponsors, angels or patreons.
If you use this software in production, please consider supporting its development with contributions or donations