-
Notifications
You must be signed in to change notification settings - Fork 104
Closed
Milestone
Description
- Decide on a library to collect and publish metrics
Add metrics for each component, this will change but here is an initial list:
- All
- Collect metrics from the event loop, e.g. tokio-metrics
- Collect metrics from gRPC / tonic / axum
- Number of requests, with status (200, 404, 500, etc), per request handler
- Timing for request handlers with percentile (at least 99, 95, 50)
- Request/Response sizes with percentiles
- Timing for downstream requests with percentile
- Number of seconds the service has been running
- Metrics from the control plane
- Number of operations performed
- Configuration reload
- Store
- Number of blocks persisted so far
- Number of leaves in the MMR
- Number of non-empty leaves in the Nullifier tree
- Number of accounts created
- Number of transactions persisted so far (not sure if we have this)
- Size of the chain (could be approximated by the size of the sqlite db file)
- Percentiles for queries
- This overlaps with the spans from the distributed tracer, ideally we should reuse the data from the tracer for metrics too
- Block Producer
- Number of known provers, with status (e.g. healthy/unhealthy, or responsive/unresponsive)
- Number of locally proven transactions waiting in the queue
- Number of chain transactions waiting in the queue
- Number of batches in the queue
- Number of accounts with in-flight transactions
- Number of in-flight notes
- Timing for proving times with percentile (at least 99, 95, 50)
- for the chain transactions
- for the batches
- for the block
- Age of the oldest transaction waiting to be included in a batch (this is probably the best strategy to trigger when to increase the number of batch prover machines)
- RPC
Node metrics (cpu, memory, disk usage, etc) should not be exposed here, this should be done by an external agent (e.g. https://prometheus.io/docs/instrumenting/exporters/)
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels