open-telemetry / open-telemetry/opentelemetry-ruby
Implement the event-to-span-event bridge processor
Nobody has claimed this yet.
- Dominant language
- Ruby
- Stars
- 606
- Forks
- 301
- Avg merge
- 3d 19h
- Merged PRs (30d)
- 42
Description
Spec requirement
[Development] A LogRecordProcessor implementation that bridges qualifying LogRecords to span events on the current span. It MUST bridge if and only if: the record has a non-empty EventName, has a valid TraceId and SpanId, the resolved Context's current span IsRecording is true, and the record's TraceId/SpanId match the current span's. When bridged, it MUST add exactly one span event (name = EventName; timestamp = Timestamp if set, else ObservedTimestamp; all Attributes copied), and MUST NOT block the record's normal pipeline (sdk.md:561-600 (permalink)).
Current behavior
This processor has not been implemented.
Suggested fix
Add a new processor implementing the four-condition check and span event mapping described above. Keep it opt-in (not part of the default configured pipeline) since this spec is still marked Development.
Related rows in SPEC_COMPLIANCE_LOGS.md
SDK-41
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reading the SDK requirement in sdk.md:561-600 and the SDK-41 entry in SPEC_COMPLIANCE_LOGS.md, then locate the existing LogRecordProcessor entry points in the Ruby repository. Confirm the four bridging conditions, span-event field mapping, opt-in configuration, and that normal record processing remains non-blocking.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- ruby
- Domain
- observability-sre
- Issue type
- Feature
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 68/100