open-telemetry / open-telemetry/opentelemetry-cpp-contrib

opentelemetry-cpp-contrib nginx instrumentation test cases are failing on linux/ppc64le arch

Open
#212 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug
Dominant language
Python
Stars
153
Forks
184
Avg merge
2d 9h
Merged PRs (30d)
26

Description

Hi there,
I'm trying to build-test the nginx instrumentation on linux/ppc64le VM.
the test cases are failing because the otel/opentelemetry-collector:0.26.0 docker image isnt' available for ppc64le.
the support for ppc64le was added in v0.57.2.
but when I test nginx instrumentation with otel/opentelemetry-collector:0.58.0, the test cases are failing with following error.
18) test HTTP upstream | span is associated with parent (InstrumentationTest)             test/instrumentation_test.exs:279                                                     ** (RuntimeError) timed out waiting for traces                                        code: test_parent_span(@host, ctx)                                                    stacktrace:                                                                             test/instrumentation_test.exs:62: InstrumentationTest.read_traces/4                   test/instrumentation_test.exs:256: InstrumentationTest.test_parent_span/2             test/instrumentation_test.exs:280: (test)                                                                                                                                                                                                                                                                                                 19) test HTTP upstream | test b3 propagation (InstrumentationTest)                        test/instrumentation_test.exs:329                                                     ** (RuntimeError) timed out waiting for traces                                        code: [trace] = read_traces(trace_file, 1)                                            stacktrace:                                                                             test/instrumentation_test.exs:62: InstrumentationTest.read_traces/4                   test/instrumentation_test.exs:338: (test)                                                                                                                                                                                                                                                                                                 20) test Accessing a route with disabled trustIncomingsSpans is not associated with a parent (InstrumentationTest)                                                                                                      test/instrumentation_test.exs:422                                                     ** (RuntimeError) timed out waiting for traces                                        code: [trace] = read_traces(trace_file, 1)                                            stacktrace:                                                                             test/instrumentation_test.exs:62: InstrumentationTest.read_traces/4                   test/instrumentation_test.exs:432: (test)                                                                                                                         [+] Running 5/5                                                                      ⠿ Container test-node-backend-1    Removed 1.5ss                                      ⠿ Container test-php-backend-1     Removed 1.9ss                                      ⠿ Container test-collector-1       Removed 1.7ss                                      ⠿ Container test-nginx-1           Removed 1.6ss                                      ⠿ Network test_default             Removed 0.3ss                                                                                                                                                                                                              Finished in 29.1 seconds                                                             22 tests, 20 failures Adilhusain Shaikh Today at 5:33 PM.  grouping

Steps to reproduce
clone repo
cd into it
cd test/instrumentation
mix dockerfiles .. ubuntu-20.04:mainline
docker build -t otel-nginx-test/nginx -f ../Dockerfile.ubuntu-20.04.mainline ../..
docker build -t otel-nginx-test/express-backend -f ../backend/simple_express/Dockerfile ../backend/simple_express
sed -i "s/0.26.0/0.58.0/" ../docker-compose.yml
mix test

also try out the samething on x86 VM and observe the same error

What is the expected behavior?
the test cases should pass.

What is the actual behavior?
the test cases are failing.

Additional context
os: rhel 8.5
arch: ppc64le

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the failure from test/instrumentation with the commands in the issue, then inspect test/instrumentation_test.exs and test/docker-compose.yml around the collector image and trace timeouts. Compare behavior on ppc64le and x86, and consider the reported collector versions. Done means the nginx instrumentation test suite completes without trace timeouts on the affected architecture.

Written by the indexing model from the issue text.

Assessment

Tech stack
docker, elixir, linux, nginx
Domain
infrastructure, observability, testing-qa
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.