Skip to content

Attempt to create new Tracer changes name and version of existing Tracers #1307

@sirzooro

Description

@sirzooro

Describe your environment
CentOS 8
gcc 10.3.1
opentelemetry-cpp built from main branch on March 25th, configured using this command:
cmake -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DBUILD_SHARED_LIBS=ON -DWITH_OTLP=ON -DWITH_OTLP_GRPC=OFF -DWITH_ZPAGES=ON -DCMAKE_INSTALL_PREFIX=/usr ..
App code is compiled using C++11.

Steps to reproduce
Code creates TracerProvider using code from samples, creates two different Tracers and uses them to create some spans:

auto tracer_provider = opentelemetry::nostd::shared_ptr<opentelemetry::trace::TracerProvider>
    (new opentelemetry::sdk::trace::TracerProvider(std::move(batch_processor), resource, std::move(always_on_sampler)));
opentelemetry::trace::Provider::SetTracerProvider(tracer_provider);

auto tracer1 = opentelemetry::trace::Provider::GetTracerProvider()->GetTracer("Lib1", "1.0");
auto tracer2 = opentelemetry::trace::Provider::GetTracerProvider()->GetTracer("Lib2", "1.1");

auto span1 = tracer1->StartSpan("Span1");
auto span2 = tracer2->StartSpan("Span2");
span1->End();
span2->End();

What is the expected behavior?
Both spans have otel.library.name and otel.library.version set to values provided when parent Tracer is created.

What is the actual behavior?
All spans have otel.library.name and otel.library.version set to the same values. It seems that pair with lexicographically smallest name wins - first I created 2 Tracers with names "Ne..." and "NS..." and "Ne..." one won. Then I added 3rd "C..." and this one was selected.

Metadata

Metadata

Assignees

Labels

bugSomething isn't workinggood first issueGood for newcomershelp wantedGood for taking. Extra help will be provided by maintainers

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions