Überwachung von Atlassian-Produkten mit Prometheus

Einführung


Hallo allerseits! Heute sprechen wir über die Echtzeitüberwachung von Atlassian- Produkten.

Definieren wir zunächst, was Überwachung ist und warum sie für Atlassian- Produkte benötigt wird.

Die Programmüberwachung wird verwendet, um den Fortschritt und die Ergebnisse eines Programms zu verfolgen. Mit anderen Worten, es ist ein Prozess, der in Echtzeit Informationen über den Status eines Softwareprodukts anzeigen kann.

Wann kann es für Atlassian- Produkte nützlich sein?

Betrachten Sie die folgenden Beispiele:

  • Sie möchten wissen, wie sich das Aktualisieren eines Produkts oder Plugins auf die Systemleistung auswirkt.
  • Sie möchten den Zustand von Eisen und Gedächtnis unter verschiedenen Bedingungen und zu bestimmten Zeitpunkten kennen. Zum Beispiel, wie sich das Erhöhen der Anzahl von Benutzern oder das Ändern der Tageszeit auf das System auswirkt;
  • Sie möchten sehen, wie aktiv das gesamte System genutzt wird. Zum Beispiel die Gesamtzahl der Aufgaben in Jira oder in 1 Stunde;
  • Sie möchten eine Erinnerung am Ablaufdatum der Lizenz festlegen.
  • Sie möchten wissen, wie viel Speicherplatz zum Speichern von Dokumenten verwendet wird.

Ich möchte auch nicht nur Informationen in vorbereiteter Form erhalten, sondern auch Benachrichtigungen senden können, wenn etwas in einem fehlerhaften Szenario passiert. Hier helfen uns Prometheus und seine Exporteure für Atlassian- Produkte.

Lösungsarchitektur


Prometheus ist ein Tool zur gleichzeitigen Überwachung von Zehntausenden von Diensten. Der Prometheus- Server liest die Ziele in einem Intervall, das Sie zum Sammeln von Metriken definieren, und speichert sie in einer Zeitreihendatenbank. Zum Sammeln von Metriken wird das Pull-Modell verwendet. Darüber hinaus gibt es eine Alert Manager- Komponente, die Benachrichtigungen an verschiedene Kanäle senden kann, wenn eine bestimmte auf Metriken basierende Regel funktioniert hat. Detaillierte Informationen in russischer Sprache finden Sie hier und hier .

Prometheus Exporter ist ein Agent, der Metriken direkt von der Entität (dem Server als Ganzes oder einer bestimmten Anwendung) sammelt, die überwacht werden muss. Prometheus verfügt über umfangreiche Erweiterungsoptionen, sodass es Exporteure für die beliebtesten Anwendungen gibt.

[jira | Zusammenfluss | bitbucket | bamboo] _exporter funktioniert wie folgt:

  • Ruft Daten aus der Produktdatenbank ab
  • Ruft Daten mit der Standard-Java-API ab
  • Fügt HTTP-Anforderungen Filter hinzu
  • sammelt jmx-Metriken.

Ein Beispiel für eine schnelle Installation von Prometheus / Grafana in Docker wird von Stefan Prodan implementiert und ist hier verfügbar.

Installation und Konfiguration des Exporters


Nachdem Sie das Plugin installiert haben, erhalten Sie sofort den Link für die Metrik: baseUrl / plugins / servlet / prometheus /metrics . Es ist auch möglich, einen Sicherheitsschlüssel zu konfigurieren.

Als nächstes müssen Sie in prometheus.yml die Adresse hinzufügen, unter der die Metriken abgerufen werden sollen.
Zum Beispiel für Jira :

- job_name: 'jira' scheme: https # change to http if don't you have https metrics_path: '/jira/plugins/servlet/prometheus/metrics' static_configs: - targets: ['myhost:2990'] # Jira host and port you serve 

Die Integration ist abgeschlossen, können Sie verwenden.

Metriken und Abfragebeispiele


Sie können die Liste aller Metriken in der Plugin-Dokumentation sehen: Jira , Confluence , Bitbucket , Bamboo .

Beispiele anfordern:

  • Betriebszeit:

     jvm_uptime_gauge{job="jira"} 
  • Ausführungszeit der Serveranforderung:

     (sum(rate(jira_request_duration_on_path_sum[1m])) by (path)) / (sum(rate(jira_request_duration_on_path_count[1m])) by (path)) 
  • Gesamtzahl der Aufgaben:

     jira_total_issues_gauge 
  • Anzahl der Ansichten von Dashboards:

     sum(increase(jira_dashboard_view_count[1h])) 

Weitere Informationen zum Erstellen von Abfragen finden Sie hier .

Grafana Dashboards


Sie können Grafana als Komponente eines Drittanbieters verwenden, um in der Prometheus- Zeitreihendatenbank gespeicherte Metriken zu visualisieren. Auf der offiziellen Website finden Sie mehrere vorgefertigte Implementierungen. Dashboards für Jira finden Sie beispielsweise unter diesem Link .


Eigenschaften


Ich plane, die Möglichkeit hinzuzufügen, benutzerdefinierte Metriken mit Groovy zu definieren, sowie die vollständige Unterstützung für Service Desk . So können Sie nicht nur für die Produkte selbst, sondern auch für andere Plugins benutzerdefinierte Metriken hinzufügen.
Alle Exporteure sind offen und entwickeln sich aktiv. Wenn Sie Verbesserungs- oder Erweiterungsideen haben, erstellen Sie bitte Aufgaben ( Jira , Confluence , Bitbucket , Bamboo ) und / oder führen Sie Pull-Anfragen durch.

Fazit


Wenn Ihre Atlassian- Installationen ziemlich groß sind und Sie einen kontinuierlichen Betrieb sicherstellen müssen, müssen Sie auf jeden Fall überwacht werden. Und wie - entscheiden Sie selbst. Prometheus als eine der Optionen, die zweifellos Ihr Leben vereinfachen werden.
Vielen Dank für Ihre Aufmerksamkeit!

Source: https://habr.com/ru/post/de412897/


All Articles