aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xmetrics.py2
-rwxr-xr-xprometheus.py38
2 files changed, 19 insertions, 21 deletions
diff --git a/metrics.py b/metrics.py
index cd4c931..89bf4d0 100755
--- a/metrics.py
+++ b/metrics.py
@@ -73,7 +73,7 @@ class EjabberdMetrics(EjabberdApiCalls):
# registered + muc
for vhost in self._vhosts:
self._registered[vhost] = self.fetch_registered_count(vhost)
- self._muc[vhost] = self.fetch_muc_count(vhost,muc_host=self.muc_host)
+ self._muc[vhost] = self.fetch_muc_count(vhost, muc_host=self.muc_host)
# online user
self._onlineuser = self.fetch_onlineuser()
diff --git a/prometheus.py b/prometheus.py
index d2ffcf5..da0d24c 100755
--- a/prometheus.py
+++ b/prometheus.py
@@ -1,19 +1,16 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
-import subprocess
import logging
-from time import time
-from collections import defaultdict
from http.server import BaseHTTPRequestHandler, HTTPServer
from socket import AF_INET6
+from time import time
from urllib.parse import parse_qs, urlparse
+
from prometheus_client import (
CollectorRegistry, Gauge, generate_latest, CONTENT_TYPE_LATEST
)
-
-
from config import Config
from metrics import EjabberdMetrics
@@ -42,7 +39,8 @@ class DynamicMetricsHandler(BaseHTTPRequestHandler):
{"generator": registry_generator})
return DynMetricsHandler
-class Prometheus():
+
+class Prometheus:
def __init__(self, metrics):
self.ttl = 10
self._last_update = 0
@@ -64,35 +62,35 @@ class Prometheus():
registered_vhosts = Gauge('ejabberd_registered_vhosts', 'count of user per vhost', labelnames_vhost, registry=registry)
muc = Gauge('ejabberd_muc', 'count of muc\'s per vhost', labelnames_vhost, registry=registry)
- online_vhost_node = Gauge('ejabberd_online_vhost_node', 'count of client connections', ["vhost","node"], registry=registry)
+ online_vhost_node = Gauge('ejabberd_online_vhost_node', 'count of client connections', ["vhost", "node"], registry=registry)
- online_status = Gauge('ejabberd_online_status', 'count of client connections', ["vhost","node","status"], registry=registry)
- online_connection = Gauge('ejabberd_online_connection', 'count of client connections', ["vhost","node","connection"], registry=registry)
- online_client = Gauge('ejabberd_online_client', 'count of client software', ["vhost","node","client"], registry=registry)
- online_ipversion = Gauge('ejabberd_online_ipversion', 'count of client software', ["vhost","node","ipversion"], registry=registry)
- online_client_ipversion = Gauge('ejabberd_online_client_ipversion', 'count of client software', ["vhost","node","client","ipversion"], registry=registry)
+ online_status = Gauge('ejabberd_online_status', 'count of client connections', ["vhost", "node", "status"], registry=registry)
+ online_connection = Gauge('ejabberd_online_connection', 'count of client connections', ["vhost", "node", "connection"], registry=registry)
+ online_client = Gauge('ejabberd_online_client', 'count of client software', ["vhost", "node", "client"], registry=registry)
+ online_ipversion = Gauge('ejabberd_online_ipversion', 'count of client software', ["vhost", "node", "ipversion"], registry=registry)
+ online_client_ipversion = Gauge('ejabberd_online_client_ipversion', 'count of client software', ["vhost", "node", "client", "ipversion"], registry=registry)
for host in self._metrics.get_vhosts():
- labels_vhost = (host)
+ labels_vhost = host
registered_vhosts.labels(labels_vhost).set(self._metrics.get_registered(host))
muc.labels(labels_vhost).set(self._metrics.get_muc(host))
for k, v in self._metrics.get_online_by_node(vhost=host).items():
- online_vhost_node.labels(host,k).set(v)
+ online_vhost_node.labels(host, k).set(v)
for node in self._metrics.get_nodes():
for k, v in self._metrics.get_online_by_status(node=node, vhost=host).items():
- online_status.labels(host,node,k).set(v)
+ online_status.labels(host, node, k).set(v)
for k, v in self._metrics.get_online_by_connection(node=node, vhost=host).items():
- online_connection.labels(host,node,k).set(v)
+ online_connection.labels(host, node, k).set(v)
for k, v in self._metrics.get_online_by_client(node=node, vhost=host).items():
- online_client.labels(host,node,k).set(v)
+ online_client.labels(host, node, k).set(v)
for k, v in self._metrics.get_online_by_ipversion(node=node, vhost=host).items():
- online_ipversion.labels(host,node,k).set(v)
- for client, data in self._metrics.get_online_client_by_ipversion(node=node,vhost=host).items():
+ online_ipversion.labels(host, node, k).set(v)
+ for client, data in self._metrics.get_online_client_by_ipversion(node=node, vhost=host).items():
for k, v in data.items():
- online_client_ipversion.labels(host,node,client,str(k)).set(v)
+ online_client_ipversion.labels(host, node, client, str(k)).set(v)
return registry