Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Contrail Networking Analytics

Überblick: Analysen

Analytics ist ein optionaler Funktionsumfang in Juniper Cloud-Native Contrail® Networking™ Version 22.1. Es wird separat von den Core-CNI-Komponenten von Contrail Networking gepackt und verfügt über einen eigenen Installationsprozess. Das Paket besteht aus einer Kombination aus Open-Source-Software und von Juniper entwickelter Software.

Die Analysefunktionen werden in die folgenden übergeordneten Funktionsbereiche eingegliedert:

  • Metriken: Statistische Zeitreihendaten, die von den Contrail Networking-Komponenten und dem Kubernetes-Basissystem erfasst werden.
  • Datenstrom- und Sitzungsdatensätze: Netzwerkdatenverkehr, die vom Contrail Networking vRouter erfasst werden.
  • Sandesh User Visible Entities (UVE): Datensätze, die den systemweiten Zustand von extern sichtbaren Objekten darstellen, die von den Contrail Networking vRouter- und Steuerungsknotenkomponenten erfasst werden.
  • Protokolle: Protokollmeldungen, die von Kubernetes-Pods erfasst werden.
  • Introspekt : Ein Diagnose-Dienstprogramm, das die Möglichkeit bietet, den internen Zustand der Contrail Networking-Komponenten zu durchsuchen.

Metriken

Datenmodell

Metrikinformationen basieren auf einem numerischen Zeitreihendatenmodell. Jeder Datenpunkt in einer Serie ist ein Beispiel für einen Systemstatus, der in regelmäßigen Abständen erfasst wird. Ein stichprobenierter Wert wird zusammen mit einem Zeitstempel aufgezeichnet, an dem die Erfassung aufgetreten ist. Ein Beispieldatensatz kann auch einen optionalen Satz von Schlüssel-Wert-Paaren namens Label enthalten. Label bieten eine Dimensionierungsfunktion für Metriken, bei der eine bestimmte Kombination von Labeln für denselben Metriknamen eine bestimmte dimensionale Instanziierung dieser Metrik identifiziert. Beispielsweise kann eine benannte api_http_requests_total Metrik Label verwenden, um Einen Überblick über die Anforderungszählungen auf URL- und Methodentypebene zu erhalten. Im folgenden Beispiel enthält der Metrikdatensatz für einen Beispielwert von 10 eine Reihe von Labeln, die den Typ der Anforderung angeben.

api_http_requests_total{method="POST", handler="/messages"} 10

Metrik-Datentypen

Obwohl alle Metrik-Stichprobenwerte nur Zahlen sind, gibt es in diesem numerischen Datenmodell ein Typkonzept. Eine Metrik wird als einer der folgenden Typen betrachtet:

  • Zähler: Eine kumulative Metrik, die einen einzelnen monoton steigenden Zähler darstellt, dessen Wert nur beim Neustart auf Null erhöht oder zurückgesetzt werden kann.
  • Gauge: Eine Metrik, die einen einzelnen numerischen Wert darstellt, der beliebig nach oben und unten gehen kann.
  • Histogramm: Ein Histogramm untersucht Beobachtungen (normalerweise Dinge wie Anforderungsdauer oder Antwortgrößen) und zählt sie in konfigurierbaren Buckets. Das Histogramm liefert auch eine Summe aller beobachteten Werte.
  • Zusammenfassung: Ähnlich wie ein Histogramm wird in einer Zusammenfassung die Beobachtungen (in der Regel Dinge wie Anforderungsdauer und Antwortgrößen) gemessen. Während es auch eine Gesamtanzahl von Beobachtungen und eine Summe aller beobachteten Werte liefert, berechnet die Zusammenfassung konfigurierbare Quantile über ein gleitendes Zeitfenster.

Die Metrik-Funktionalität in Contrail Networking wird von Prometheus implementiert. Weitere Details zum Metrikdatenmodell finden Sie in der Dokumentation bei Prometheus.

Unterstützte Metriken

Die von der Analyselösung unterstützten Metriken werden wie folgt kategorisiert:

Warnungen

Warnmeldungen werden auf der Grundlage einer Analyse der erfassten Metrikdaten generiert. Jeder unterstützte Warnmeldungstyp basiert auf einer Regeldefinition, die die folgenden Informationen enthält:

  • Warnungsname: Ein eindeutiger Zeichenfolgenbezeichner für den Warnmeldungstyp.
  • Bedingungsausdruck: Ein Prometheus-Abfragespracheausdruck, der anhand der erfassten Metrikwerte ausgewertet wird, um festzustellen, ob die Warnungsbedingung vorhanden ist.
  • Bedingungsdauer: Die Dauer der Problembedingung muss vorhanden sein, damit die Warnung generiert werden kann.
  • Schweregrad – Die Alarmstufe (kritisch, haupt, Warnung, Informationen).
  • Zusammenfassung: Eine kurze Beschreibung des problematischen Zustands.
  • Beschreibung: Eine detaillierte Beschreibung der problematischen Bedingung.

