Logo GH

API für Betriebskennzahlen

1) Zweck und Aufgabenbereich

Die Metrics API ist ein einzelner Zugriffspunkt für die Betriebs- und Geschäftsmetriken der Plattform. Er gibt:
  • konsistente SLI/SLO (Login, Einzahlung, Wette, Ausgabe);
  • KRI (frühe Risikoindikatoren: PSP/KYC/Warteschlangen/Replikation);
  • Geschäftsmetriken (Erfolg der GEO/PSP/Bankberechtigungen, Anteil der erfolgreichen Wetten, p95/p99 der Dauer der Schlüsselpfade);
  • sichere, günstige und vorhersehbare Lesungen für Dashboards, Alerting, Statusseiten, Reporting.

2) Architektonische Prinzipien

Read-heavy, write-few: Die API liest nur Aggregationen aus dem TSDB/Cache.
SLO-first: Antworten sind zeitlich vorhersehbar; Fehler und Degradationen - transparent signalisiert.
Kosten: Downsampling, Quoten, Kanarienvögel im SDK.
Privacy-by-Design: keine PII in Metadaten/Labels; Token, Geo-Gate, SoD.
Multi-tenant: Isolation nach Marke/Region/Umgebung.

3) Datenmodell (oberflächlich)

Eine Reihe von Metriken = 'metric _ id' + 'labels {}' + 'timestamp' + 'value' (+ optional 'exemplar {trace _ id =...}').

3. 1 Kategorien

SLI/SLO: `auth_success_rate`, `bet_settle_p99_ms`, `withdraw_tat_p95_ms`, `api_5xx_rate`.
KRI: `queue_consumer_lag`, `db_replication_lag`, `psp_soft_decline_rate`.
Бизнес: `deposits_success_pct`, `bets_success_pct`, `kyc_pass_rate`.
Инфра: `cpu_util`, `cache_hit_ratio`, `cdn_waf_block_rate`.

3. 2 Labels (streng limitiert)

`region`, `tenant`, `environment`, `service`, `psp`, `bank_group`, `geo`, `device`, `version`, `component`.
Verboten: 'userId', 'sessionId', Rohkarten-/Dokumentennummern.

4) Versionierung und Kompatibilität

Basispfad: „/v1/metrics/... “; inkompatible Änderungen - nur im neuen 'vX'.
Hinzufügen von Labels/Serien - backward-compatible.
Änderung der Semantik - durch das Feld 'schema _ version' in der Antwort und grace-Periode.
Das Schema-Verzeichnis wird als '/v1/schemas' veröffentlicht.

5) Endpunkte (REST, ähnlich in gRPC/GraphQL)

1. `GET /v1/metrics/query`

Optionen:
  • `metric` (multi), `from`, `to`, `step` (резолюция), `agg` (`avg|sum|min|max|p50|p95|p99`),
  • `filter[label]=value` (multi), `group_by=label1,label2`,
  • `downsample=1m|5m|1h`, `exemplars=true|false`, `limit` (рядов), `page`.
  • Antwort: Array von Reihen'{metric, Etiketten {}, Punkte: [[ts, Wert]], Beispiele?}'.

2. `POST /v1/metrics/bulk-query`

Body: bis zu 50 Anfragen pro Batch. Spart Anfragen für komplexe Dashboards.

3. `GET /v1/metrics/instant`

Aktuelle Werte zum Zeitpunkt 'ts' (oder „jetzt“) mit den angegebenen Filtern.

4. `GET /v1/metrics/catalog`

Liste der verfügbaren Metriken, Beschreibungen, Labels, zulässige Aggregationen, SLO-Bindungen.

5. `GET /v1/metrics/health`

Status der API selbst: Latenz p95, Cache-Fehlertoleranz, Anteil der Cache-Treffer.

6. `GET /v1/metrics/slo`

Fertige SLO-Ansichten: Fehlerbudget-Ausgaben (schnell/langsam), Zielstatus.

6) Beispiele für Anfragen

6. 1 Erfolg der PSP-Autorisierungen in TR, 1-min grid, p95:


GET /v1/metrics/query? metric=auth_success_rate&from=2025-11-01T13:00:00Z&to=2025-11-01T16:00:00Z&step=1m&agg=p95&filter[geo]=TR&group_by=psp&downsample=1m

6. 2 p99 „bet→settle“ nach Regionen, mit Beispielen (Trace-Beispiele):


GET /v1/metrics/query? metric=bet_settle_p99_ms&from=...&to=...&step=5m&group_by=region&exemplars=true

