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

Jaeger gRPC exporter lacking span parent structure #1808

Closed
plajjan opened this issue May 3, 2021 · 0 comments · Fixed by #1809
Closed

Jaeger gRPC exporter lacking span parent structure #1808

plajjan opened this issue May 3, 2021 · 0 comments · Fixed by #1809
Labels
bug Something isn't working

Comments

@plajjan
Copy link
Contributor

plajjan commented May 3, 2021

Describe your environment
I'm running opentelemetry in a docker container on my local computer.

root@ea1e70b65e3c:/log# python3 --version
Python 3.7.3
root@ea1e70b65e3c:/log# 
(pyvenv) root@ea1e70b65e3c:/var/opt/ncs/packages/opentelemetry-exporter# python3
Python 3.7.3 (default, Jan 22 2021, 20:04:44) 
[GCC 8.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import opentelemetry.version
>>> opentelemetry.version.__version__
'1.1.0'
>>> 

Steps to reproduce
I have an application that is using the OpenTelemetry library and is exporting data just fine to Jaeger via the Thrift interface. I would need to export data over IPv6 though and the Thrift over UDP is hard coded to IPv4 (see #1559), thus I'm trying to use gRPC. I have succeeded in getting data exported but the data is lacking the parent/child structure.

Reading https://github.com/open-telemetry/opentelemetry-python/blob/main/exporter/opentelemetry-exporter-jaeger-proto-grpc/src/opentelemetry/exporter/jaeger/proto/grpc/translate/__init__.py, I don't see that it is really reading out the parent structure and exporting. Am I missing something or is it just missing?

In the Thrift model, there is a parentSpanId. In gRPC it seems to be modeled differently, like there's a list of references that can be of the type CHILD_OF or FOLLOWS_FROM. It is set here https://github.com/open-telemetry/opentelemetry-python/blob/main/exporter/opentelemetry-exporter-jaeger-proto-grpc/src/opentelemetry/exporter/jaeger/proto/grpc/translate/__init__.py#L254 and extracted using https://github.com/open-telemetry/opentelemetry-python/blob/main/exporter/opentelemetry-exporter-jaeger-proto-grpc/src/opentelemetry/exporter/jaeger/proto/grpc/translate/__init__.py#L318 but it only looks at the span links, not at the normal span parent relation.

What is the expected behavior?
Seeing child spans of parents etc. A nested structure.

What is the actual behavior?
A flat list of spans.

Additional context

@plajjan plajjan added the bug Something isn't working label May 3, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant