YAML-Datei - Metrische Objekte

Die von diesem Client verwendete YAML-Datei ist in mehrere Abschnitte unterteilt, die jeweils einen bestimmten Zweck erfüllen:
Tabelle 1. YAML-Dateistruktur
globalVariables Definiert globale Variablen, die in der gesamten YAML-Datei verwendet werden können.
defaultLabels Legt Standardbeschriftungen fest, die auf alle Metriken angewendet werden.
metricObjects Definiert die Metriken, die an Prometheus übermittelt werden sollen, einschließlich ihrer Typen und spezifischen Bezeichnungen.
metricData Gibt die zu erfassenden Datenpunkte zusammen mit den anzuwendenden Verarbeitungsfunktionen an.

`metricObjects` konfigurieren

Um `metricObjects` im Prometheus-Client zu konfigurieren, definieren Sie diese in einer YAML-Datei. Jedes Metrik-Objekt hat mehrere Schlüsseleigenschaften:

  • name: Eindeutiger Bezeichner für die Metrik.
  • help: Beschreibender Text zur Erläuterung der Metrik.

Optionale Eigenschaften

  • labelNames: Ein Array von Bezeichnungen für die Metrik. Alle Bezeichnungen, welche die Metrik unterstützt, müssen hier angegeben werden.
  • resetAfterScrape [Default: false]: Wenn diese Eigenschaft auf "true" gesetzt ist, stellt sie sicher, dass die Daten und Labels der Metrik nach jedem Scrape durch Prometheus gelöscht werden. Dieses Zurücksetzen bezieht sich speziell auf die im Metrik-Objekt gespeicherten Daten und stellt sicher, dass diese nicht über einen einzelnen Scrape-Zyklus hinaus bestehen bleiben.

Metriktypen

Tabelle 2. Metriktypen
Counter
  • `name`, `help`, `labelNames`
  • Inkremente über die Zeit, typischerweise zum Zählen von Vorkommnissen
Gauge
  • `name`, `help`, `labelNames`
  • Stellt einen Wert dar, der steigen oder fallen kann.
Histogram
  • `name`, `help`, `labelNames`.
  • `buckets`: Definiert Bereiche für die Aggregation von Werten
  • Nützlich für die Verfolgung von Verteilungen, wie z.B. Anfragedauer.

Summary
  • `name`, `help`, `labelNames`.
  • `percentiles`: Bestimmte zu berechnende Quantile.
  • Ähnlich wie Histogramm, aber zur Berechnung von Quantilen.

MovingAvgGauge
  • `name`, `help`, `labelNames`
  • `avgWindowSize`: Anzahl der Datenpunkte für die Mittelwertbildung.
  • `rateOfChange`: Boolescher Wert zur Berechnung der Änderungsrate. Standardwert false.
  • Internal parameters (*nicht für den Benutzer zu verwenden*): -
    • `oaInternalCalculation`: oaInternalCalculation`: Wenn dieser Parameter auf `true` gesetzt ist, ermöglicht er in Verbindung mit `rateOfChange`, das ebenfalls auf `true` gesetzt ist, die Berechnung der Änderungsrate auf der Grundlage der Summe der Werte innerhalb eines bestimmten Fensters von Datenpunkten. Diese Funktion wurde speziell für die Verwendung im Skript EventsStats entwickelt, das WinCC OA-Statistiken überwacht, z. B. die Anzahl der Meldungen in einem bestimmten Zeitraum. Diese spezielle Berechnung ist auf die besonderen Anforderungen der Datenverarbeitung bei der Überwachung von WinCC OA zugeschnitten
    . $$

    rateOfChange = \frac{\sum_{i=0}^{avgWindowSize}sampleData[i]}{currentTime-sampleTime[0]}

    $$ ​

    Weitere Informationen über Standardmetriken finden Sie in der Online-Dokumentation https://github.com/siimon/prom-client).

Beispiele

 **Counter**:

   ```yaml
   TotalRequests:
     help: "Total number of requests received"
     type: "Counter"
   ```
 **Gauge**:

   ```yaml
   ServerTemperature:
     help: "Current temperature of the server"
     type: "Gauge"
     labelNames: "serverId"
   ```
**Histogram**:

   ```yaml
   RequestDuration:
     help: "Duration of HTTP requests in milliseconds"
     type: "Histogram"
     buckets: [0.1, 0.5, 1, 5, 10]
   ```
**Summary**:

   ```yaml
   ResponseSizes:
     help: "Sizes of HTTP responses"
     type: "Summary"
     percentiles: [0.5, 0.9, 0.99]
   ```
 **MovingAvgGauge**:

   ```yaml
   AverageLoad:
     help: "Average system load over a period"
     type: "MovingAvgGauge"
     avgWindowSize: 5
     rateOfChange: false
   ```