These pages show Cloud's URLs. Sign in on Hosted and they show your server's.

The Service Overview dashboard

Every Dart service's requests, errors and latency, the picked service's operations and latency distribution, and the status-code mix.

Who it is for: The people who run the Dart services behind your apps: on-call engineers and backend owners.

Open it from Dashboards in the Observatory: choose Service Overview. It is a built-in board, so it is read-only; Save a copy makes one you can change. How every panel reads the range, its colors and its empty states is on Reading a board.

The toolbar: the filters Service, each All until you pick a value, and the time range. Each menu lists the values http.server.request.duration carries in the range. Each panel below names the filters that narrow it.

[TODO: screenshot of the Service Overview dashboard over the last 6 hours with one service picked: Overview, Per service and Operations by calls]

Overview

Requests

Every HTTP server request the services answered in the picked range: successes, errors and admin endpoints alike.

  • How it is computed: The number of http.server.request.duration samples. One figure for the whole picked range.
  • Compared: Beside the figure, its change from the prior range of the same length.
  • Filters: Service narrows it.
  • Opens: its title opens the Metric screen on http.server.request.duration.

Error rate

Requests answered 5xx, of all requests; 4xx codes are the caller's and left out. Amber at 1%, red at 5%.

  • How it is computed: Requests (http.server.request.duration samples) whose http.response.status_code is 500 or higher, divided by all requests, as a percent. One figure for the whole picked range.
  • Better: Lower is better.
  • Colors: The figure turns amber above 1% and red above 5%.
  • Filters: Service narrows it.
  • Opens: its title opens the Metric screen on http.server.request.duration.

Latency (p95)

Request duration at the 95th percentile, across all services.

  • How it is computed: The 95th percentile of http.server.request.duration. One figure for the whole picked range.
  • Better: Lower is better.
  • Colors: The figure turns amber above 500 ms and red above 2 s.
  • Filters: Service narrows it.
  • Opens: its title opens the Metric screen on http.server.request.duration.

Active services

The services recording the request histogram.

  • How it is computed: Distinct service.name values on http.server.request.duration. One figure for the whole picked range.
  • Filters: Service narrows it.
  • Opens: its title opens the Metric screen on http.server.request.duration.

Per service

Requests per second by service and route

Requests per second for each service and route. The route is the template, never the concrete path.

  • How it is computed: The per-second rate of http.server.request.duration samples, one line per service.name and http.route, the top ten. Lines, one point per step across the picked range.
  • Filters: Service narrows it.
  • Opens: its title opens the Metric screen on http.server.request.duration.

Latency p50, p95 and p99 by service

A wide gap between p50 and p99 points to a long-tailed latency distribution.

  • How it is computed: The 50th, 95th and 99th percentiles of http.server.request.duration, one line per percentile and service. Lines, one point per step across the picked range.
  • Filters: Service narrows it.
  • Opens: its title opens the Metric screen on http.server.request.duration.

Error rate by service

The share of each service's requests answered 5xx: the E in RED. The dashed lines mark 1% and 5%.

  • How it is computed: Requests (http.server.request.duration samples) with http.response.status_code 500 or higher, divided by all requests, per service, as a percent. Lines, one point per step across the picked range.
  • Colors: Dashed lines mark 1% (warn) and 5% (crit).
  • Filters: Service narrows it.
  • Opens: its title opens the Metric screen on http.server.request.duration.

Operations

Operations by calls

Every operation the picked service answered in the range (its server spans, by name), most calls first, with its errors and p95. Server spans only, so with Service set to All the phone's taps and requests are not operations.

  • How it is computed: Calls: the number of server spans (span kind server) per span name, the top twenty. Errors: those that ended in an error. Duration p95: their 95th percentile duration. A table, every figure for the whole picked range.
  • Filters: Service narrows it.
  • Opens: its title opens Traces.

Latency distribution

Request duration heatmap

Each column is one step, each cell the share of its requests in that duration bucket. Horizontal bands are distinct latency modes.

  • How it is computed: The buckets of http.server.request.duration, each column the share of its step's requests in each bucket. 36 columns across the picked range, each at least one minute wide.
  • Filters: Service narrows it.
  • Opens: its title opens the Metric screen on http.server.request.duration.

Status code mix

Requests per second by service and status code

2xx dominate happy-path traffic; 4xx show callers misusing the API; 5xx are the service's own failures.

  • How it is computed: The per-second rate of http.server.request.duration samples, one stacked segment per service.name and http.response.status_code, the top twelve. Stacked bars, one per step across the picked range.
  • Filters: Service narrows it.
  • Opens: its title opens the Metric screen on http.server.request.duration.