Παρακολούθηση & Μετρήσεις

Τελευταία Ενημέρωση: 2025-08-22

Το Kora Metrics Crate παρέχει ολοκληρωμένη συλλογή μετρήσεων και παρακολούθηση για τον διακομιστή Kora RPC.

Το Kora εκθέτει ένα τελικό σημείο /metrics που παρέχει δεδομένα απόδοσης σε πραγματικό χρόνο σε μορφή Prometheus.

Διαμόρφωση

Οι μετρήσεις διαμορφώνονται στην ενότητα [metrics] του αρχείου kora.toml. Η ενότητα [metrics] ρυθμίζει τη συλλογή μετρήσεων και την παρακολούθηση. Αυτή η ενότητα είναι προαιρετική και από προεπιλογή, οι μετρήσεις είναι απενεργοποιημένες.

[metrics]
enabled = true
endpoint = "/metrics"
port = 8080
scrape_interval = 60
[metrics.fee_payer_balance]
enabled = true
expiry_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 status
kora_http_requests_total{method="signTransaction",status="200"} 42
kora_http_requests_total{method="signTransaction",status="400"} 3
# Request duration (in seconds) by method
kora_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"} 500000000
signer_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

Επεξήγηση Βασικών Μετρήσεων

  1. kora_http_requests_total - Πόσα αιτήματα έχετε επεξεργαστεί

    • method: Ποια μέθοδος RPC κλήθηκε
    • status: Κωδικός κατάστασης HTTP (200=επιτυχία, 400=σφάλμα κ.λπ.)
    • Χρησιμοποιήστε το για την παρακολούθηση των μοτίβων χρήσης και των ποσοστών σφαλμάτων
  2. kora_http_request_duration_seconds - Πόσο γρήγορα είναι τα αιτήματά σας

    • Εμφανίζει εκατοστημόρια (p50, p95, p99) για χρόνους απόκρισης
    • Χρησιμοποιήστε το για τον εντοπισμό αργών endpoints
  3. signer_balance_lamports - Τρέχον υπόλοιπο SOL κάθε υπογράφοντα

    • Εμφανίζει το υπόλοιπο σε lamport (1 SOL = 1.000.000.000 lamport) για κάθε υπογράφοντα
    • Ετικέτες: signer_name (αναγνώσιμο όνομα) και signer_pubkey (δημόσιο κλειδί)
    • Ενημερώνεται αυτόματα στο παρασκήνιο όταν είναι ενεργοποιημένο
    • Χρησιμοποιήστε το για τον σχεδιασμό χωρητικότητας και ειδοποιήσεις χαμηλού υπολοίπου σε όλους τους υπογράφοντες

Χρήση των Δεδομένων

Επιλογή 1: Γρήγορος Έλεγχος Υγείας

# See all metrics
curl http://localhost:8080/metrics
# Check specific method performance
curl http://localhost:8080/metrics | grep signTransaction

Επιλογή 2: Prometheus + Grafana (Συνιστάται)

Για γραφήματα και ειδοποιήσεις, εκτελέστε την πλήρη στοίβα παρακολούθησης:

# from kora root directory
just run-metrics

Στη συνέχεια επισκεφτείτε:

  • Prometheus: http://localhost:9090 (ερώτημα μετρήσεων)
  • Grafana Προκατασκευασμένο ταμπλό Kora: http://localhost:3000
    • Προεπιλεγμένη σύνδεση: admin/admin (ή χρησιμοποιήστε τα διαπιστευτήρια GF_SECURITY_ADMIN_PASSWORD και GF_SECURITY_ADMIN_USER από το αρχείο .env σας)

Επιλογή 3: Η Δική Σας Παρακολούθηση

Κατευθύνετε οποιοδήποτε εργαλείο συμβατό με Prometheus στο http://your-server:8080/metrics:

  • Datadog
  • New Relic
  • CloudWatch
  • VictoriaMetrics

Παραδείγματα Ερωτημάτων (Prometheus)

# Requests per second by method
rate(kora_http_requests_total[1m])
# 95th percentile response time
histogram_quantile(0.95, kora_http_request_duration_seconds_bucket)
# Error rate
rate(kora_http_requests_total{status!="200"}[5m])
# Balance of specific signer by name
signer_balance_lamports{signer_name="primary_signer"} / 1000000000
# Balance of specific signer by public key
signer_balance_lamports{signer_pubkey="4gBe...xyz"} / 1000000000
# Total balance across all signers
sum(signer_balance_lamports) / 1000000000
# Minimum balance across all signers (useful for alerts)
min(signer_balance_lamports) / 1000000000

Παρακολούθηση Πολλαπλών Υπογραφόντων

Όταν χρησιμοποιείτε πολλαπλούς υπογράφοντες, μπορείτε να παρακολουθείτε κάθε υπογράφοντα ξεχωριστά ή να παρακολουθείτε συγκεντρωτικές μετρήσεις:

Μετρήσεις Μεμονωμένου Υπογράφοντα

# Check balance of specific signer
curl http://localhost:8080/metrics | grep 'signer_balance_lamports{signer_name="primary_signer"}'
# View all signer balances
curl 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 signers
signer_balance_lamports / on() group_left() sum(signer_balance_lamports)
# Track signer with lowest balance
min_over_time(signer_balance_lamports[1h])
# Count number of healthy signers (> 0.01 SOL)
count(signer_balance_lamports > 10000000)
# Average balance across all signers
avg(signer_balance_lamports) / 1000000000

Σημείωση Ασφαλείας

Το τελικό σημείο /metrics είναι δημόσιο από προεπιλογή. Σε περιβάλλον παραγωγής, εξετάστε το ενδεχόμενο να:

  • Το τοποθετήσετε πίσω από τείχος προστασίας
  • Χρησιμοποιήσετε ξεχωριστή θύρα μετρήσεων
  • Προσθέσετε έλεγχο ταυτότητας μέσω αντίστροφου διακομιστή μεσολάβησης

Πώς Λειτουργεί η Συλλογή Μετρήσεων

  1. Επίπεδο Ενδιάμεσου Λογισμικού HTTP - Υποκλέπτει όλα τα αιτήματα και συλλέγει:

    • Αριθμό αιτημάτων ανά μέθοδο JSON-RPC και κατάσταση
    • Διάρκεια αιτήματος ανά μέθοδο
  2. Τελικό Σημείο Μετρήσεων - Το τελικό σημείο /metrics εκτίθεται αυτόματα όταν η λειτουργία είναι ενεργοποιημένη

    • Διαχειρίζεται από το MetricsHandlerLayer
    • Επιστρέφει μετρήσεις σε μορφή Prometheus
  3. Συλλογή από Prometheus - Ρυθμισμένο να συλλέγει δεδομένα από το Kora κάθε 60 δευτερόλεπτα (δείτε crates/lib/src/metrics/prometheus.yml)

Is this page helpful?

Διαχειρίζεται από

© 2026 Ίδρυμα Solana.
Με επιφύλαξη παντός δικαιώματος.
Συνδεθείτε