Laatst bijgewerkt: 2025-08-22
De Kora Metrics Crate biedt uitgebreide verzameling en monitoring van statistieken voor de Kora RPC- server.
Kora biedt een /metrics-eindpunt dat realtime prestatiegegevens in
Prometheus-formaat levert.
Configuratie
Statistieken worden geconfigureerd in het [metrics]-gedeelte van uw
kora.toml. Het [metrics]-gedeelte configureert het verzamelen en monitoren
van statistieken. Dit gedeelte is optioneel en standaard zijn statistieken
uitgeschakeld.
[metrics]enabled = trueendpoint = "/metrics"port = 8080scrape_interval = 60[metrics.fee_payer_balance]enabled = trueexpiry_seconds = 30
| Optie | Beschrijving | Verplicht | Type |
|---|---|---|---|
enabled | Schakel verzameling van statistieken in | ✅ | boolean |
endpoint | Aangepast pad voor statistieken-eindpunt | ✅ | string |
port | Poort voor statistieken-eindpunt | ✅ | number |
scrape_interval | Frequentie van Prometheus-scraping (seconden) | ✅ | number |
Tracking van Fee Payer-saldo
Het [metrics.fee_payer_balance]-gedeelte configureert automatische monitoring
van het SOL-saldo van uw fee payer:
| Optie | Beschrijving | Verplicht | Type |
|---|---|---|---|
enabled | Schakel tracking van fee payer-saldo in | ❌ (standaard: false) | boolean |
expiry_seconds | Achtergrond tracking-interval in seconden | ❌ (standaard: 30) | number |
Wanneer ingeschakeld, houdt Kora automatisch het SOL-saldo van uw fee payer bij
en maakt het beschikbaar via de fee_payer_balance_lamports Prometheus-gauge.
Dit helpt bij capaciteitsplanning en waarschuwingen voor lage saldi.
Snel starten
Toegang tot statistieken:
curl http://localhost:8080/metrics
Wat u zult zien
De statistieken tonen hoe uw RPC-server presteert:
# Total requests by method and statuskora_http_requests_total{method="signTransaction",status="200"} 42kora_http_requests_total{method="signTransaction",status="400"} 3# Request duration (in seconds) by methodkora_http_request_duration_seconds{method="signTransaction"} 0.045# Signer balances (for multi-signer setups)signer_balance_lamports{signer_name="primary_signer",signer_pubkey="4gBe...xyz"} 500000000signer_balance_lamports{signer_name="backup_signer",signer_pubkey="7XyZ...abc"} 300000000
Als u de RPC-server nog niet hebt aangeroepen, zult u geen statistieken zien. U
kunt een eenvoudige test uitvoeren door de getConfig-methode aan te roepen:
curl -X POST http://localhost:8080 \-H "Content-Type: application/json" \-d '{"jsonrpc": "2.0", "method": "getConfig", "id": 1}'
en controleer vervolgens de statistieken:
curl http://localhost:8080/metrics
Belangrijkste Statistieken Uitgelegd
-
kora_http_requests_total- Hoeveel verzoeken je hebt afgehandeldmethod: Welke RPC-methode werd aangeroepenstatus: HTTP-statuscode (200=succes, 400=fout, etc.)- Gebruik dit om gebruikspatronen en foutpercentages bij te houden
-
kora_http_request_duration_seconds- Hoe snel je verzoeken zijn- Toont percentielen (p50, p95, p99) voor responstijden
- Gebruik dit om trage endpoints te identificeren
-
signer_balance_lamports- Huidig SOL-saldo van elke ondertekenaar- Toont saldo in lamport (1 SOL = 1.000.000.000 lamport) voor elke ondertekenaar
- Labels:
signer_name(leesbare naam) ensigner_pubkey(openbare sleutel) - Wordt automatisch op de achtergrond bijgewerkt wanneer ingeschakeld
- Gebruik dit voor capaciteitsplanning en waarschuwingen bij laag saldo voor alle ondertekenaars
De Gegevens Gebruiken
Optie 1: Snelle Gezondheidscheck
# See all metricscurl http://localhost:8080/metrics# Check specific method performancecurl http://localhost:8080/metrics | grep signTransaction
Optie 2: Prometheus + Grafana (Aanbevolen)
Voor grafieken en waarschuwingen, voer de volledige monitoringstack uit:
# from kora root directoryjust run-metrics
Bezoek vervolgens:
- Prometheus: http://localhost:9090 (statistieken opvragen)
- Grafana voorgebouwd Kora-dashboard: http://localhost:3000
- Standaard login: admin/admin (of gebruik de
GF_SECURITY_ADMIN_PASSWORDenGF_SECURITY_ADMIN_USERinloggegevens uit je.envbestand)
- Standaard login: admin/admin (of gebruik de
Optie 3: Je Eigen Monitoring
Wijs een Prometheus-compatibele tool naar http://your-server:8080/metrics:
- Datadog
- New Relic
- CloudWatch
- VictoriaMetrics
Voorbeeldquery's (Prometheus)
# Requests per second by methodrate(kora_http_requests_total[1m])# 95th percentile response timehistogram_quantile(0.95, kora_http_request_duration_seconds_bucket)# Error raterate(kora_http_requests_total{status!="200"}[5m])# Balance of specific signer by namesigner_balance_lamports{signer_name="primary_signer"} / 1000000000# Balance of specific signer by public keysigner_balance_lamports{signer_pubkey="4gBe...xyz"} / 1000000000# Total balance across all signerssum(signer_balance_lamports) / 1000000000# Minimum balance across all signers (useful for alerts)min(signer_balance_lamports) / 1000000000
Multi-Ondertekenaar Monitoring
Bij het gebruik van meerdere ondertekenaars kun je elke ondertekenaar afzonderlijk monitoren of aggregate statistieken bijhouden:
Individuele Ondertekenaar Statistieken
# Check balance of specific signercurl http://localhost:8080/metrics | grep 'signer_balance_lamports{signer_name="primary_signer"}'# View all signer balancescurl http://localhost:8080/metrics | grep signer_balance_lamports
Prometheus-Query's voor Multi-Ondertekenaar Configuraties
# Alert if any signer has low balance (< 0.05 SOL)min(signer_balance_lamports) < 50000000# Monitor balance distribution across signerssigner_balance_lamports / on() group_left() sum(signer_balance_lamports)# Track signer with lowest balancemin_over_time(signer_balance_lamports[1h])# Count number of healthy signers (> 0.01 SOL)count(signer_balance_lamports > 10000000)# Average balance across all signersavg(signer_balance_lamports) / 1000000000
Beveiligingsopmerking
Het /metrics endpoint is standaard openbaar. Overweeg in productie:
- Het achter een firewall plaatsen
- Een aparte metriekenpoort gebruiken
- Authenticatie toevoegen via reverse proxy
Hoe het verzamelen van metrieken werkt
-
HTTP Middleware Laag - Onderschept alle verzoeken en verzamelt:
- Aantal verzoeken per JSON-RPC methode en status
- Duur van verzoeken per methode
-
Metrieken Endpoint -
/metricsendpoint wordt automatisch beschikbaar gesteld wanneer de functie is ingeschakeld- Wordt afgehandeld door
MetricsHandlerLayer - Retourneert metrieken in Prometheus-formaat
- Wordt afgehandeld door
-
Prometheus Scraping - Geconfigureerd om Kora elke 60 seconden te scrapen (zie
crates/lib/src/metrics/prometheus.yml)
Is this page helpful?