====================== Prometheus und Grafana ====================== Prometheus ========== Metrikabruf testen ------------------- Zum Testen des Abrufes von Metriken kann ``curl`` benutzt werden. Der ``AUTHTOKEN`` muss in der App konfiguriert werden:: curl \ -k \ -X GET \ -H "Authorization: Bearer " \ https://///prometheus/metrics Scrape Job ---------- Damit Prometheus die Metriken der App abruft, muss ein Scrape Job eingerichtet werden. Das kann auf mehrere Arten vorgenommen werden. Hier ist ein Beispiel für einen Job in der Konfigurationsdatei ``prometheus.yml``: .. code-block:: yaml - job_name: 'innovaphone_' metrics_path: '///prometheus/metrics' authorization: type: Bearer credentials: tls_config: insecure_skip_verify: false static_configs: - targets: - "" Metriken -------- Übersicht über die aufgezeichneten Metriken innovaphone_waitingqueue_status_sum """"""""""""""""""""""""""""""""""" Gesamtanzahl an Status-Nachrichten der RCC-Api über Calls:: # HELP innovaphone_waitingqueue_status_sum Sum of call state messages # TYPE innovaphone_waitingqueue_status_sum counter innovaphone_waitingqueue_status_sum{serviceid="trizwo-wqstatus",servicedns="apps.company.com",instance="wqstatuskundensupport",domain="company.com",pbx="pbx-main",cn="WQ0",msg="r-setup"} 22 innovaphone_waitingqueue_status_sum{serviceid="trizwo-wqstatus",servicedns="apps.company.com",instance="wqstatuskundensupport",domain="company.com",pbx="pbx-main",cn="WQ0",msg="x-alert"} 22 innovaphone_waitingqueue_status_sum{serviceid="trizwo-wqstatus",servicedns="apps.company.com",instance="wqstatuskundensupport",domain="company.com",pbx="pbx-main",cn="WQ0",msg="x-conn"} 22 innovaphone_waitingqueue_status_sum{serviceid="trizwo-wqstatus",servicedns="apps.company.com",instance="wqstatuskundensupport",domain="company.com",pbx="pbx-main",cn="WQ0",msg="r-rel"} 22 innovaphone_waitingqueue_status_sum{serviceid="trizwo-wqstatus",servicedns="apps.company.com",instance="wqstatuskundensupport",domain="company.com",pbx="pbx-main",cn="WQ0",msg="x-rel"} 22 innovaphone_waitingqueue_status_sum{serviceid="trizwo-wqstatus",servicedns="apps.company.com",instance="wqstatuskundensupport",domain="company.com",pbx="pbx-main",cn="WQ0",msg="del"} 22 innovaphone_waitingqueue_duration_sum """"""""""""""""""""""""""""""""""""" Die Summe in Sekunden seit Anrufbeginn, in der die einzelnen Status-Nachrichten aufgetreten sind:: # HELP innovaphone_waitingqueue_duration_sum Sum of duration since call start by states in seconds # TYPE innovaphone_waitingqueue_duration_sum counter innovaphone_waitingqueue_duration_sum{serviceid="trizwo-wqstatus",servicedns="apps.company.com",instance="wqstatuskundensupport",domain="company.com",pbx="pbx-main",cn="WQ0",msg="r-setup"} 0 innovaphone_waitingqueue_duration_sum{serviceid="trizwo-wqstatus",servicedns="apps.company.com",instance="wqstatuskundensupport",domain="company.com",pbx="pbx-main",cn="WQ0",msg="x-alert"} 0 innovaphone_waitingqueue_duration_sum{serviceid="trizwo-wqstatus",servicedns="apps.company.com",instance="wqstatuskundensupport",domain="company.com",pbx="pbx-main",cn="WQ0",msg="x-conn"} 330 innovaphone_waitingqueue_duration_sum{serviceid="trizwo-wqstatus",servicedns="apps.company.com",instance="wqstatuskundensupport",domain="company.com",pbx="pbx-main",cn="WQ0",msg="r-rel"} 2689 innovaphone_waitingqueue_duration_sum{serviceid="trizwo-wqstatus",servicedns="apps.company.com",instance="wqstatuskundensupport",domain="company.com",pbx="pbx-main",cn="WQ0",msg="x-rel"} 2689 innovaphone_waitingqueue_duration_sum{serviceid="trizwo-wqstatus",servicedns="apps.company.com",instance="wqstatuskundensupport",domain="company.com",pbx="pbx-main",cn="WQ0",msg="del"} 2689 innovaphone_waitingqueue_calls_active """"""""""""""""""""""""""""""""""""" Jeweils aktuelle Gesamtanzahl der aktuell anstehenden Rufen:: # HELP innovaphone_waitingqueue_calls_active Sum of active calls # TYPE innovaphone_waitingqueue_calls_active gauge innovaphone_waitingqueue_calls_active{serviceid="trizwo-wqstatus",servicedns="apps.company.com",instance="wqstatuskundensupport",domain="company.com",pbx="pbx-main",cn="WQ0"} 0 innovaphone_waitingqueue_calls_duration_sum """"""""""""""""""""""""""""""""""""""""""" Die Summe der Anrufdauer der aktuell anstehenden Rufe:: # HELP innovaphone_waitingqueue_calls_duration_sum Gauge sum of age of active calls in seconds # TYPE innovaphone_waitingqueue_calls_duration_sum gauge innovaphone_waitingqueue_calls_duration_sum{serviceid="trizwo-wqstatus",servicedns="apps.company.com",instance="wqstatuskundensupport",domain="company.com",pbx="pbx-main",cn="WQ0"} 0 innovaphone_app_uptime """""""""""""""""""""" Die Zeit in Sekunden, seitdem die App-Instanz gestartet ist, also die Up-Time der App Instanz:: # HELP innovaphone_app_uptime Total number of seconds since app start in seconds # TYPE innovaphone_app_uptime counter innovaphone_app_uptime{serviceid="trizwo-wqstatus",servicedns="apps.company.com",instance="wqstatuskundensupport",domain="company.com"} 2789 innovaphone_app_info """""""""""""""""""" Informationen über die Version der App. Version ist die Buildnummer:: # HELP innovaphone_app_info App Infos # TYPE innovaphone_app_info gauge innovaphone_app_info{serviceid="trizwo-wqstatus",servicedns="apps.company.com",instance="wqstatuskundensupport",domain="company.com",version="7"} 7 innovaphone_app_httpserver_requests_total """"""""""""""""""""""""""""""""""""""""" Die App stellt einen Webserver für den Abruf der Metriken bereit. Diese Metrik zählt alle eingehenden Anfragen:: # HELP innovaphone_app_httpserver_requests_total Total number of handled, incoming http requests since app start # TYPE innovaphone_app_httpserver_requests_total counter innovaphone_app_httpserver_requests_total{serviceid="trizwo-wqstatus",servicedns="apps.company.com",instance="wqstatuskundensupport",domain="company.com"} 1498 innovaphone_app_httpserver_requestmethod_total """""""""""""""""""""""""""""""""""""""""""""" Die Anzahl an eingehenden HTTP-Anfragen auf dem Webserver der App aufgeschlüsselt nach der HTTP-Method:: # HELP innovaphone_app_httpserver_requestmethod_total Total number of handled, incoming http requests by request method since app start # TYPE innovaphone_app_httpserver_requestmethod_total counter innovaphone_app_httpserver_requestmethod_total{serviceid="trizwo-wqstatus",servicedns="apps.company.com",instance="wqstatuskundensupport",domain="company.com",method="GET"} 1498 innovaphone_app_httpserver_requestmethod_total """""""""""""""""""""""""""""""""""""""""""""" Die Anzahl an eingehenden HTTP-Anfragen auf dem Webserver der App aufgeschlüsselt nach dem Pfad und dem HTTP-Response-Code:: # HELP innovaphone_app_httpserver_responsecode_total Total number of responses by requestpath and statuscode # TYPE innovaphone_app_httpserver_responsecode_total counter innovaphone_app_httpserver_responsecode_total{serviceid="trizwo-wqstatus",servicedns="apps.company.com",instance="wqstatuskundensupport",domain="company.com",path="/metrics",statuscode="200"} 1494 innovaphone_app_connections_users """"""""""""""""""""""""""""""""" Anzahl an Websocket-Verbindungen von User:innen der App in dem App-Service:: # HELP innovaphone_app_connections_users Total number of connected user sockets # TYPE innovaphone_app_connections_users gauge innovaphone_app_connections_users{serviceid="trizwo-wqstatus",servicedns="apps.company.com",instance="wqstatuskundensupport",domain="company.com"} 1 innovaphone_app_connections_admins """""""""""""""""""""""""""""""""" Anzahl an Websocket-Verbindungen von Admins der App in dem App-Service:: # HELP innovaphone_app_connections_admins Total number of connected admin sockets # TYPE innovaphone_app_connections_admins gauge innovaphone_app_connections_admins{serviceid="trizwo-wqstatus",servicedns="apps.company.com",instance="wqstatuskundensupport",domain="company.com"} 1 innovaphone_app_connected_apis """""""""""""""""""""""""""""" Anzahl an Websocket-Verbindungen von PBX-APIs in dem App-Service aufgeschlüsselt nach Domain, PBX und API:: # HELP innovaphone_app_connected_apis Number of connected api sockets # TYPE innovaphone_app_connected_apis gauge innovaphone_app_connected_apis{serviceid="trizwo-wqstatus",servicedns="apps.company.com",instance="wqstatuskundensupport",domain="company.com",pbx="pbx-main",pbxdns="pbx.company.com",api="RCC"} 1 innovaphone_group_member_states """"""""""""""""""""""""""""""" Anzahl an Mitgliedern in einer Gruppe bzw. die Anzahl an Mitgliedern mit dem jeweiligem Gruppenstatus:: # HELP innovaphone_group_member_states State of the members of a group # TYPE innovaphone_group_member_states gauge innovaphone_group_member_states{serviceid="trizwo-wqstatus",servicedns="apps.company.com",instance="wqstatuskundensupport",domain="company.com",pbx="pbx-main",group="Support",state="all"} 11 innovaphone_group_member_states{serviceid="trizwo-wqstatus",servicedns="apps.company.com",instance="wqstatuskundensupport",domain="company.com",pbx="pbx-main",group="Support",state="in"} 6 innovaphone_group_member_states{serviceid="trizwo-wqstatus",servicedns="apps.company.com",instance="wqstatuskundensupport",domain="company.com",pbx="pbx-main",group="Support",state="out"} 4 innovaphone_group_member_states{serviceid="trizwo-wqstatus",servicedns="apps.company.com",instance="wqstatuskundensupport",domain="company.com",pbx="pbx-main",group="Support",state="static"} 1 Grafana ======= Dashboard --------- Ein :download:`Beispiel Dashboard ` kann importiert werden. .. thumbnail:: grafana_dashboard.png