
- Each event belongs to a span; it cannot exist independently.
- An event has a single timestamp (there is no start/end time).
- Events can carry structured attributes to provide contextual detail.

Common uses are capturing milestones such as a DB query completion, an external API response, or an exception. When recording an exception, include attributes like
exception.type, exception.message, and exception.stacktrace. Example JSON event:
OpenTelemetry recommends recording exceptions as span events so they remain connected to the trace context and are timestamped for easier debugging.




- Capturing a stack trace or exception details when an error occurs.
- Marking retries or backoff events inside a span.
- Annotating application-specific checkpoints (e.g., parsing completed, cache miss).
- Recording important external call completions or timeouts.

add_event (or equivalent) API in your SDK. Example in Python:
- OpenTelemetry: Exceptions semantic conventions
- OpenTelemetry: Tracing overview
- OpenTelemetry SDKs and APIs