Back to sections

Monitoring & Observability Interview Questions & Answers

A sample of real Monitoring & Observability interview questions with full answers and explanations - practice for interviews or certification exams.

easy

1. Google's SRE book describes four 'golden signals' as the core things worth monitoring for almost any user-facing system. Which of the following is one of them?

Saturation, how full or resource-constrained a system currently isCorrect
Deployment frequency
Mean time to hire an on-call engineer
Code coverage

The four golden signals are latency, traffic, errors, and saturation, and saturation specifically measures how close a system is to its resource limits (CPU, memory, queue depth, and so on) before performance degrades. The other options describe engineering process or delivery metrics, not signals you'd track on a service's core health dashboard.

medium

2. Your alerting fires hundreds of pages overnight for the same underlying database outage, one per affected service. What's the standard fix?

Page a different on-call engineer for each alert
Increase every alert's threshold
Disable alerting for that database entirely
Alert grouping/dependency-aware correlation, so downstream symptom alerts are suppressed under the root-cause alertCorrect

When one database goes down, every service that depends on it starts failing too, and each of those failures fires its own alert - so you get flooded with pages that are really all symptoms of the same root problem. Alert correlation groups related alerts together and only pages you for the root cause, so on-call gets one clear signal instead of a hundred confusing ones.

hard

3. A platform team supports 40 microservices and wants a single Grafana dashboard template that any engineer can use to view latency for whichever specific service they're currently investigating, without the team having to hand-build and maintain 40 nearly-identical dashboards. What Grafana feature is designed for exactly this?

Downsampling rules
Annotations
Alert silences
Dashboard variables (template variables), which let a dropdown at the top of the dashboard swap out which service's data every panel queries, using one shared dashboard definitionCorrect

Dashboard variables let a single dashboard definition stay generic, with panel queries referencing a variable like $service instead of a hardcoded service name, and a dropdown at the top lets whoever's viewing it pick which specific value to plug in. This turns what would otherwise require 40 separate, hand-maintained dashboards into one reusable template, which is exactly the maintenance burden the scenario describes.

easy

4. Which metric type is defined so that its value can only increase (or reset to zero on a process restart), making it suitable for tracking things like 'total HTTP requests served'?

CounterCorrect
Gauge
Histogram
Summary

A counter is a cumulative metric whose value only ever goes up, or drops back to zero when the process restarts; it's the right choice for totals like requests served or errors raised. A gauge, by contrast, can go up or down (like current memory usage), which is why counters and gauges are treated differently by query functions like rate().

medium

5. A high-traffic service logs a detailed DEBUG-level line for every single request, and the resulting log volume has become so large that the company's log storage bill is now larger than their compute bill. They still want SOME visibility into typical request patterns without paying to store every single line. What's a common technique for this?

Turn off logging entirely and rely only on metrics
Increase the log retention period to reduce the total number of writes
Switch every log line to the ERROR level so fewer of them get generated
Log sampling: only keep and store a representative percentage (say, 1 in 100) of routine log lines, while still keeping all error/warning lines or lines related to any request that had a problemCorrect

Log sampling deliberately keeps only a fraction of high-volume, low-value log lines (like routine successful requests) while still capturing everything from unusual or error paths, which are the lines most likely to matter during an investigation. This cuts storage and ingestion cost dramatically while preserving statistical visibility into normal behavior and full visibility into problems, which is a much better trade-off than either logging everything or turning logging off.

hard

6. An on-call engineer spends roughly six hours a week manually running the same five-step recovery script every time a specific, well-understood alert fires, a task that never requires judgment and is always resolved the exact same way. A new SRE lead flags this as 'toil' that should be reduced. What's the recommended fix?

