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

chore(deps): update opentelemetry to v1.16.0 #14355

Merged
merged 2 commits into from
Jun 27, 2024

Conversation

renovate-bot
Copy link
Contributor

@renovate-bot renovate-bot commented Jun 21, 2024

Mend Renovate

This PR contains the following updates:

Package Type Update Change
io_opentelemetry_cpp http_archive minor v1.15.0 -> v1.16.0
open-telemetry/opentelemetry-cpp minor v1.15.0 -> v1.16.0

Release Notes

open-telemetry/opentelemetry-cpp (io_opentelemetry_cpp)

v1.16.0: release

Compare Source

v1.16.0 release

Release of core packages

  • opentelemetry-api
  • opentelemetry-sdk

and exporter packages:

  • opentelemetry-exporter-otlp (gRPC + HTTP/JSON)
  • opentelemetry-exporter-prometheus
What's Changed
Important changes
  • [API/SDK] Provider cleanup
    #​2664
    • Before this fix:
      • The API class opentelemetry::trace::Tracer exposed methods such
        as ForceFlush(), ForceFlushWithMicroseconds(), Close()
        and CloseWithMicroseconds().
      • These methods are meant to be used when configuring the SDK,
        and should not be part of the API. Exposing them was an oversight.
      • Two of these methods are virtual, and therefore part of the ABI.
    • After this fix:
      • In OPENTELEMETRY_ABI_VERSION_NO 1, nothing is changed,
        because removing this code would break the ABI.
      • In OPENTELEMETRY_ABI_VERSION_NO 2, these methods are moved
        from the API to the SDK. This is a breaking change for ABI version 2,
        which is still experimental.
    • In all cases, instrumenting an application should not
      invoke flush or close on a tracer, do not use these methods.
Breaking changes
  • [API/SDK] Provider cleanup
    #​2664
    • Before this fix:
      • SDK factory methods such as:
        • opentelemetry::sdk::trace::TracerProviderFactory::Create()
        • opentelemetry::sdk::metrics::MeterProviderFactory::Create()
        • opentelemetry::sdk::logs::LoggerProviderFactory::Create()
        • opentelemetry::sdk::logs::EventLoggerProviderFactory::Create()
          returned an API object (opentelemetry::trace::TracerProvider)
          to the caller.
    • After this fix, these methods return an SDK level object
      (opentelemetry::sdk::trace::TracerProvider) to the caller.
    • Returning an SDK object is necessary for the application to
      cleanup and invoke SDK level methods, such as ForceFlush(),
      on a provider.
    • The application code that configures the SDK, by calling
      the various provider factories, may need adjustment.
    • All the examples have been updated, and in particular no
      longer perform static_cast do convert an API object to an SDK object.
      Please refer to examples for guidance on how to adjust.
    • If adjusting application code is impractical,
      an alternate and temporary solution is to build with option
      WITH_DEPRECATED_SDK_FACTORY=ON in CMake.
    • Option WITH_DEPRECATED_SDK_FACTORY=ON will allow to build code
      without application changes, posponing changes for later.
    • WITH_DEPRECATED_SDK_FACTORY=ON is temporary, only to provide
      an easier migration path. Expect this flag to be removed,
      as early as by the next release.
Notes on experimental features
  • #​2372
    introduced MeterProvider::SetExemplar() which accepts an
    ExemplarFilterType enumeration with kAlwaysOff, kAlwaysOn and
    kTraceBased.
New Contributors

Full Changelog: open-telemetry/opentelemetry-cpp@v1.15.0...v1.16.0


Configuration

📅 Schedule: Branch creation - "every weekday" (UTC), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about these updates again.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Mend Renovate. View repository job log here.


This change is Reviewable

@renovate-bot renovate-bot requested a review from a team as a code owner June 21, 2024 18:54
@dpebot
Copy link
Collaborator

dpebot commented Jun 21, 2024

/gcbrun

Copy link

codecov bot commented Jun 21, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 93.06%. Comparing base (a991917) to head (b71bc24).
Report is 2 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main   #14355   +/-   ##
=======================================
  Coverage   93.06%   93.06%           
=======================================
  Files        2191     2191           
  Lines      193212   193212           
=======================================
  Hits       179821   179821           
  Misses      13391    13391           

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

@dbolduc dbolduc requested a review from a team as a code owner June 26, 2024 17:29
@dpebot
Copy link
Collaborator

dpebot commented Jun 26, 2024

/gcbrun

1 similar comment
@dpebot
Copy link
Collaborator

dpebot commented Jun 26, 2024

/gcbrun

Copy link
Contributor

@coryan coryan left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we separate these changes to a PR preparing for the update?

Comment on lines 193 to 197
auto provider = opentelemetry::sdk::trace::TracerProviderFactory::Create(
std::move(processor));
std::shared_ptr<opentelemetry::trace::TracerProvider> api_provider =
std::move(provider);
opentelemetry::trace::Provider::SetTracerProvider(std::move(api_provider));
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Consider:

Suggested change
auto provider = opentelemetry::sdk::trace::TracerProviderFactory::Create(
std::move(processor));
std::shared_ptr<opentelemetry::trace::TracerProvider> api_provider =
std::move(provider);
opentelemetry::trace::Provider::SetTracerProvider(std::move(api_provider));
opentelemetry::trace::Provider::SetTracerProvider(
std::shared_ptr<opentelemetry::trace::TracerProvider(
opentelemetry::sdk::trace::TracerProviderFactory::Create(std::move(processor))));

@@ -42,7 +42,7 @@ opentelemetry::nostd::shared_ptr<opentelemetry::trace::Span> StartPublishSpan(
{{sc::kMessagingSystem, "gcp_pubsub"},
{sc::kMessagingDestinationName, topic.topic_id()},
{"gcp.project_id", topic.project_id()},
{sc::kMessagingOperation, "create"},
{/*sc::kMessagingOperationType=*/"messaging.operation.type", "create"},
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we have this field, since it is no longer a "standard"?

Comment on lines 58 to 59
{/*sc::kRpcMessageType=*/"rpc.message.type", "RECEIVED"},
{/*sc::kRpcMessageId=*/"rpc.message.id", count},
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ditto, if these names are no longer part of the semantic conventions, maybe we should drop them? Or maybe there is a newer name to represent these things?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These names are the new hotness. The symbols are not available in the oldest OTel we support (v1.9.1), so we hardcode their values.

@dbolduc
Copy link
Member

dbolduc commented Jun 26, 2024

Can we separate these changes to a PR preparing for the update?

Done. #14372 #14373. I will rebase this when those other PRs go through.

I think the changes to the Dockerfiles to set -DWITH_DEPRECATED_SDK_FACTORY=OFF belongs in this PR. (even though that will probably make the rebase annoying)

@dpebot
Copy link
Collaborator

dpebot commented Jun 27, 2024

/gcbrun

@dbolduc dbolduc force-pushed the renovate/opentelemetry branch from 4acfd01 to b71bc24 Compare June 27, 2024 16:44
@dpebot
Copy link
Collaborator

dpebot commented Jun 27, 2024

/gcbrun

@dbolduc dbolduc enabled auto-merge (squash) June 27, 2024 16:53
Copy link

Edited/Blocked Notification

Renovate will not automatically rebase this PR, because it does not recognize the last commit author and assumes somebody else may have edited the PR.

You can manually request rebase by checking the rebase/retry box above.

⚠️ Warning: custom changes will be lost.

@dbolduc dbolduc merged commit d01a111 into googleapis:main Jun 27, 2024
66 checks passed
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.

4 participants