You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[Feature Request]: Add E2E test to verify prometheus metrics are exposed correctly #23
In would be nice to be able to have an E2E test run on CI that verified metrics are being exposed correctly.
We could use tastora to deploy all the components and wire them up for monitoring.
I imagine this looking like a test that builds an image on a PR, uses a struct with an embedded *container.Node from the tastora library, deploying it along side celestia/node/ev-node etc.
Initially we could just test the happy path, as triggering failure such as unsubmitted headers could be trickier. We could do things like kill the DA layer and verify metrics are exposed correctly.
Status after the optimization work (#57–#61): this is still open, since no end-to-end test exists yet. Two things changed that matter for designing it:
Observable signals for the "kill the DA layer" scenario:endpoint_availability, endpoint_errors_total, ev_metrics_unsubmitted_blocks_total, submission_failures_total, ws_reconnects_total, last_header_received_timestamp, and /health (503 while the subscription is down). See the README "Prometheus Metrics" and "Health Endpoint" sections.
Covered by unit and integration-style tests already: metric registration and values via a Prometheus registry, /health behaviour, the verifier with fakes (retries, backfill, reconnect), drift and balance against httptest and fake gRPC servers. The e2e test would add what these cannot: the real Docker image, the real /metrics scrape, and real ev-node and Celestia.
The Docker image is now a static non-root distroless build (UID 65532), so a tastora node wrapping it should not rely on a shell inside the image.
Activity
auricom commentedon Oct 20, 2026
Status after the optimization work (#57–#61): this is still open, since no end-to-end test exists yet. Two things changed that matter for designing it:
endpoint_availability,endpoint_errors_total,ev_metrics_unsubmitted_blocks_total,submission_failures_total,ws_reconnects_total,last_header_received_timestamp, and/health(503 while the subscription is down). See the README "Prometheus Metrics" and "Health Endpoint" sections./healthbehaviour, the verifier with fakes (retries, backfill, reconnect), drift and balance againsthttptestand fake gRPC servers. The e2e test would add what these cannot: the real Docker image, the real/metricsscrape, and real ev-node and Celestia.