6. 3 Sofortstatus von SLO-Einlagen nach EU:


GET /v1/metrics/slo? domain=payments&region=EU&tenant=brandA

6. 4 Batch von 3 Abfragen (POST/bulk-query) - für einen Graphen mit Ebenen.

7) Aggregationen und Perzentile

Die Perzentile p50/p95/p99 werden auf der Ebene TSDB/Aggregator berechnet; bei 'downsample' - mit korrekter Zusammensetzung (t-digest/HDR).
'group _ by' ist nur über whitelisted-Labels erlaubt, um die Kardinalität nicht zu sprengen.
'step' ist validiert: mindestens 10s für Echtzeit, 1m für öffentliche Dashboards.

8) Cache, Downsampling und Frische

Mehrstufiger Cache: In-Memory (bis zu 30-60 s), verteilt (bis zu 5 min), CDN für öffentliche SLO-Views.
Downsampling: Automatik bei großen Fenstern ('> 24h') → 5m/1h Punkt.
Freshness-заголовки: `X-Data-Freshness: 12s`, `X-Downsample: 1m`, `X-Partial: true|false`.

9) Multi-Tenant und Isolierung

Jede Anfrage muss' tenant'(in Token/Labels) enthalten.
ABAC/RBAC: Rolle/Politik beschränkt den Zugriff auf 'tenant, region, Umwelt, metric_id'.
Show/Charge-Back: Überschriften 'X-Query-Cost-Estimate' und Nutzungszähler.

10) Authentifizierung und Sicherheit

OAuth2 mTLS/Service-Token mit Scope-Beschränkung.
SoD: Zugang zu Metriken mit möglichen regulatorischen Risiken (Finanzen, RG) - Einzelrollen.
Rate limits: nach Kundenschlüssel und nach 'metric _ id'.
PII-Desinfektion: Der Server validiert das Fehlen verbotener Filter/Labels.

11) Geo-Residenz und Compliance

Die Daten sind aus den Regionalversammlungen (EU/LATAM/APAC) zur Aufenthaltspolitik zu lesen.
Regional übergreifende Abfragen - nur für Aggregate ohne PII und mit 'compliance _ scope'.

12) Instanzen/Beispiele und Korrelation

Bei 'exemplars = true' werden in der Antwort an den Perzentilpunkten Verweise auf ein Paar repräsentativer 'trace _ id' (ohne PII) für eine schnelle RCA zurückgegeben.
Korrelation: 'correlation _ id' ist in den Metadaten der Antwort verfügbar.

13) SLA API und Fehler

Antwort SLA: p95 ≤ 300 ms (Cache), ≤ 1. 5 s (kalter Weg), Verfügbarkeit ≥ 99. 9%.

Codes:
  • „400“ ist eine ungültige Abfrage (zu viel „group _ by“, schlechtes „step“),
  • „403“ - unzureichende Rechte/Tenant,
  • „409“ - der Konflikt zwischen den Regelungen,
  • „429“ - Quote/Rate-Limit,
  • „502/504“ - Degradation des Torax (in den Überschriften - Empfehlungen für Downsample/Step),
  • '206' ist eine partielle Antwort (ein Teil der Shards ist nicht verfügbar).
  • Diagnoseköpfe: „X-Query-Plan“, „X-Query-Cache“, „X-Query-Shards“, „X-RateLimit-Remaining“.

14) Quoten, Rate Limits und Backpressure

Standard: 10 rps pro Client, 50 Folgen pro Antwort, 3-Stunden-Fenster, 'step ≥ 10c'.
Burst-Token: für Dashboards auf dem großen Bildschirm, konsistente Fenster.
Backpressure: Der Server kann 'Retry-After' zurückgeben, indem er rät, 'step' zu erhöhen/' Downsample' einzuschalten.

15) SDK und Best Practices

SDK: Typescript/Go/Python. Standard: aggressiver Cache, exponentieller Backoff, 'If-None-Match'.

Empfehlungen an Kunden:
  • Gruppieren von Abfragen über '/bulk-query';
  • 'group _ by' sparsam verwenden;
  • für historische Übersichten: „downsample = 1h“;
  • Timeouts ≤ 2 s und 'cancellation' -Token hinzufügen.

15. 1 Mini-Beispiel (TS)

ts const res = await client. query({
metric: ["auth_success_rate"],
from: "-3h", to: "now", step: "1m",
agg: "p95",
filter: { geo: "TR", tenant: "brandA" },
group_by: ["psp"],
downsample: "1m",
exemplars: true,
timeoutMs: 1800
});

16) API-Beobachtbarkeit von Metriken

SLI самого API: p95_latency, error_rate, cache_hit_ratio, partial_response_rate.
KPIs der Nutzung: rps, durchschnittliches Antwortvolumen, Top-Metriken zu den Kosten.
Alerts: Burn-Rate für Fehler, Splash '429', Drop Cache-Hit <Ziel.
Protokolle: strukturiert, ohne PII; 'tenant', 'metric _ id', 'query _ cost _ class'.

17) FinOps-Richtlinien

Anforderungsklassen: A (Echtzeit-Dashboards), B (operativ), C (Analytics). Unterschiedliche Quoten/TTL.
Kosten: $/GB Lesen, $/Anfrage, $/graph. Monatlicher Bericht über „schwere“ Metriken und Labels.
Optimierungen: Server-Merge, Voraggregate für beliebte SLO-Views, Auto-Tipps für den Kunden (suggested 'step/downsample').

18) Integration

Status-Seite: liest fertige SLO-Views.
Alerting: Die Regeln basieren auf '/slo 'und' instant'.
Incident-Bot: Schnelle Schnipsel von Charts/Slices durch kurze Presets.
Workflow/Release-Gates: Block der Releases bei roten SLOs.

19) Umsetzungsfahrplan (6-10 Wochen)

Ned. 1-2: Metrikkatalog, Whitelists der Labels, Schemata '/catalog', Prototyp '/query 'mit Cache und Downsample.
Ned. 3-4: „/bulk-query “, „/slo“, Beispiele, RBAC/ABAC, Quoten/Rate-Limits.
Ned. 5-6: Geo-Sharding, CDN für Public View, FinOps-Header, SLI API Dashboard.
Ned. 7-8: SDK (TS/Go/Py), Recommendations/Request Linter, Kanarientests.
Ned. 9-10: Chaos-Übungen (Shard/Cache-Fehler), Kostenoptimierung, Deprecate-Politik.

20) Artefakte

Metric Katalog: id, Einheiten, Beschreibungen, verfügbare' agg', gültige Labels.
Access Policy: Rollen, Bereiche, Grenzen, SoD.
Query Style Guide: Beispiele für richtige/falsche Abfragen.
SLO Map: SLI-Konformität ↔ öffentliche Ziele.
Kostenreport: Top teure Abfragen/Tags, Optimierungsplan.

21) KPI/KRI API Metriken

p95/99 latency, error rate, partial responses.
Cache-Trefferverhältnis und CPU/IO-Einsparungen.
Durchschnittliche Antwortgröße und $/Anfrage.
Der Anteil der Dashboards, die auf '/bulk-query 'umgestellt haben.
Vorfälle aufgrund von Anfragen hoher Kardinalität.

22) Antipatterns

Ein freies' group _ by 'durch Dutzende von Markierungen → eine Explosion der Kardinalität.
Perzentile, „gefaltet“ auf dem Client → Verzerrungen.
Anfragen für 30-90 Tage ohne Downsample → teuer und langsam.
Mischen von Tenanten/Regionen in einer einzigen Antwort ohne Autorisierung.
Öffentliche Panels ohne Cache/CDN.
Änderung der Semantik von Metriken ohne' vX 'und Grace-Periode.

Summe

Die Operations Metrics API ist eine stabile, sichere und kostengünstige Leseebene über der Telemetrie: standardisierte Schemata und Perzentile, Cache und Downsampling, strikte Labels und Zugriffe, SLO-Views und Exemplarien für RCA, transparente SLAs und Kosten. Mit einer solchen Schicht können Sie zuverlässige Dashboards, Alerting, Status-Kommunikation und Release-Gates erstellen, ohne die Privatsphäre, das Budget und die Leistung zu gefährden.

Contact

Kontakt aufnehmen

Kontaktieren Sie uns bei Fragen oder Support.Wir helfen Ihnen jederzeit gerne!

Integration starten

Email ist erforderlich. Telegram oder WhatsApp – optional.

Ihr Name optional
Email optional
Betreff optional
Nachricht optional
Telegram optional
@
Wenn Sie Telegram angeben – antworten wir zusätzlich dort.
WhatsApp optional
Format: +Ländercode und Nummer (z. B. +49XXXXXXXXX).

Mit dem Klicken des Buttons stimmen Sie der Datenverarbeitung zu.