Katkat

Design a Monitoring Dashboard with Explicit Latency Goals

ByteDanceSoftware Engineer · Technical Screen

Last updated

Design a monitoring dashboard that separates data freshness from query latency, with ingestion, rollups, browser updates, and stale-data handling.

Design a monitoring dashboard that displays incoming measurements with attention to latency. Explain both how quickly new measurements become visible and how quickly a user can load or change a chart.

Requirements and Constraints

For a concrete practice scope, assume producers emit timestamped numeric measurements with a metric name and a set of labels. Users choose a metric, label filters, and a time range to view a chart. These input and interaction details are exercise assumptions; no fixed throughput, retention period, freshness target, or response-time target is supplied.

Describe the ingestion path, storage and aggregation choices, dashboard query path, and browser update mechanism. Show where delay can accumulate and how you would determine whether the system satisfies the latency requirement. Account for delayed measurements, overloaded ingestion, and a chart that becomes stale.

Clarifying Questions

  • Does "latency" mean event-to-screen freshness, chart-query response time, or both, and how will each be measured?
  • Which time ranges and label filters must the dashboard support, and how many distinct label combinations can occur?
  • Can the display use aggregated points, and how should users see late or missing measurements?
  • Should a temporarily disconnected browser catch up on every measurement or fetch the latest chart state?

Hints

Hint 1

Follow one measurement and one chart request: A measurement can be delayed before it reaches storage, while a chart request can be slow even when storage is current. Trace these two paths separately.

Follow-up questions

  • How would you keep a month-long chart responsive without transferring every raw measurement to the browser?
  • What should happen when a late measurement changes an aggregate the dashboard has already displayed?
  • If chart queries remain fast while the newest displayed data becomes progressively older, which parts of the system would you investigate?