Closed nilslice closed 1 year ago
Update: Resolved
Currently seeing an issue with traceId and spanId lengths, causing the server to reject requests. However, it seems to me that these IDs are the correct sizes:
Example from below: TraceId: 4d257aaaae76822d0b17fa407547bfb4 SpanId: 12f9f92e17d58634
Maybe @bhelx could confirm, but based on what I've seen in OpenTelemetry docs, these IDs should work fine. Also, these are the same format IDs generated and used successfully in other Adapters that use OTEL format.
I'm testing this against the Jaeger Docker image as such:
docker run --name jaeger \
-e COLLECTOR_OTLP_ENABLED=true \
-p 16686:16686 \
-p 4317:4317 \
-p 4318:4318 \
jaegertracing/all-in-one:1.35
(port 4318 is for HTTP, 4317 for gRPC)
Then running the go bin example for this otel adapter:
cd go
echo "this is a test" | go run bin/opentelemetry/main.go test/count_vowels.instr.wasm
For HTTP connections, the output is:
4
2023/09/21 22:08:42 failed to upload wasm traces to otel endpoint failed to send to http://localhost:4318/v1/traces: 400 Bad Request
For gRPC connections, the output is:
4
2023/09/21 22:11:15 failed to upload wasm traces to otel endpoint rpc error: code = Internal desc = grpc: error unmarshalling request: invalid length for TraceID
To prove the trace and span ID generator is working, I swapped out the HTTP endpoint for Honeycomb's and added our team API key to the header. Sending traces from the same program execution result in a successful upload:
Moving this to ready for review, assuming there's just some odd inconsistency with the Jaeger all-in-one server used to test.According to practically everywhere Jaeger & OpenTelemetry cross paths in docs and READMEs, Jaeger supports OTLP and has deprecated the exporters which used to provide translation to compatible traces.As mentioned in the comment below, Honeycomb's OTLP support works perfectly with the traces this Adapter is sending, so I think we're OK.Update:
This should now be in working condition for testing on Jaeger. Using the same commands in the comment below, this adapter will emit to Jaeger running in the example container.