Increase the alert's severity so it pages faster
Automate the recovery steps so the system remediates itself automatically (or the runbook's script runs unattended) when that specific, well-understood condition is detected, freeing the engineer's time for work that actually requires judgmentCorrect
Assign the task to a more junior engineer instead, since the work itself is unavoidable
Convert the alert into a dashboard panel instead of an alert

Toil is manual, repetitive, automatable operational work that doesn't require human judgment and scales linearly with load rather than getting easier over time, and the standard SRE response to identifying it is to automate it away rather than just reassign it to someone else. Since the recovery steps here are always identical and well-understood, this is close to a textbook case for turning the runbook into a self-healing automation instead of continuing to burn a human's time on it every week.

easy

7. A single user request touches an API gateway, an auth service, and a billing service, each of which writes its own logs independently. What technique lets an engineer pull together every log line related to that one request across all three services?

Increasing the log level to DEBUG on all three services
Attaching the same correlation ID (a unique request identifier) to every log line each service writes for that requestCorrect
Merging all three services' log files into a single file
Running a synthetic monitoring check against all three services

A correlation ID (sometimes called a request ID or trace ID) is generated once, typically at the entry point, and passed along with the request to every downstream service, which includes it in every log line it writes. An engineer can then search logs across every service for that one ID and reconstruct the full request path, without which same-timestamp logs from unrelated requests would be impossible to tell apart.

medium

8. A company's alerting pipeline itself, the tool responsible for evaluating alert rules and paging on-call, silently crashed overnight. Because it wasn't running, it also didn't fire any alerts about anything, including its own failure, and nobody noticed for six hours. What kind of alert would have caught this specific failure mode?

A higher-severity threshold on the existing CPU alert
A dead man's switch: a heartbeat alert that is expected to fire on a regular schedule no matter what, so that its ABSENCE (rather than its presence) is what signals a problemCorrect
A blameless postmortem process
A synthetic monitoring check against the customer-facing website

A normal alert only tells you something when a bad condition is detected, which is useless if the alerting system itself is the thing that's broken. A dead man's switch inverts this: it's an alert (or external check) configured to expect a regular 'I'm still alive' heartbeat, and it's the missing heartbeat itself that triggers the page, which is why it can catch failures in the monitoring pipeline that would otherwise monitor itself into silence.

hard

9. A distributed tracing system samples only 1% of all incoming requests at the very moment they enter the system, before anything is known about how each request will turn out. Later, the team notices that many of their rare, slow, or error-producing requests, exactly the ones they most want to investigate, were never sampled at all. What sampling strategy would fix this, and why?

Switch from traces to logs, since traces cannot capture error information
Increase the sample rate to 100% permanently to guarantee nothing is missed
Head-based sampling with a higher percentage, since the problem is simply that 1% is too low
Tail-based sampling, which waits until a request completes before deciding whether to keep its trace, so it can preferentially keep traces that were slow or had errors rather than sampling randomly at the startCorrect

Head-based sampling decides whether to keep a trace at the very start of a request, before its outcome is known, so it samples uniformly at random and is just as likely to throw away a slow, failing request as a fast, successful one. Tail-based sampling instead buffers spans until the request finishes, then applies rules (like 'always keep errors and high-latency requests') to bias sampling toward exactly the interesting cases, at the cost of needing to hold onto all spans until a request completes, which is more resource-intensive but far more useful for debugging.

easy

10. A developer is deciding what log level to use for a message that records 'user successfully completed checkout,' a normal, expected event that isn't an error but is still worth recording for business visibility. Which level fits best?

DEBUG
ERROR
WARN
INFOCorrect

INFO is meant for notable, expected events in normal operation, things a team might want visibility into without them signaling a problem. DEBUG is for fine-grained detail useful only during active troubleshooting, and WARN/ERROR are reserved for situations that are unexpected or require attention, which a successful checkout is not.

Want to practice under real conditions?

Try the full timed Monitoring & Observability quiz.

    Welcome to OpsQuiz!

    Real scenario-based DevOps questions, hands-on practice, and clear explanations for every answer.