Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .markdownlint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,9 @@ MD033:
allowed_elements:
- summary
- details
- br
- li
- ul
MD024:
siblings_only: true
MD025:
Expand Down
6 changes: 3 additions & 3 deletions specification/appendix-d-observability.md
Original file line number Diff line number Diff line change
Expand Up @@ -61,9 +61,9 @@ Telemetry hooks can emit OpenTelemetry signals in three distinct ways:

| Pattern | Advantages | Disadvantages |
| ---------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| **Span Events**</br>![recommended](https://img.shields.io/badge/recommended-green) | - Leverages existing trace configuration and tooling</br> - Minimal overhead, no additional spans created</br> - Maintains trace context relationships</br> - Simpler than creating spans | - Requires an active span to function</br> - Must gracefully handle absence of active span</br> - Limited to span lifetime and context. |
| **Event Logging** | - Works independently without active spans</br> - Aligns with OpenTelemetry's emerging direction</br> - Suitable for environments without tracing</br> - Simpler implementation model | - Requires an event exporter to be configured</br> - Processed and stored separately from spans</br> - Event logging standards still evolving |
| **Standalone Spans** | - Distributed traces contain every evaluation</br> - Detailed timing information</br> - Full span lifecycle control | - Creates one span per evaluation</br> - May clutter trace visualizations</br> - Increased overhead and resource usage</br> - Potential performance impact at scale</br> - More complex implementation |
| **Span Events**<br />![recommended](https://img.shields.io/badge/recommended-green) | <ul><li>Leverages existing trace configuration and tooling</li><li>Minimal overhead, no additional spans created</li><li>Maintains trace context relationships</li><li>Simpler than creating spans</li></ul> | <ul><li>Requires an active span to function</li><li>Must gracefully handle absence of active span</li><li>Limited to span lifetime and context.</li></ul> |
| **Event Logging** | <ul><li>Works independently without active spans</li><li>Aligns with OpenTelemetry's emerging direction</li><li>Suitable for environments without tracing</li><li>Simpler implementation model</li></ul> | <ul><li>Requires an event exporter to be configured</li><li>Processed and stored separately from spans</li><li>Event logging standards still evolving</li></ul> |
| **Standalone Spans** | <ul><li>Distributed traces contain every evaluation</li><li>Detailed timing information</li><li>Full span lifecycle control</li></ul> | <ul><li>Creates one span per evaluation</li><li>May clutter trace visualizations</li><li>Increased overhead and resource usage</li><li>Potential performance impact at scale</li><li>More complex implementation</li></ul> |

> [!NOTE]
> While span events are recommended for their low overhead and ease of use, OpenTelemetry is trending toward using log-based events instead of span events. Please refer to the [OpenTelemetry Span Event Deprecation Plan][otel-span-event-deprecation-plan] for more details.
Expand Down
Loading