Support for Prometheus

Hello,

We’d like to use Grafana dashboards to present graphs for data from LibreNMS and take the path of LibreNMS + Prometheus + Grafana.

A test environment of LibreNMS + Prometheus is set up with
librenms/docker: 1.47-RC1
prom/pushgateway: v0.7.0
prom/prometheus: v2.6.1

It shows that, when the values of the metrics’ keys include special characters, the metrics are not seen on the Prometheus Pushgateway frontend.

Here is a part of sample output of './poller.php -d -h ':
Prometheus data:
ports
array (
‘ifName’ => ‘Gi1/0/3’,
‘ifAlias’ => ‘GigabitEthernet1/0/3’,
‘port_descr_type’ => NULL,
)
array (
‘INOCTETS’ => ‘17069030130’,
‘OUTOCTETS’ => ‘19521044127’,
‘INERRORS’ => ‘0’,
‘OUTERRORS’ => ‘0’,
‘INUCASTPKTS’ => ‘155718856’,
‘OUTUCASTPKTS’ => ‘155373266’,
‘INNUCASTPKTS’ => NULL,
‘OUTNUCASTPKTS’ => NULL,
‘INDISCARDS’ => ‘0’,
‘OUTDISCARDS’ => ‘0’,
‘INUNKNOWNPROTOS’ => ‘0’,
‘INBROADCASTPKTS’ => ‘1301’,
‘OUTBROADCASTPKTS’ => ‘27330452’,
‘INMULTICASTPKTS’ => ‘104’,
‘OUTMULTICASTPKTS’ => ‘57642752’,
‘ifInUcastPkts_rate’ => 15,
‘ifOutUcastPkts_rate’ => 15,
‘ifInErrors_rate’ => 0,
‘ifOutErrors_rate’ => 0,
‘ifInOctets_rate’ => 1257,
‘ifOutOctets_rate’ => 1739,
)
INOCTETS 17069030130
OUTOCTETS 19521044127
INERRORS 0
OUTERRORS 0
INUCASTPKTS 155718856
OUTUCASTPKTS 155373266
INDISCARDS 0
OUTDISCARDS 0
INUNKNOWNPROTOS 0
INBROADCASTPKTS 1301
OUTBROADCASTPKTS 27330452
INMULTICASTPKTS 104
OUTMULTICASTPKTS 57642752
ifInUcastPkts_rate 15
ifOutUcastPkts_rate 15
ifInErrors_rate 0
ifOutErrors_rate 0
ifInOctets_rate 1257
ifOutOctets_rate 1739
http://:/metrics/job/pushgateway/instance//measurement/ports/ifName/Gi1/0/3/ifAlias/GigabitEthernet1/0/3

END

It would be greatly appreciated if URL encoding of special characters would be added on the support for Prometheus. Thanks very much!!!