-
Notifications
You must be signed in to change notification settings - Fork 1k
Description
Implementation ideas
celestia-node
currently supports push-only telemetry for application metrics (OTLP) --metrics
and pull-only for P2P metrics (Prometheus) --p2p.metrics
. Would be great to have both models
at hand as it would enable operators
to choose between 2 different sets of operational logic on a telemetry level.
For example there are scenarios where someone might prefer to have a pull
model because they operate a local prometheus
endpoint.
Limitations
- Application metrics cannot be scraped directly (no native Prometheus endpoint)
- Fragmented metrics across different ports
- Operators must choose between incomplete
pull
OR infrastructure-heavy push
Benefits
- Operational Flexibility
- Reduced Complexity
- Consistency
So to recap:
- unified telemetry
--metrics
for everything - support for
pull
andpush
model ex.--metrics --metrics.push
///--metrics --metrics.pull
Some other example flag combinations:
# Existing logic could become by default a `pull` model:
celestia light start --metrics
Simpler less flags required, unified telemetry, --metrics metrics.pull
could too be supported if added as an input to keep logical consistency with the push model
# Push logic since it's more complex and requires more parameters by default could be:
celestia light start --metrics --metrics.push --metrics.tls=false --metrics.endpoint localhost:4318
Possible performance gains
Pull model provides safer resource consumption with lower operational risk we should benchmark it to know precisely what is the %
overhead diff between both.