From alert to root cause, in one place.

Sentinel brings traces, logs, metrics, and monitors together, so the request that failed leads straight to the reason why.

14 days of Pro free. No card needed to start.

checkout-api p95 latency

Alert

1,296ms

Alert above 800 ms. Recovers below 600 ms.

  1. 12:04Fired on payments
  2. 12:05Cause: gateway timeout
  3. 12:08Recovered

Service map

2 failing
web-storeauth-svccart-svcpaymentspostgresredisgateway

Trace · GET /checkout

Error in payment.charge
  • GET /checkout
  • auth.verify_token
  • cart.load
  • GET cart:7f2
  • SELECT cart_items
  • inventory.reserve
  • UPDATE stock
  • payment.charge
  • POST /v1/charges

Live tail

Streaming
  • INFO web-store GET /products/A-1129 200 41ms
  • INFO search-api query "running shoes" hits=212 23ms
  • INFO auth-svc session refreshed user=u_4821
  • INFO cart-svc item added sku=B-0042 qty=1
  • INFO auth-svc token verified ttl=3412s
  • INFO web-store GET /checkout 200 211ms
  • INFO cart-svc cache hit key=cart:7f2

Send data from what you already run

  • OpenTelemetry
  • Kubernetes
  • Docker
  • Go
  • Node.js
  • Python
  • Java
  • PostgreSQL
  • Redis
  • Kafka

Alerts that wait for a real problem.

Before you save a monitor, replay the last four hours against it and see every page it would have sent. Add a recovery level and a metric hovering at the line stops waking people up.

Explore monitors

4 transitions in 4 hours

Every span brings its logs and its host.

Select a slow span and its logs, the CPU of the machine it ran on, and where its time went are already there. You never write a second query to get them.

Explore traces
GET /checkout trace_id 4a9f82d1b0c9e782 842 ms 502 after payment timeout
POST /v1/charges inpayment-gateway onpay-02 386ms · 45.8% of trace
  • +450ms INFO POST https://api.gateway.example/v1/charges
  • +830ms ERROR context deadline exceeded: no response in 380ms

Found by trace_id:4a9f82d1b0c9e782 within the span’s window. No query written.

Know when it is really over.

The incident keeps its own timeline: when it fired, what caused it, and the moment it recovered. The host map shows whether the machine was ever the problem.

Explore incidents

checkout-api p95 latency

Alert

1,296ms

Alert above 800 ms. Recovers below 600 ms.

  1. 12:04Fired on payments
  2. 12:05Cause: gateway timeout
  3. 12:08Recovered

Hosts by CPU

45 hosts

pay-02 ran the failing span. CPU is normal: the host is not the cause.

Connect it in a few minutes.

Sentinel speaks OpenTelemetry. If you already run a collector, add one exporter. If you don’t, pick a guide and follow three steps.

kubectl create namespace sentinel
kubectl -n sentinel create secret generic sentinel-ingest \
  --from-literal=api-key=$SENTINEL_API_KEY --from-literal=config-key=$SENTINEL_API_KEY
helm install sentinel oci://registry.gitlab.com/nayem.drmc/sentinel-agents/charts/sentinel-collector \
  --version 0.4.1 -n sentinel \
  --set clusterName=prod-eu \
  --set sentinel.endpoint=https://<your Sentinel host>/otlp \
  --set sentinel.existingSecret=sentinel-ingest

See your first trace in minutes.