Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

OpenTracing alignment for agents #32

Closed
watson opened this issue Dec 19, 2018 · 4 comments
Closed

OpenTracing alignment for agents #32

watson opened this issue Dec 19, 2018 · 4 comments
Milestone

Comments

@watson
Copy link
Contributor

watson commented Dec 19, 2018

Following is a list of rules that our OpenTracing bridges should adhere to:

Tags

  • If the bridge sees one of our predefined special purpose tags, it should use the value of the tag to set the associated value, but the tag it self should not be stored. Example: The tag user.id should not be stored as a tag, but instead be used to populate context.user.id on the active transaction
  • If no type tag is provided, the current span/transaction should use whatever their default type normally is

Logs

  • If a "log" is set on a span with an event field containing the value error, the bridge should do one of the following:
    • If the log contains an error.object field, expect that to be a normal error object and log that however the agent normally logs errors
    • Alternatively, if the log contains a message field, log that however the agent normally logs plain text messages

Formats

  • Tracers should support the text format. The value should be the same format as the http header value
  • Tracers should not support the binary format. Bridges should implement it as a no-op and optionally log a warning the first time the user tries to use the binary format

Parent/Child relationships

  • Tracers should only support a single "child-of" relationship
    • If a span is given a list of more than one parent relationship, use the first that is of type "child-of"
    • If the provided list of parent relationships doesn't contain a "child-of", the span should be a root-span
    • Optionally log a warning the first time an unsupported parent type is seen or if more than one parent is provided

@elastic/apm-agent-devs If there's any other unanswered questions, put them in comments below and we'll update this list as they get answered.

@watson watson added this to the 6.6 milestone Dec 19, 2018
@alvarolobato
Copy link
Contributor

Thanks @watson

cc. @roncohen

@gtrevg
Copy link

gtrevg commented Jun 12, 2019

Related to this, https://opentelemetry.io/ will be the merging of OpenCensus and OpenTracing and is targeting a June 2019 Java reference release and September 2019 release for other languages. It would be great to have an elastic compatible "exporter" that would allow us to instrument using OpenTelemetry and point it to the elastic backend. Should I open up an issue to support OpenTelemetry? Thanks

@axw
Copy link
Member

axw commented Jun 13, 2019

@gtrevg thanks for the note!

We're aware of OpenTelemetry, and we're keeping abreast to ensure we have a path forward from OpenTracing. I've created #98 to track this feature. If there's anything in there that I missed, we'd appreciate your input.

@gtrevg
Copy link

gtrevg commented Jun 14, 2019

@axw Awesome, thanks so much!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants