Skip to content
This repository has been archived by the owner on Nov 7, 2022. It is now read-only.

exporters: examine those that drop service/process information #198

Open
pjanotti opened this issue Nov 15, 2018 · 4 comments
Open

exporters: examine those that drop service/process information #198

pjanotti opened this issue Nov 15, 2018 · 4 comments

Comments

@pjanotti
Copy link

pjanotti commented Nov 15, 2018

The service (agent and collector) can receive spans from multiple processes (remote or not), while this information can be encoded as some type of tag on each span many backends receive this information as a separate block of data to minimize transport cost (e.g.: Node for oc-proto, Process for Jaeger batch). When using existing exporters this information can be lost, e.g.: Jaeger exporter sets the Process information during creation.

/cc @flands

@odeke-em
Copy link
Member

@pjanotti thanks for filing this issue.

Exporters like Stackdriver Trace don't seem to have a field for it but perhaps let's kindly page someone from the Stackdriver team to ask what attributes we can use for it
https://godoc.org/google.golang.org/genproto/googleapis/devtools/cloudtrace/v2#Span_Attributes /cc @mtwo
neither does Zipkin /cc @adriancole. Stackdriver Monitoring however takes in the processID information.

This issue would involve separate digging through the various exporters' repositories which aren't maintained by us.

@odeke-em odeke-em changed the title Use of exporters drop service/process information exporters: examine those that drop service/process information Nov 16, 2018
@gitlw
Copy link

gitlw commented May 11, 2019

@pjanotti @songy23

I ran into the same issue, when I tried to export tracing info from two types of applications A and B into the opencensus-agent, and then to the datadog-agent, and then to datadog. In the end, the service names A and B are lost in the datadog UI, and all traces have the name opencensus-app.

It seems the node info is lost during the translation at
https://github.com/census-instrumentation/opencensus-service/blob/master/exporter/exporterwrapper/exporterwrapper.go#L64

Before the translation, the node field in data.TraceData has the service name.
After the translation, the original service name in the node is lost.
Please let me know if you need anything else from me. Thanks!

@songy23
Copy link
Contributor

songy23 commented May 11, 2019

@gitlw Thanks for looking into this issue. Service names and other information in Node are dropped because the current ExportSpan interface doesn't accept Node: https://github.com/census-instrumentation/opencensus-go/blob/bf352733d4dffdd0e650c71cabc694aca654be9a/trace/export.go#L31. @sjkaris is working on adding a different interface ExportSpanProto that consumes both the proto format spans and Node information. Until that happened, for now you can try adding the service names as an attribute in the spans.

@gitlw
Copy link

gitlw commented May 11, 2019

Thanks for your quick reply @songy23 . I'll stay tuned for the change from @sjkaris

pjanotti pushed a commit that referenced this issue Jul 20, 2019
* Add support for specifying service name in config

The datadog exporter will currently drop the service name which is
specified in the spans. See #198
for more information.

This aligns the datadog exporter with jaeger, wavefront, and zipkin.
They already have this option.

A better solution would be to add support for multiple services, as many
of the other exporters have, but that is a bit over the level of
contribution I can do at the moment.

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

No branches or pull requests

4 participants