GH GambleHub

Λειτουργία Μέτρηση API

1) Σκοπός και τομέας αρμοδιότητας

Η μέτρηση API είναι ένα ενιαίο σημείο πρόσβασης στις λειτουργικές και επιχειρηματικές μετρήσεις της πλατφόρμας. Δίνει:
  • συνεπής SLI/SLO (σύνδεση, κατάθεση, επιτόκιο, ανάληψη)·
  • KRI (δείκτες πρώιμου κινδύνου: PSP/KYC/ουρές αναμονής/αναπαραγωγές)·
  • επιχειρηματικές μετρήσεις (επιτυχία των αδειών GEO/PSP/τράπεζας, μερίδιο των επιτυχημένων στοιχημάτων, p95/p99 βασικές διάρκειες διαδρομής)·
  • ασφαλείς, φθηνές και προβλέψιμες ενδείξεις για ταμπλό, ειδοποίηση, σελίδες κατάστασης, υποβολή εκθέσεων.

2) Αρχιτεκτονικές αρχές

Διαβάζοντας-βαρύ, γράψτε-λίγα: API διαβάζει μόνο συγκεντρώσεις από TSDB/cache.
SLO-πρώτα: οι απαντήσεις είναι προβλέψιμες εγκαίρως· σφάλματα και υποβάθμιση - επισημαίνονται με διαφάνεια.
Γνώση του κόστους: μείωση της δειγματοληψίας, ποσοστώσεις, χαρακτηριστικά καναρινιών στο SDK.
Απόρρητο προς σχεδιασμό: καμία PII σε μεταδεδομένα/ετικέτες· μάρκες, γεω-πύλη, SoD.
Πολυλειτουργικός: απομόνωση ανά εμπορικό σήμα/περιφέρεια/περιβάλλον.

3) Μοντέλο δεδομένων (επιφάνεια)

Μετρικές σειρές = 'metric _ id' + 'labels {}' + 'timestamp' + 'value' (+ προαιρετικό 'examplar {trace _ id =...}').

3. 1 Κατηγορίες

SLI/SLO: 'auth _ success _ rate', 'bet _ settle _ p99 _ m ,' recaw _ tat _ p95 _ m , 'api _ 5xx _ rate'.
KRI: 'queue _ consumer _ lag', 'db _ replication _ lag', 'psp _ soft _ decide _ rate'.
: 'καταθέσεις _ επιτυχία _ pc ,' στοιχήματα _ επιτυχία _ pc , 'kyc _ pass _ rate'.
: 'cpu _ util', 'cache _ hit _ ratio', 'cdn _ waf _ block _ rate'.

3. 2 Ετικέτες (αυστηρά περιορισμένες)

«περιφέρεια», «ενοικιαστής», «περιβάλλον», «υπηρεσία», «psp», «bank _ group», «geo», «συσκευή», «version», «component».
Απαγορεύεται: 'userId', 'surveId', αριθμοί ακατέργαστης κάρτας/εγγράφου.

4) Έκδοση και συμβατότητα

Βασική διαδρομή: '/v1/μετρήσεις/... '; ασυμβίβαστες αλλαγές - μόνο στο νέο «vX».
Προσθήκη ετικετών/σειρών - συμβατές προς τα πίσω.
Η σημασιολογία αλλάζει μέσω του πεδίου 'schema _ version' στην απάντηση και την περίοδο χάριτος.
Ο κατάλογος σχημάτων δημοσιεύεται ως '/v1/schemas '.

5) Καταληκτικά σημεία (REST, παρόμοια σε gRPC/GraphQL)

1. «GET/v1/μετρήσεις/ερώτηση»

