Start here. This is the direct spoken answer to practice first.
Why this question matters
When a user says 'Save failed', the system needs enough breadcrumbs to find what happened. Full-stack observability connects the browser symptom to backend evidence.
I would generate or propagate a correlation id for each important request and include it in frontend logs, API logs, response headers, and error UI where appropriate. The frontend can record route, action name, status code, duration, and safe error category. The API logs request handling with the same correlation id, user or tenant hash where safe, endpoint, validation outcome, dependency calls, and final status.