opencensus-service icon indicating copy to clipboard operation
opencensus-service copied to clipboard

exporters: examine those that drop service/process information

Open pjanotti opened this issue 6 years ago • 4 comments

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

pjanotti avatar Nov 15 '18 15:11 pjanotti

@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 avatar Nov 15 '18 18:11 odeke-em

@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!

gitlw avatar May 11 '19 00:05 gitlw

@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.

songy23 avatar May 11 '19 00:05 songy23

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

gitlw avatar May 11 '19 00:05 gitlw