On this page
Start from questions
List the questions you need to answer: Is the site up? Are users able to register and pay? Which endpoint is slow? What happened to this learner's request? Which release introduced an error spike? Each question points to a signal. Instrumentation chosen this way stays useful; instrumentation added because a tool offers it often becomes noise.
Logs for events
Logs record individual events. Use structured logs with consistent fields, such as timestamp, level, service, route, request ID, user ID where appropriate, duration and error type. Write them to standard output and collect them in one searchable place. Log meaningful events, like completed requests, external calls and errors, rather than every function call, and exclude secrets and unnecessary personal data.
Metrics for trends and alerts
Metrics are numbers aggregated over time, ideal for dashboards and alerts. For request-based services, a widely used starting set is rate (requests per second), errors (failed requests) and duration (latency percentiles such as the 95th), per important route. Add a few business metrics, such as successful registrations and payments per hour, which often reveal problems that technical metrics miss. Keep metric labels low in cardinality; using user IDs as labels can overwhelm many systems.
Traces for request journeys
A trace follows one request across services and components, showing how long each step took. Traces are invaluable when a request passes through a web app, an API, a database and an external provider. OpenTelemetry is an open standard with SDKs for many languages that can produce traces, metrics and logs and export them to many backends, which avoids locking instrumentation to one vendor. Propagate the trace or request ID through every service and include it in logs, so you can jump from a slow trace to its log lines.
Alert on symptoms users feel
Alert on what affects users, such as a high error rate on checkout or slow page responses, rather than on every high CPU reading. Define a few service level objectives, for example 99.5% of registration requests succeed over 30 days, and alert when you are consuming that error budget too quickly. Every alert should be actionable and point to a short runbook; alerts that nobody acts on train the team to ignore them.
Use the signals in daily work
- Check dashboards after each release and compare error rates and latency with the previous version.
- Start incident investigations from the user-facing symptom, then follow traces and logs.
- Review a few slow traces weekly to find performance improvements.
- After incidents, add the signal that would have revealed the problem sooner.
Checklist
- Instrumentation is driven by real questions
- Logs are structured and searchable with request IDs
- Rate, errors and duration are tracked per key route
- Business metrics complement technical ones
- Traces connect services and link to logs
- Alerts are symptom-based, actionable and few
Share or cite this guide
Innovate with Ajay Editorial (2026-10-07). Observability for a Small Team: Logs, Metrics and Traces That Answer Questions. https://innovatewithajay.com/articles/observability-for-a-small-team