Παράμετροι:
  • 'metric' (multi), 'from', 'to', 'step' (резолюция), 'agg' ('avg' sum 'min' max 'p50
  • 'filter [label] = value' (multi), 'group _ by = label1, label2',
  • 'downsample = 1m\5m\1h', 'symlars = true' false ',' limit '(рядов),' page '.
  • Απάντηση: σειρά σειρών '{μετρικών, ετικετών {}, σημείων: [[ts, τιμή]], υποδειγμάτων?}'.

2. «POST/v1/μετρήσεις/μαζική αναζήτηση»

Φορέας: Έως 50 αιτήσεις σε μία παρτίδα. Αποθήκευση αιτημάτων για πολύπλοκα ταμπλό.

3. «GET/v1/μετρήσεις/στιγμιαία»

Οι τρέχουσες τιμές στα 'ts' (ή 'τώρα') με τα καθορισμένα φίλτρα.

4. «GET/v1/μετρήσεις/κατάλογος»

Κατάλογος διαθέσιμων μετρήσεων, περιγραφών, ετικετών, επιτρεπόμενων συγκεντρώσεων, δεσμεύσεων SLO.

5. «GET/v1/μετρήσεις/υγεία»

Η κατάσταση της ίδιας της API: καθυστέρηση p95, ανθεκτικότητα στην κρύπτη, μερίδιο των επιτυχιών της κρύπτης.

6. «GET/v1/μετρήσεις/slo»

Έτοιμες απόψεις SLO: κατανάλωση του προϋπολογισμού σφάλματος (ταχεία/αργή), κατάσταση-στόχος.

6) Δειγματοληπτικές αιτήσεις

6. 1 Επιτυχία των αδειών PSP στο δίκτυο TR, 1-min, 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» ανά περιφέρεια, με υποδείγματα (παραδείγματα ιχνών):


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

6. 3 Καθεστώς SLO στιγμιαίας κατάθεσης ΕΕ:


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

6. 4 Παρτίδα 3 ερωτημάτων (POST/χύμα ερωτήματα) - για ένα γράφημα με στρώματα.

7) Συγκεντρώσεις και εκατοστημόρια

Τα εκατοστημόρια p50/p95/p99 υπολογίζονται σε επίπεδο TSDB/aggregator. με το «downsample» - με τη σωστή σύνθεση (t-digest/HDR).
"ομάδα _ by 'επιτρέπεται μόνο σε λευκές ετικέτες, έτσι ώστε να μην ανατιναχτεί η πληθικότητα.
"step 'είναι επικυρωμένο: τουλάχιστον 10 s για πραγματικό χρόνο, 1 m για δημόσια ταμπλό.

8) Μετρητά, μείωση της δειγματοληψίας και φρεσκάδα

Multi-level cache: in-memory (έως 30-60 s), διανεμημένη (έως 5 λεπτά), CDN για δημόσιες προβολές SLO.
Αυτόματη δειγματοληψία με μεγάλα παράθυρα («> 24h») → 5m/1h σημεία.
Φρεσκάδα - : 'X-Data-Freshness: 12 ,' X-Downsample: 1m ',' X-Partial: true 'false'.

9) Πολυπληθής και απομόνωση

Κάθε αίτηση πρέπει να περιέχει τον όρο «ενοικιαστής» (σε μάρκα/ετικέτες).
ABAC/RBAC: ο ρόλος/η πολιτική περιορίζει την πρόσβαση από 'tenant, περιφέρεια, περιβάλλον, metric_id'.
Εμφάνιση/φόρτιση: κεφαλίδες 'X-Query-Cost-Estimate' και μετρητές χρήσης.

10) Εξακρίβωση ταυτότητας και ασφάλεια

mTLS/μάρκες υπηρεσιών πεδίου εφαρμογής.
SoD: Πρόσβαση σε μετρήσεις με πιθανούς κανονιστικούς κινδύνους (χρηματοδότηση, RG) - ατομικοί ρόλοι.
Όρια επιτοκίου: ανά κλειδί πελάτη και ανά «μετρικό _ id».
Εξυγίανση PII: ο εξυπηρετητής επικυρώνει την απουσία απαγορευμένων φίλτρων/ετικετών.

11) Γεωγραφική κατοικία και συμμόρφωση

Τα δεδομένα διαβάζονται από περιφερειακές αποθήκες (EU/LATAM/APAC) σχετικά με την πολιτική κατοικίας.
Διαπεριφερειακά ερωτήματα - μόνο για συγκεντρωτικά στοιχεία χωρίς PII και με «συμμόρφωση _ πεδίο εφαρμογής».

12) Περιπτώσεις και συσχέτιση

Με 'exemplars = true', η απόκριση στα εκατοστημόρια επιστρέφει αναφορές σε ένα ζεύγος αντιπροσωπευτικών 'trace _ id' (χωρίς PII) για γρήγορη RCA.
Συσχέτιση: «συσχέτιση _ id» διατίθεται στα μεταδεδομένα απόκρισης.

13) SLA API και σφάλματα

Απόκριση SLA: p95 ≤ 300 ms (μνήμη), ≤ 1. 5 s (ψυχρή διαδρομή), διαθεσιμότητα ≥ 99. 9%.

Κωδικοί:
  • '400' - άκυρο αίτημα (πάρα πολύ 'ομάδα _ by', κακό 'βήμα'),
  • '403' - ανεπαρκή δικαιώματα/μισθωτής,
  • '409' - σύγκρουση κυκλωμάτων,
  • '429' - όριο ποσόστωσης/συντελεστή,
  • '502/504' - υποβάθμιση της αποθήκευσης (στις κεφαλίδες - συστάσεις για το downsample/step),
  • «206» είναι μια μερική απάντηση (ορισμένα θραύσματα δεν είναι διαθέσιμα).
  • Διαγνωστικές κεφαλίδες: 'X-Query-Plan', 'X-Query-Cache', 'X-Query-Shards', 'X- Limit-Remaining'.

14) Ποσοστώσεις, όρια συντελεστών και αντίθλιψη

Προκαθορισμένο: 10 rps ανά πελάτη, 50 επεισόδια ανά απάντηση, 3 ώρες παράθυρο, 'βήμα ≥ 10c'.
Μάρκες διάρρηξης: για ταμπλό στη μεγάλη οθόνη, συντονισμένα παράθυρα.
Backpressure: ο εξυπηρετητής μπορεί να επιστρέψει το 'Retry-After', συμβουλεύοντας να αυξηθεί το 'step '/enable' downsample '.

15) SDK και βέλτιστες πρακτικές

SDK: Typescript/Go/Python. Προεπιλογή: επιθετική κρύπτη, εκθετική backoff, 'If-No-Match'.

Συστάσεις προς τους πελάτες:
  • ομαδικά ερωτήματα «/χύδην ερωτήματα »·
  • χρήση «ομάδα _ από» με φειδώ·
  • για ιστορικές ανασκοπήσεις - 'downsample = 1h',
  • προσθήκη χρονοδιαγραμμάτων ≤ 2 δευτερόλεπτα και μάρκες «ακύρωσης».

15. 1 Μικρό παράδειγμα (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

SLI самого API: p95_latency, error_rate, cache_hit_ratio, partial_response_rate.
Χρήση του KPI: rps, μέσος όγκος απόκρισης, μετρήσεις ανώτατου κόστους.
Ειδοποιήσεις: ρυθμός καύσης σε σφάλματα, ακίδα '429', πτώση cache-hit <στόχος.
Αρχεία καταγραφής: δομημένα, χωρίς PII. 'tenant', 'metric _ i ,' query _ cost _ class '.

17) Πολιτικές FinOps

Κλάσεις αιτήσεων: A (πίνακες ταμπλό πραγματικού χρόνου), B (λειτουργικά), C (αναλυτικά). Διαφορετικές ποσοστώσεις/TTL.
Κόστος: $/GB διαβάζει, $/αίτημα, $/γράφημα. Μηνιαία έκθεση σχετικά με τις «βαριές» μετρήσεις και ετικέτες.
Βελτιστοποίηση: συγχώνευση εξυπηρετητή, προ-συγκεντρωτικά στοιχεία για δημοφιλή προβολή SLO, αυτόματες συμβουλές στον πελάτη (προτεινόμενο 'βήμα/downsample').

18) Ολοκλήρωση

Σελίδα κατάστασης: Διαβάζει έτοιμες προβολές SLO.
Προειδοποίηση: οι κανόνες βασίζονται σε '/slo 'και' στιγμιαία '.
Περιστατικό-ρομπότ: γρήγορα κομμάτια γραφημάτων/φέτες μέσω σύντομων προκαθορισμένων.
Ροή εργασίας/Πύλες απελευθέρωσης: μπλοκ απελευθέρωσης σε κόκκινες SLOs.

19) Χάρτης πορείας για την εφαρμογή (6-10 εβδομάδες)

Νεντ. 1-2: κατάλογος μετρήσεων, whitelists ετικετών, '/catalog 'schemas, '/query' πρωτότυπο με κρύπτη και downsample.
Νεντ. 3-4: '/μαζική ερώτηση ', '/slo', παραδείγματα, RBAC/ABAC, ποσοστώσεις/όρια δασμού.
Νεντ. 5-6: geo-sharding, CDN για δημόσια προβολή, πρωτοσέλιδα FinOps, ταμπλό SLI API.
Νεντ. 7-8: SDK (TS/Go/Py), συστάσεις/γραμμή ερωτήσεων, δοκιμές καναρινιού.
Νεντ. 9-10: διδασκαλίες χάους (αποτυχία θραύσης/κρύπτης), βελτιστοποίηση αξίας, υποβάθμιση της πολιτικής.

20) Τεχνουργήματα

Μετρικός κατάλογος: id, μονάδες, περιγραφές, διαθέσιμες 'agg', έγκυρες ετικέτες.
Πολιτική πρόσβασης: ρόλοι, τομείς, όρια, SoD.
Οδηγός στυλ ερωτήσεων - παραδείγματα ορθών/εσφαλμένων ερωτήσεων.
Χάρτης SLO: Συμμόρφωση SLI ↔ δημόσιους στόχους.
Έκθεση κόστους: κορυφαία ακριβά ερωτήματα/ετικέτες, σχέδιο βελτιστοποίησης.

21) Μετρήσεις KPI/KRI API

p95/99 καθυστέρηση, ποσοστό σφάλματος, μερικές απαντήσεις.
Αναλογία Cache hit και εξοικονόμηση CPU/IO.
Μέσο μέγεθος απόκρισης και $/αίτημα.
Η αναλογία των πινάκων που μετατράπηκαν σε «/μαζική ερώτηση ».
Περιστατικά που οφείλονται σε αιτήματα υψηλής πληθικότητας.

22) Αντιπατερίδια

Free 'group _ by' από δεκάδες μάρκα → μια έκρηξη πληθικότητας.
Εκατοστημόρια «διπλωμένα» στις στρεβλώσεις → πελάτη.
Οι αιτήσεις για 30-90 ημέρες χωρίς downsample → ακριβές και αργές.
Ανάμειξη ενοικιαστών/περιφερειών σε μία απάντηση χωρίς άδεια.
Δημόσια πάνελ χωρίς κρύπτη/CDN.
Αλλαγή της σημασιολογίας των μετρήσεων χωρίς το 'vX' και την περίοδο χάριτος.

Σύνολο

Οι μετρήσεις λειτουργίας API είναι ένα σταθερό, ασφαλές και οικονομικά αποδοτικό επίπεδο ανάγνωσης πάνω από την τηλεμετρία: τυποποιημένα σχήματα και εκατοστημόρια, κρύπτη και κατολίσθηση, αυστηρές ετικέτες και προσβάσεις, SLO προβολή και υποδείγματα για RCA, διαφανείς SLA, και κόστος. Αυτό το στρώμα σας επιτρέπει να φτιάξετε αξιόπιστα ταμπλό, ειδοποιήσεις, επικοινωνίες κατάστασης και πύλες απελευθέρωσης χωρίς να διακινδυνεύσετε την ιδιωτικότητα, τον προϋπολογισμό και την απόδοση.

Contact

Επικοινωνήστε μαζί μας

Επικοινωνήστε για οποιαδήποτε βοήθεια ή πληροφορία.Είμαστε πάντα στη διάθεσή σας.

Telegram
@Gamble_GC
Έναρξη ολοκλήρωσης

Το Email είναι υποχρεωτικό. Telegram ή WhatsApp — προαιρετικά.

Το όνομά σας προαιρετικό
Email προαιρετικό
Θέμα προαιρετικό
Μήνυμα προαιρετικό
Telegram προαιρετικό
@
Αν εισαγάγετε Telegram — θα απαντήσουμε και εκεί.
WhatsApp προαιρετικό
Μορφή: κωδικός χώρας + αριθμός (π.χ. +30XXXXXXXXX).

Πατώντας «Αποστολή» συμφωνείτε με την επεξεργασία δεδομένων.