See what your services are doing: logs, metrics, traces, health checks and alerts on what users feel.
key idea / coordinatorservice / good pathin progress / watch outproblem / failureneutral
Observability
Make the running system visible to developers and operations.
Observability versus monitoring
Newman distrusts the "three pillars" (metrics, logs, traces) as too reductive: they overlap, and a tool per pillar can be a sales pitch. Think of every output as an event. From a stream of events you can project a trace, a searchable index or aggregated numbers. Aim for a system you can understand, not a pile of tools. From Building Microservices, ch. 10.
Building block
Answers
Log aggregation
What happened on every instance?
Metrics aggregation
What are the trends? When do we need capacity?
Distributed tracing
Where did one request spend its time?
SLOs and alerting
Are we doing OK, and who gets woken?
Semantic monitoring
Is the business behaving as expected?
Testing in production
Can we catch problems before users do?
Aggregating logs, metrics and traces
Newman treats a log aggregation tool as a prerequisite for microservices. Logs can hold sensitive data, so limit access and avoid logging what you do not need.
Spans from each service share an identifier and are joined into one trace. Pick tools that support the open OpenTelemetry API: many libraries already emit spans, and you can switch vendors later.
SLOs, alerts and semantic monitoring
"Up" or "down" means little for a distributed system: one sick bee does not make a sick hive. Instead define what acceptable behavior is. From Building Microservices, ch. 10.
With budget left, try risky changes. With the budget gone, put reliability first. Budgets give teams room to experiment.
Too many alerts overwhelm people, as seen at Three Mile Island. Ask: should this wake someone at 3 a.m.? A routine disk failure can wait for working hours.
Logging and restarts in practice
Bootstrapping Microservices keeps it simple: log to standard output, and let the platform collect it.
Code defensively: expect bad input, hidden bugs and flaky dependencies such as the message broker. Test the error paths too, not only the happy path.
Recap
Add a health check, aggregated logs, tracing, metrics, exception tracking and audit logs.
Observability is a property built from aggregated logs, metrics and traces (OpenTelemetry). Use SLOs, error budgets, few actionable alerts and semantic monitoring.
Quick check
CPU and memory dashboards look fine, but users say checkout is slow. What should you have had in place?Show answer
Signals about what users feel: an SLO on checkout latency, with distributed tracing across the services in the request so you can see which hop is slow. Host metrics alone rarely show a problem in the call chain.