MetriBeacon
Menü
Deutsch

Python-Integration

Senden Sie einen Messwert mit der Python-Standardbibliothek.

Auf dieser Seite

Das benötigen Sie

Python 3, eine numerische Reihe und einen Geräteschlüssel in einer privaten Datei.

So geht es

  1. Legen Sie eine Gauge-Reihe an und speichern Sie ihren Geräteschlüssel mit privaten Dateirechten unter ~/.config/metribeacon/device.key.
  2. Ersetzen Sie die Reihenkennung im Beispiel durch Ihre eigene. Bereiten Sie Wert, Zeitpunkt und Kennungen einmal pro Messung vor.
  3. Führen Sie das Beispiel aus und prüfen Sie accepted oder duplicates in der Antwort. Kontrollieren Sie den Messwert im Monitor.

Gut zu wissen

Das Beispiel begrenzt die Anfragezeit. Ergänzen Sie bei vorübergehenden Fehlern begrenzte Wiederholungen mit Retry-After und derselben vorbereiteten Anfrage. Eine neue Kennung bedeutet eine neue Messung.

python
import datetime
import json
import pathlib
import urllib.request
import uuid

key = pathlib.Path.home().joinpath(".config/metribeacon/device.key").read_text().strip()
batch = {"batch_id": str(uuid.uuid4()), "points": [{
    "id": str(uuid.uuid4()), "series_id": "33333333-3333-4333-8333-333333333333",
    "measured_at": datetime.datetime.now(datetime.timezone.utc).isoformat(),
    "value": 21.5}]}
body = json.dumps(batch).encode()
request = urllib.request.Request("https://metribeacon.com/api/v1/ingest/points",
    data=body, method="POST", headers={"Authorization": "Bearer " + key,
    "Content-Type": "application/json"})
with urllib.request.urlopen(request, timeout=15) as response:
    print(json.load(response))

Wenn etwas nicht klappt

Prüfen Sie HTTP-Fehler, bevor Sie die Antwort als Erfolg lesen. Beheben Sie 401, 403, 413 oder 422 vor einer Wiederholung; geben Sie den Schlüssel nicht zur Diagnose aus.