Metriken & Telemetrie

Das Modul metrics erfasst Anwendungs-Counter, Gauges und Histogrammbeobachtungen.

Diese Seite ist eine API-Referenz. Die Ausschnitte zeigen jeweils eine Beobachtung und reichen Collector-Fehler weiter.

Nach der Übergabe an den aktiven Collector liefert jede Funktion true, nil. Ist im Ausführungskontext kein Collector vorhanden, liefert sie nil und einen nicht wiederholbaren Fehler errors.INTERNAL.

Labels sind optional. Nur Einträge mit Zeichenkettenschlüssel und Zeichenkettenwert werden erfasst; andere Einträge werden stillschweigend ignoriert. Ein nicht tabellarisches Labels-Argument wird wie ein fehlendes Argument behandelt.

Metriknamen werden ohne lokale Validierung weitergereicht.

Laden

local metrics = require("metrics")

Counter

metrics.counter_inc

Erhöht einen Counter um eins.

local recorded, err = metrics.counter_inc("requests_total", {method = "POST"})
if err then return nil, err end
return recorded
Parameter Typ Beschreibung
name string Metrik-Name
labels table? Label-Schlüssel-Wert-Paare

Gibt zurück: boolean, error

metrics.counter_add

Addiert einen Wert zu einem Counter.

local recorded, err = metrics.counter_add("bytes_total", 1024, {direction = "out"})
if err then return nil, err end
return recorded
Parameter Typ Beschreibung
name string Metrik-Name
value number Zu addierender Wert
labels table? Label-Schlüssel-Wert-Paare

Gibt zurück: boolean, error

Die Runtime reicht den Wert unverändert weiter und verlangt keinen positiven Wert.

Gauges

metrics.gauge_set

local recorded, err = metrics.gauge_set("queue_depth", 42, {queue = "emails"})
if err then return nil, err end
return recorded
Parameter Typ Beschreibung
name string Metrik-Name
value number Aktueller Wert
labels table? Label-Schlüssel-Wert-Paare

Gibt zurück: boolean, error

metrics.gauge_inc

local recorded, err = metrics.gauge_inc("connections", {pool = "db"})
if err then return nil, err end
return recorded
Parameter Typ Beschreibung
name string Metrik-Name
labels table? Label-Schlüssel-Wert-Paare

Gibt zurück: boolean, error

metrics.gauge_dec

local recorded, err = metrics.gauge_dec("connections", {pool = "db"})
if err then return nil, err end
return recorded
Parameter Typ Beschreibung
name string Metrik-Name
labels table? Label-Schlüssel-Wert-Paare

Gibt zurück: boolean, error

Histogramme

metrics.histogram

local recorded, err = metrics.histogram("duration_seconds", 0.123, {method = "GET"})
if err then return nil, err end
return recorded
Parameter Typ Beschreibung
name string Metrik-Name
value number Beobachteter Wert
labels table? Label-Schlüssel-Wert-Paare

Gibt zurück: boolean, error

Fehler

Bedingung Art Wiederholbar
Collector nicht verfügbar errors.INTERNAL nein

Ungültige Typen für Name oder Wert lösen Lua-Argumentfehler aus, statt strukturierte Fehler zurückzugeben.

Siehe Fehlerbehandlung für die Arbeit mit Fehlern.