honeycombio/beeline-ruby

Links

Closed this issue · 2 comments

Similar to #66, the inability to set meta.span_type prevents creating Link spans. Please consider adding API surface to permitting linking to another span, as this would really help tracing asynchronous jobs (see also #29).

Adding a comment here per the pollinators slack convo.

Is there a preferred way within honeycomb-beeline to add a link to a span?

If not, would adding Honeycomb::Span#add_link be something the team is open to implementing?

For context, setting up distributed trace was super easy via:

Honeycomb.start_span(name: "event name", serialized_trace: serialized_trace)

However, I didn't see a way to easily add a link and ended up having to drop into the beeline implementation to grab a direct link to the libhoney client:

Honeycomb.client
         .libhoney
         .event
         .add(
           'trace.link.trace_id': trace_id,
           'trace.link.span_id': parent_span_id,
           'meta.annotation_type': 'link',
           'trace.parent_id': span.id,
           'trace.trace_id': span.trace.id,
         )
         .send

FWIW it feels to me that "links" are special and require a bit of knowledge to ensure all the correct bits are set. As a gem user, anything that abstracts that away from me having to setup or keep in sync across APIs / version changes the better. Also, having it on Honeycomb::Span means I'm always working at the same abstraction layer, which reduces my cognitive overhead when building things.

Hello,

We will be closing this issue as it is a low priority for us. It is unlikely that we'll ever get to it, and so we'd like to set expectations accordingly.

As we enter 2022 Q1, we are trimming our OSS backlog. This is so that we can focus better on areas that are more aligned with the OpenTelemetry-focused direction of telemetry ingest for Honeycomb.

If this issue is important to you, please feel free to ping here and we can discuss/re-open.