Overview
The project dashboard, its health cards and attention tables, and the scope controls every telemetry page shares.
The Overview is the first page of a project, labelled Overview in the sidebar. It answers two questions for whoever is on call: is the app healthy right now, and what should you look at first. It also introduces the scope controls in the top bar, which work the same way on every telemetry page.
The page lives at /o/:org/projects/:project/overview.
Status strip
The strip at the top covers four areas, each linking to its page:
- Alerts counts firing alert rules and how many of those are acknowledged, and links the worst one.
- Uptime counts monitors that are down or degraded, or else the operational ones.
- Incidents counts active status page incidents, or else scheduled maintenance.
- Issues counts new and regressed issues in the selected range.
When nothing needs attention, the strip folds into one line that says All systems normal, with a note for any area you have not set up yet, such as "No alerts yet". If neither alerts nor uptime monitors exist, it says Nothing is monitored yet instead. The strip reads only Postgres, so it renders with the page, and it refreshes every 30 seconds.
Health cards
Eight cards summarise the selected range, environment and services.
| Card | Value | Hint |
|---|---|---|
| Requests | Server requests handled | Number of 4xx responses |
| Error Rate | Share of requests that returned 5xx | |
| P95 Latency | 95th percentile response time | Average response time |
| Exceptions | Distinct exception groups | Total occurrences |
| Active Users | Distinct user.id values on requests | Users who hit at least one 5xx |
| DB Queries | Database queries executed | Average duration |
| Slow Queries | Queries over 100 ms | Share of all queries |
| External Calls | Outbound HTTP calls | Distinct hosts and the share that failed |
The error rate counts 5xx responses only, because a 404 or 422 is usually the client's problem, not yours. The Error Rate card shows a warning from 1% and an error from 5%. The Requests page shows 4xx and 5xx separately.
Users only count when your app tags the request with a user, see Users.
Each card has a sparkline over the range and a delta against the previous period of the same length. With Compare on, the delta uses the comparison window instead. A delta is left out when the previous window reaches past your plan's retention, because expired data would read as a drop.
Traffic and performance
Two charts cover the whole range:
- Traffic shape stacks request volume per bucket into 2xx, 4xx and 5xx.
- Latency pressure plots the median and P95 response time, and the legend adds P99.
Deployment markers from Deployments appear on both charts, so a latency jump that starts at a release is easy to spot. Drag across a chart to zoom the time range to that window.
What needs attention
Four tables, each capped at 5 rows with a link to the full page:
- Exceptions inbox lists the most frequent exception groups with their count and last seen time. A row opens its issue in Issues when one exists, otherwise the exception group.
- Slowest queries lists query patterns ranked by P95. A row opens the pattern in Queries.
- Slowest endpoints lists routes ranked by P95. A row opens the endpoint in Requests.
- Users under friction lists identified users with at least one 5xx request, most failures first.
Recent deployments follows, with each deployment's version, kind and time. Its 5xx column shows the change in the 5xx rate in the hour after the deployment against the hour before.
Getting started
A project with no event and no monitor yet shows a checklist instead of the cards: connect a service or monitor a URL, then send the first event and create the first alert. Monitoring a URL needs no SDK. The check runs every minute and tells you when the URL goes down. Once data arrives, organization admins see the remaining steps in a card beside the Overview until they finish or dismiss it.
Explore a sample project first, offered to organization admins, opens the organization's sample project, creating it the first time: a project named Sample with three simulated services and 48 hours of telemetry. A Sample data note sits at the top of its Overview, and admins get a link there to delete the project. The sample is a normal project, so nothing stops you from changing it.
Where the data comes from
Every card and table reads the per-minute span rollups and the exception table, filled by whatever sends traces for the project: the AdonisJS agent, the browser SDK, or any OpenTelemetry SDK. A request is a SERVER span with an HTTP method, a query is a CLIENT span with db.system.name, and an external call is a CLIENT span with an HTTP method. Concepts explains how spans become these categories.
Scope controls
The top bar of every telemetry page carries the same controls, from left to right.
Services
A multi-select listing each service by display name and telemetry name. The default is All services. It only appears when the project has more than one service. You can select up to 50, and Show all services clears the selection. Every card, chart and table narrows to the selected services.
Environment
PRD, STG and DEV select production, staging or development. Each page shows one environment at a time, and the default is production. The environment comes from the x-unhandled-env header your SDK sends, so the same service key reports into all three.
Time range
Presets are 15m, 1h, 6h, 24h, 7d and 30d, and the default is 24h. The calendar button picks a custom range. Its text field takes a typed range such as 2h, yesterday 14:00-15:00, last monday or ISO timestamps, and echoes the window it understood before you press Enter. Below it, a calendar with start and end time fields picks days. A custom range ends no later than now and spans at most 90 days. A longer one is trimmed to the 90 days before its end.
Around the presets:
- « and » shift the window back or forward by its own length. Forward stops at now.
- Zoom out doubles the window.
- Previous range appears after you change the range and returns to the one before.
- The clock button switches every time on the page between local time and UTC. The browser remembers the choice.
Compare
Compare adds the same data from an earlier window: Previous period (the window just before, of the same length), 1 day ago or 1 week ago. Stat cards show a delta chip, charts draw the earlier window as dotted lines, and lists such as Requests add Δ P95 and Δ calls columns.
Interval
The interval sets the chart bucket size: 1m, 5m, 15m, 1h, 6h or 1d. Only intervals that give between 2 and 1,500 buckets for the current range are offered. When you have not picked one, or your pick does not fit the new range, Unhandled chooses the smallest interval that keeps the chart at 200 buckets or fewer.
Refresh
The refresh button reloads the data for the current scope. The menu next to it turns on auto-refresh every 10 seconds, 30 seconds or minute. Auto-refresh skips a tick while the tab is in the background, and it pauses while a fixed custom range is selected, because that data does not change.
Phones
On a narrow screen the controls fold into one chip that summarises the range, environment and services. Tap it to change them.
Sharing a view
The scope lives in the URL as the env, services, range, from, to, interval and compare query parameters. A copied link opens with the same services, environment and range. Copy link to this exact window, in the Copy link menu on explore pages, pins the start and end instead, so everyone sees the same data. Links inside a page, such as a table row or a View all link, and the sidebar carry the scope along, except Compare.
Answering "did the last deploy hurt us?"
- Set the range to 24h or 7d and pick the environment you deployed to.
- Look for the deployment marker on Latency pressure and compare the P95 line before and after it.
- If P95 rose, check Slowest endpoints and Slowest queries for new entries, then open them for the per-endpoint charts.
- Check the Exceptions inbox for groups whose last seen time is after the marker.