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

[service] fix bug with inconsistent resources #11578

Merged

Conversation

codeboten
Copy link
Contributor

The tracer and logger provider were instantiating different resources objects that didn't have a service.instance.id attribute. This change fixes that by instantiating the SDK in the service and passing it to the factory via the telemetry.Settings struct.

This also removes the duplicate code to instantiate the SDK multiple times, which will be useful when we move to instantiating MeterProvider via the config SDK. This bug is blocking the change to bump up the dependency on the config package.

There are a few alternatives that were considered:

  1. could set the resource's service.instance.id on the config object instead. this seemed messy as it would be editing the config struct and the instantiation of the SDK would remain duplicated.
  2. update the factory to pass in a resource object option, i didn't want to update the NewFactory func.
  3. update the CreateLogger, CreateTracerProvider to receive either a resource or sdk parameter, both of those seemed incorrect as well.

The tracer and logger provider were instantiating different resources objects
that didn't have a `service.instance.id` attribute. This change fixes that
by instantiating the SDK in the service and passing it to the factory via
the telemetry.Settings struct.

This also removes the duplicate code to instantiate the SDK multiple times, which
will be useful when we move to instantiating MeterProvider via the config SDK. This
bug is blocking the change to bump up the dependency on the config package.

There are a few alternatives that were considered:
1. could set the resource's service.instance.id on the config object instead. this
   seemed messy as it would be editing the config struct and the instantiation of
   the SDK would remain duplicated.
2. update the factory to pass in a resource object option, i didn't want to update
   the NewFactory func.
3. update the CreateLogger, CreateTracerProvider to receive either a resource or
   sdk parameter, both of those seemed incorrect as well.

Signed-off-by: Alex Boten <[email protected]>
Signed-off-by: Alex Boten <[email protected]>
@codeboten codeboten marked this pull request as ready for review October 30, 2024 21:36
@codeboten codeboten requested a review from a team as a code owner October 30, 2024 21:36
@codeboten codeboten requested a review from songy23 October 30, 2024 21:36
Copy link

codecov bot commented Oct 30, 2024

Codecov Report

Attention: Patch coverage is 98.00000% with 1 line in your changes missing coverage. Please review.

Please upload report for BASE (main@8265197). Learn more about missing BASE report.
Report is 2 commits behind head on main.

Files with missing lines Patch % Lines
service/telemetry/tracer.go 80.00% 1 Missing ⚠️
Additional details and impacted files
@@           Coverage Diff           @@
##             main   #11578   +/-   ##
=======================================
  Coverage        ?   91.51%           
=======================================
  Files           ?      441           
  Lines           ?    23919           
  Branches        ?        0           
=======================================
  Hits            ?    21889           
  Misses          ?     1652           
  Partials        ?      378           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

service/telemetry/factory.go Show resolved Hide resolved
Signed-off-by: Alex Boten <[email protected]>
@codeboten codeboten merged commit 2d9d376 into open-telemetry:main Oct 31, 2024
49 checks passed
@codeboten codeboten deleted the codeboten/fix-resource-descrepancy branch October 31, 2024 17:27
@github-actions github-actions bot added this to the next release milestone Oct 31, 2024
djaglowski pushed a commit to djaglowski/opentelemetry-collector that referenced this pull request Nov 21, 2024
The tracer and logger provider were instantiating different resources
objects that didn't have a `service.instance.id` attribute. This change
fixes that by instantiating the SDK in the service and passing it to the
factory via the telemetry.Settings struct.

This also removes the duplicate code to instantiate the SDK multiple
times, which will be useful when we move to instantiating MeterProvider
via the config SDK. This bug is blocking the change to bump up the
dependency on the config package.

There are a few alternatives that were considered:
1. could set the resource's service.instance.id on the config object
instead. this seemed messy as it would be editing the config struct and
the instantiation of the SDK would remain duplicated.
2. update the factory to pass in a resource object option, i didn't want
to update the NewFactory func.
3. update the CreateLogger, CreateTracerProvider to receive either a
resource or sdk parameter, both of those seemed incorrect as well.

---------

Signed-off-by: Alex Boten <[email protected]>
HongChenTW pushed a commit to HongChenTW/opentelemetry-collector that referenced this pull request Dec 19, 2024
The tracer and logger provider were instantiating different resources
objects that didn't have a `service.instance.id` attribute. This change
fixes that by instantiating the SDK in the service and passing it to the
factory via the telemetry.Settings struct.

This also removes the duplicate code to instantiate the SDK multiple
times, which will be useful when we move to instantiating MeterProvider
via the config SDK. This bug is blocking the change to bump up the
dependency on the config package.

There are a few alternatives that were considered:
1. could set the resource's service.instance.id on the config object
instead. this seemed messy as it would be editing the config struct and
the instantiation of the SDK would remain duplicated.
2. update the factory to pass in a resource object option, i didn't want
to update the NewFactory func.
3. update the CreateLogger, CreateTracerProvider to receive either a
resource or sdk parameter, both of those seemed incorrect as well.

---------

Signed-off-by: Alex Boten <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants