Τελευταία Ενημέρωση: 2025-08-22
Το Kora Metrics Crate παρέχει ολοκληρωμένη συλλογή μετρήσεων και παρακολούθηση για τον διακομιστή Kora RPC.
Το Kora εκθέτει ένα τελικό σημείο /metrics που παρέχει δεδομένα απόδοσης σε
πραγματικό χρόνο σε μορφή Prometheus.
Διαμόρφωση
Οι μετρήσεις διαμορφώνονται στην ενότητα [metrics] του αρχείου kora.toml. Η
ενότητα [metrics] ρυθμίζει τη συλλογή μετρήσεων και την παρακολούθηση. Αυτή η
ενότητα είναι προαιρετική και από προεπιλογή, οι μετρήσεις είναι
απενεργοποιημένες.
[metrics]enabled = trueendpoint = "/metrics"port = 8080scrape_interval = 60[metrics.fee_payer_balance]enabled = trueexpiry_seconds = 30
| Επιλογή | Περιγραφή | Απαιτείται | Τύπος |
|---|---|---|---|
enabled | Ενεργοποίηση συλλογής μετρήσεων | ✅ | boolean |
endpoint | Προσαρμοσμένη διαδρομή τελικού σημείου μετρήσεων | ✅ | string |
port | Θύρα τελικού σημείου μετρήσεων | ✅ | number |
scrape_interval | Συχνότητα ανάκτησης από Prometheus (δευτερόλεπτα) | ✅ | number |
Παρακολούθηση Υπολοίπου Πληρωτή Χρεώσεων
Η ενότητα [metrics.fee_payer_balance] διαμορφώνει την αυτόματη παρακολούθηση
του υπολοίπου SOL του πληρωτή χρεώσεων:
| Επιλογή | Περιγραφή | Απαιτείται | Τύπος |
|---|---|---|---|
enabled | Ενεργοποίηση παρακολούθησης υπολοίπου πληρωτή χρεώσεων | ❌ (προεπιλογή: false) | boolean |
expiry_seconds | Χρονικό διάστημα παρασκηνιακής παρακολούθησης σε δευτερόλεπτα | ❌ (προεπιλογή: 30) | number |
Όταν είναι ενεργοποιημένο, το Kora παρακολουθεί αυτόματα το υπόλοιπο SOL του
πληρωτή χρεώσεων και το εκθέτει μέσω του μετρητή Prometheus
fee_payer_balance_lamports. Αυτό βοηθά στον σχεδιασμό χωρητικότητας και στις
ειδοποιήσεις χαμηλού υπολοίπου.
Γρήγορη Εκκίνηση
Πρόσβαση στις μετρήσεις:
curl http://localhost:8080/metrics
Τι Θα Δείτε
Οι μετρήσεις δείχνουν πώς αποδίδει ο διακομιστής RPC:
# 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
Εάν δεν έχετε καλέσει τον διακομιστή RPC ακόμα, δεν θα δείτε καμία μέτρηση.
Μπορείτε να εκτελέσετε μια απλή δοκιμή καλώντας τη μέθοδο getConfig:
curl -X POST http://localhost:8080 \-H "Content-Type: application/json" \-d '{"jsonrpc": "2.0", "method": "getConfig", "id": 1}'
και στη συνέχεια ελέγξτε τις μετρήσεις:
curl http://localhost:8080/metrics
Επεξήγηση Βασικών Μετρήσεων
-
kora_http_requests_total- Πόσα αιτήματα έχετε επεξεργαστείmethod: Ποια μέθοδος RPC κλήθηκεstatus: Κωδικός κατάστασης HTTP (200=επιτυχία, 400=σφάλμα κ.λπ.)- Χρησιμοποιήστε το για την παρακολούθηση των μοτίβων χρήσης και των ποσοστών σφαλμάτων
-
kora_http_request_duration_seconds- Πόσο γρήγορα είναι τα αιτήματά σας- Εμφανίζει εκατοστημόρια (p50, p95, p99) για χρόνους απόκρισης
- Χρησιμοποιήστε το για τον εντοπισμό αργών endpoints
-
signer_balance_lamports- Τρέχον υπόλοιπο SOL κάθε υπογράφοντα- Εμφανίζει το υπόλοιπο σε lamport (1 SOL = 1.000.000.000 lamport) για κάθε υπογράφοντα
- Ετικέτες:
signer_name(αναγνώσιμο όνομα) καιsigner_pubkey(δημόσιο κλειδί) - Ενημερώνεται αυτόματα στο παρασκήνιο όταν είναι ενεργοποιημένο
- Χρησιμοποιήστε το για τον σχεδιασμό χωρητικότητας και ειδοποιήσεις χαμηλού υπολοίπου σε όλους τους υπογράφοντες
Χρήση των Δεδομένων
Επιλογή 1: Γρήγορος Έλεγχος Υγείας
# See all metricscurl http://localhost:8080/metrics# Check specific method performancecurl http://localhost:8080/metrics | grep signTransaction
Επιλογή 2: Prometheus + Grafana (Συνιστάται)
Για γραφήματα και ειδοποιήσεις, εκτελέστε την πλήρη στοίβα παρακολούθησης:
# from kora root directoryjust run-metrics
Στη συνέχεια επισκεφτείτε:
- Prometheus: http://localhost:9090 (ερώτημα μετρήσεων)
- Grafana Προκατασκευασμένο ταμπλό Kora: http://localhost:3000
- Προεπιλεγμένη σύνδεση: admin/admin (ή χρησιμοποιήστε τα διαπιστευτήρια
GF_SECURITY_ADMIN_PASSWORDκαιGF_SECURITY_ADMIN_USERαπό το αρχείο.envσας)
- Προεπιλεγμένη σύνδεση: admin/admin (ή χρησιμοποιήστε τα διαπιστευτήρια
Επιλογή 3: Η Δική Σας Παρακολούθηση
Κατευθύνετε οποιοδήποτε εργαλείο συμβατό με Prometheus στο
http://your-server:8080/metrics:
- Datadog
- New Relic
- CloudWatch
- VictoriaMetrics
Παραδείγματα Ερωτημάτων (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
Παρακολούθηση Πολλαπλών Υπογραφόντων
Όταν χρησιμοποιείτε πολλαπλούς υπογράφοντες, μπορείτε να παρακολουθείτε κάθε υπογράφοντα ξεχωριστά ή να παρακολουθείτε συγκεντρωτικές μετρήσεις:
Μετρήσεις Μεμονωμένου Υπογράφοντα
# 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 για Διατάξεις Πολλαπλών Υπογραφόντων
# 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
Σημείωση Ασφαλείας
Το τελικό σημείο /metrics είναι δημόσιο από προεπιλογή. Σε περιβάλλον
παραγωγής, εξετάστε το ενδεχόμενο να:
- Το τοποθετήσετε πίσω από τείχος προστασίας
- Χρησιμοποιήσετε ξεχωριστή θύρα μετρήσεων
- Προσθέσετε έλεγχο ταυτότητας μέσω αντίστροφου διακομιστή μεσολάβησης
Πώς Λειτουργεί η Συλλογή Μετρήσεων
-
Επίπεδο Ενδιάμεσου Λογισμικού HTTP - Υποκλέπτει όλα τα αιτήματα και συλλέγει:
- Αριθμό αιτημάτων ανά μέθοδο JSON-RPC και κατάσταση
- Διάρκεια αιτήματος ανά μέθοδο
-
Τελικό Σημείο Μετρήσεων - Το τελικό σημείο
/metricsεκτίθεται αυτόματα όταν η λειτουργία είναι ενεργοποιημένη- Διαχειρίζεται από το
MetricsHandlerLayer - Επιστρέφει μετρήσεις σε μορφή Prometheus
- Διαχειρίζεται από το
-
Συλλογή από Prometheus - Ρυθμισμένο να συλλέγει δεδομένα από το Kora κάθε 60 δευτερόλεπτα (δείτε
crates/lib/src/metrics/prometheus.yml)
Is this page helpful?