Die Analyselösung von Contrail Networking installiert eine Reihe von vordefinierten Warnungsregeln. Sie können auch Ihre eigenen benutzerdefinierten Warnungsregeln definieren. Dies wird durch die Erstellung von PrometheusRule Kubernetes-Ressourcen im Namespace unterstützt, in dem das Analyse-Helmdiagramm bereitgestellt wird. Ein Beispiel für eine benutzerdefinierte Warnungsregel ist unten dargestellt.

Generierte Warnmeldungen werden als Datensätze in Prometheus gespeichert und können in der Grafana-Benutzeroberfläche angezeigt werden. Die Integration mit externen Systemen wie PagerDuty, OpsGenie, E-Mail usw. für Warnmeldungen wird ebenfalls mit der AlertManager-Komponente unterstützt.

Architektur

Wie in Abbildung 1 dargestellt, ist Prometheus die Kernkomponente der Metrikarchitektur. Prometheus implementiert die folgenden Funktionen:

  • Sammlung: Ein regelmäßiger Abrufmechanismus, der API-Aufrufe für andere Komponenten (Exporteure) aufruft, um Werte für eine Reihe von Metriken zu ziehen.
  • Speicher: Eine Zeitreihendatenbank, die die Persistenz für die von den Exporteuren erfassten Metriken bietet.
  • Abfrage: Eine API, die eine Ausdruckssprache namens PromQL (Prometheus Query Language) unterstützt, mit der die historischen Metrikinformationen aus der Datenbank abgerufen werden können.
  • Warnungen: Ein Framework, das die Möglichkeit bietet, Regeln zu definieren, die Warnmeldungen erzeugen, wenn bestimmte Bedingungen in den erfassten Metrikdaten beobachtet werden.
Abbildung 1: Metrikarchitektur Metrics Architecture

Die anderen Komponenten der Metrikarchitektur sind:

  • Grafana– Ein Service, der eine Web-Benutzeroberfläche bereitstellt, mit der der Benutzer die Metrikdaten in Diagrammen visualisieren kann.
  • AlertManager: Ein Integrationsservice, der externe Systeme über von Prometheus generierte Warnmeldungen benachrichtigt.

Konfiguration

Die Metrik-Funktionalität erfordert keine Konfiguration durch den Endbenutzer. Die Installation von Analysen übernimmt die Konfiguration von Prometheus, um von den Exporteuren zu erfassen, die alle im obigen Abschnitt "Unterstützte Metriken" beschriebenen Metriken bereitstellen. Eine Gruppe von Standardwarnungsregeln wird im Rahmen der Installation auch automatisch eingerichtet. Diese Basisfunktionen können jedoch durch den Endbenutzer durch zusätzliche Konfiguration nach der Installation erweitert werden. So können beispielsweise kundenspezifische Warnungsregeln definiert und der AlertManager so konfiguriert werden, dass er in jedes der unterstützten externen Systeme in Ihrer Umgebung integriert werden kann.

Die Konfiguration von Prometheus und AlertManager umfasst eine zusätzliche Architekturkomponente namens Prometheus Operator. Wie in Abbildung 2 dargestellt, wird die Konfiguration als benutzerdefinierte Kubernetes-Ressourcen angegeben. Der Betreiber ist dafür verantwortlich, den Inhalt dieser Ressourcen in die von den Prometheus-Komponenten verstandene native Konfiguration zu übersetzen, die Komponenten entsprechend zu aktualisieren und dann die Komponenten neu zu starten, wenn eine bestimmte Konfigurationsänderung einen Neustart erfordert.

Abbildung 2: Prometheus Operator Prometheus Operator

Die Vollständige Dokumentation der vom Betreiber unterstützten Ressourcen ist über prometheus Operator API verfügbar. Es wird jedoch empfohlen, dass Kunden ihre Konfigurationen auf die Untermenge der Ressourcentypen beschränken, die sich auf die Definition von Warnungsregelen und die Integration externer Systeme beziehen.

Grafana

Die Hauptoberfläche für die Anzeige von Metrikdaten und Warnungen ist Grafana. Der Grafana-Service wird mit Prometheus als Datenquelle im Rahmen der Analyseinstallation eingerichtet und automatisch konfiguriert. Außerdem werden eine Reihe von Standard-Dashboards erstellt.

Greifen Sie auf die Grafana-Weboberfläche zu: https://<k8sClusterIP>/grafana/login. Die Standardanmeldeinformationen sind Benutzer admin und Kennwort prom-operator.