-
Notifications
You must be signed in to change notification settings - Fork 2.2k
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
XRay exporter not sending traces #1646
Comments
Interestingly, the same configs work on the same Ec2 instance if I use the AWS distro docker.io/amazon/aws-otel-collector image instead of otel/opentelemetry-collector-contrib I cant use the distro because I need zipkin and jaeger and the distro doesnt seem to support these. Please advise. |
/cc @kbrockhoff |
Sorry for missing this issue @CeeBeeCee - are you still seeing problems? I'm surprised by the difference with the AWS distro since we don't change that much there. /cc @mxiamxia |
No worries @anuraaga . I just pulled v0.16.0 version and I see the same thing. The exporter seems to have exported the traces to XRay but they don't show up. docker pull otel/opentelemetry-collector-contrib:0.16.0 REPOSITORY TAG Log sample : |
I have the collector running in the debug mode (--log-level DEBUG) but I dont see any debug logs for the AWS exporter. Is there another way to turn on debug logging? |
Hiya, I'm seeing similar symptoms however I'm running the aws-otel-collector distro v0.4.0 - multiple spans/segments are reported to have been successfully exported to X-Ray from the collector but they never show up in X-Ray. I'm running the default config from the AWS distro with the metrics processors and exporters removed. With the collector log level set to DEBUG I also see similar logs and also no errors:
For additional debugging purposes I also enabled the logging exporter and have used it to confirm spans are being received from the instrumented applications. Collector config snippet with logging exporter enabled
Log sample of a span via the logging exporter
Log from stdout exporter in the application
I see a few AWS folks here so if it helps there's more details of the environment where I'm experiencing this in AWS support case 7681890941. |
@zl4bv Thanks for the logs. It looks like you are using @CeeBeeCee Can you also confirm which instrumentation you're using? I wonder if when using the AWS Distro, you used the AWS Distro for instrumentation as well, where we automatically enable the correct ID generation, but by default instrumentation would not be doing that. If you're able to post anything from the logging exporter, that would be great! |
@anuraaga : I have 3 apps ( Python, Java and JS) instrumented with Opentelemetry (not AWS Distro) which are emitting traces. Traces for all three apps seem to be processed by the collector but don't make it to Aws. They so show up in Jaeger which I'm using as a second exporter. |
I will send some samples traces from the logging exporter tomorrow. Meanwhile if there is a way to turn on debug level logs for the AWS exporter, please let me know |
Thanks @CeeBeeCee - you helped me find this spot that is clearly lacking an important debug log statement For the issue, it seems to be the same - you will need to either use the AWS Distro for instrumentation which is preconfigured for use with x-ray, or manually enable the x-ray id generator. (we don't have a doc for it since currently we figure users will use the aws distro) JS's is here - https://aws-otel.github.io/docs/getting-started/js-sdk/trace-manual-instr Python's is here - https://github.com/open-telemetry/opentelemetry-python-contrib/blob/master/sdk-extension/opentelemetry-sdk-extension-aws/src/opentelemetry/sdk/extension/aws/trace/aws_xray_ids_generator.py You can use the normal opentelemetry-collector-contrib fine with the AWS distro for Java instrumentation so for Java I recommend that. The others do require some configuration. Let me know if this works for you. Thanks! |
@anuraaga thanks for the clarification about trace IDs not starting with a UNIX timestamp. I have 2 apps (Go and JS) - I'll wait for the ID generator changes and try the Go app again later. As for the JavaScript app it appears to be working now with your suggestion to manually enable the X-Ray ID generator in the JS SDK. Thanks heaps! |
@anuraaga : I updated my Python code to use AwsXRayIdsGenerator and I can now see the traces in XRay using opentelemetry-collector-contrib. Thanks so much for your help! trace.set_tracer_provider(TracerProvider(resource=resource,ids_generator=AwsXRayIdsGenerator())) Side question : I have a team asking if we can use OTel with AWS Step Functions instead of XRay. What's your take on this? The use case here is we need to send traces to a 3rd party. |
* Support zipkin proto in Kafka receiver Signed-off-by: Pavol Loffay <[email protected]> * Fix tests Signed-off-by: Pavol Loffay <[email protected]>
Just hit the same issue with opentelemetry-php. https://github.com/open-telemetry/opentelemetry-php/blob/main/sdk/Trace/RandomIdGenerator.php needs to be replaced with an XRay generator. However this is currently blocked by open-telemetry/opentelemetry-php#281. |
* Support zipkin proto in Kafka receiver Signed-off-by: Pavol Loffay <[email protected]> * Fix tests Signed-off-by: Pavol Loffay <[email protected]>
I just hit the same issue and I am going to use XRay compatible generator for my app. However, I feel README.md may need an improvement. I read there:
So my interpretation was that on incorrect trace ID, exporter would generate a valid one for me. I don't necessary think that it should be exporter's responsibility, but at least the doc should be made clear. Or am I wrong? |
Hi @tmarszal thank you for chiming in. I've opened #10207 to address the README changes, PTAL! Otherwise, this issue can stay open as the primary tracking issue in this repo for the X-Ray backend not supporting fully-random trace IDs. We are also tracking it downstream in aws-observability/aws-otel-collector#492 @CeeBeeCee could you possibly update the title of this issue to more closely match the root cause/actual feature request, as is done in aws-observability/aws-otel-collector#492 so other customers looking at this can know it's for the same issue? |
This issue has been inactive for 60 days. It will be closed in 60 days if there is no activity. To ping code owners by adding a component label, see Adding Labels via Comments, or if you are unsure of which component this issue relates to, please ping |
This issue has been closed as inactive because it has been stale for 120 days with no activity. |
Describe the bug
I am running OTel collector v0.14 on an us-east-1 EC2 instance. The collector is configured to receive traces in otlp format and export to us-east-1 xray. The logging exporter tells me that it is receiving traces and zpages shows an incrementing count of traces exported to XRay. But the traces do not show up in XRay(us-east-1) and the logs dont show any errors. Is this working for anyone and is there a way to debug what's going on? This used to work until 0.8 if I remember correctly.
awsxray:
awsxray/custom:
region: us-east-1
resource_arn: "arn:aws:ec2:us-east1:xxxxx:instance/xxxxx"
role_arn: "arn:aws:iam::xxxxx:role/xxxxx"
pipelines:
traces:
receivers: [jaeger, zipkin, otlp]
processors: [batch, queued_retry]
exporters: [awsxray,logging]
ZPages
The text was updated successfully, but these errors were encountered: