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

Sync with upstream #50

Merged
merged 233 commits into from
Jul 24, 2024
Merged

Sync with upstream #50

merged 233 commits into from
Jul 24, 2024

Conversation

Ongman
Copy link
Collaborator

@Ongman Ongman commented Jul 10, 2024

here we:

  • pull a bunch of commits from upstream
  • remove a CODEOWNERS file as none of otel's maintainers are part of this particular repo

arielvalentin and others added 30 commits October 10, 2023 09:42
Instrumentations must not use transitive dependencies used by the library.

In this case, relying on the gruf library to load specific ActiveSupport extensions leaves the instrumentation vulnerable to bugs.

For this reason I have changed the code to use Enumerable methods instead of ActiveSupport extensions.

See open-telemetry/opentelemetry-ruby-contrib#686
* chore: Add tests for Rails 7.1

* fix: Rails 7.1 incompatabilities
… for db_statement (#682)

* feat!: fuscation for mysql2, dalli and pg

* feat!: update readme

* feat!: set db.statement option to obfuscate by default for mysql2, pg and dalli

Co-authored-by: Ariel Valentin <[email protected]>
* release: Release 12 gems

* opentelemetry-instrumentation-gruf 0.1.1 (was 0.1.0)
* opentelemetry-instrumentation-active_support 0.4.3 (was 0.4.2)
* opentelemetry-instrumentation-action_view 0.6.1 (was 0.6.0)
* opentelemetry-instrumentation-action_pack 0.7.1 (was 0.7.0)
* opentelemetry-instrumentation-active_job 0.6.1 (was 0.6.0)
* opentelemetry-instrumentation-active_record 0.6.3 (was 0.6.2)
* opentelemetry-instrumentation-dalli 0.25.0 (was 0.24.2)
* opentelemetry-instrumentation-delayed_job 0.22.0 (was 0.21.0)
* opentelemetry-instrumentation-faraday 0.23.3 (was 0.23.2)
* opentelemetry-instrumentation-mysql2 0.25.0 (was 0.24.3)
* opentelemetry-instrumentation-pg 0.26.0 (was 0.25.3)
* opentelemetry-instrumentation-rails 0.28.1 (was 0.28.0)

* ci: Trigger builds

* fix: Apply suggestions from code review

Co-authored-by: Josef Šimánek <[email protected]>

* fix: bump gem versions

* fix: bump gems

---------

Co-authored-by: Ariel Valentin <[email protected]>
Co-authored-by: Ariel Valentin <[email protected]>
Co-authored-by: Ariel Valentin <[email protected]>
Co-authored-by: Josef Šimánek <[email protected]>
* chore: Update CODEOWNERS

Add @simi and @kaylareopelle and approvers to the list
…) (#699)

* release: Release opentelemetry-instrumentation-all 0.51.0 (was 0.50.1)

* docs: Update all gem Changelog

---------

Co-authored-by: Ariel Valentin <[email protected]>
Co-authored-by: Ariel Valentin <[email protected]>
These can be just as slow as a query if not slower.

Co-authored-by: Jean Boussier <[email protected]>
…56.3) (#708)

* release: Release opentelemetry-instrumentation-trilogy 0.57.0 (was 0.56.3)

* Empty commit

* Release instrumentation-all as well.

---------

Co-authored-by: Ariel Valentin <[email protected]>
Co-authored-by: Francis Bogsanyi <[email protected]>
…#702)

Updates the requirements on [rubocop](https://github.com/rubocop/rubocop) to permit the latest version.
- [Release notes](https://github.com/rubocop/rubocop/releases)
- [Changelog](https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md)
- [Commits](rubocop/rubocop@v1.56.2...v1.57.1)

---
updated-dependencies:
- dependency-name: rubocop
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
….1 in /instrumentation/base (#701)

chore(deps-dev): update rubocop requirement from ~> 1.56.1 to ~> 1.57.1

Updates the requirements on [rubocop](https://github.com/rubocop/rubocop) to permit the latest version.
- [Release notes](https://github.com/rubocop/rubocop/releases)
- [Changelog](https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md)
- [Commits](rubocop/rubocop@v1.56.1...v1.57.1)

---
updated-dependencies:
- dependency-name: rubocop
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
….1 in /resource_detectors (#700)

chore(deps-dev): update rubocop requirement from ~> 1.56.1 to ~> 1.57.1

Updates the requirements on [rubocop](https://github.com/rubocop/rubocop) to permit the latest version.
- [Release notes](https://github.com/rubocop/rubocop/releases)
- [Changelog](https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md)
- [Commits](rubocop/rubocop@v1.56.1...v1.57.1)

---
updated-dependencies:
- dependency-name: rubocop
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
….1 in /propagator/ottrace (#698)

chore(deps-dev): update rubocop requirement from ~> 1.56.1 to ~> 1.57.1

Updates the requirements on [rubocop](https://github.com/rubocop/rubocop) to permit the latest version.
- [Release notes](https://github.com/rubocop/rubocop/releases)
- [Changelog](https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md)
- [Commits](rubocop/rubocop@v1.56.1...v1.57.1)

---
updated-dependencies:
- dependency-name: rubocop
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
….1 in /propagator/xray (#697)

chore(deps-dev): update rubocop requirement from ~> 1.56.1 to ~> 1.57.1

Updates the requirements on [rubocop](https://github.com/rubocop/rubocop) to permit the latest version.
- [Release notes](https://github.com/rubocop/rubocop/releases)
- [Changelog](https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md)
- [Commits](rubocop/rubocop@v1.56.1...v1.57.1)

---
updated-dependencies:
- dependency-name: rubocop
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
… deprecated in Rails 7.2 (#707)

* wrap call to depcrecated private API behind version conditional

* convert Rails version string to Gem::Version

* fix module access?

* check for synchronize method instead of Rails version

* add comment

---------

Co-authored-by: Ariel Valentin <[email protected]>
* release: Release 2 gems

* opentelemetry-instrumentation-grape 0.1.5 (was 0.1.4)
* opentelemetry-instrumentation-active_support 0.4.4 (was 0.4.3)

* ci: Force

---------

Co-authored-by: Ariel Valentin <[email protected]>
Co-authored-by: Ariel Valentin <[email protected]>
* added httpx opentelemetry adapter

* Update instrumentation/httpx/CHANGELOG.md

Co-authored-by: Ariel Valentin <[email protected]>

* Update instrumentation/httpx/README.md

Co-authored-by: Ariel Valentin <[email protected]>

* Update instrumentation/httpx/README.md

Co-authored-by: Ariel Valentin <[email protected]>

---------

Co-authored-by: Ariel Valentin <[email protected]>
Co-authored-by: Josef Šimánek <[email protected]>
The toys gem checks that all actions are passing before allowing
a release request to be opened, however only the CI builds are actually required.

This change limits the release request requirements to look specifically for CI builds
…elease) (#713)

* release: Release opentelemetry-instrumentation-httpx 0.1.0 (initial release)

* Update instrumentation/httpx/CHANGELOG.md
* feat!: Drop Rails 6.0 EOL

6.0 is no longer receiving maintenance, security, or feature updates as of 01 Jun 2023

Users who want to continue instrumentating Rails applications should pin to earlier versions of the instrumentation.

* squash: Fix test

* squash: gem version object instead of string

* Update README.md

Co-authored-by: Kayla Reopelle (she/her) <[email protected]>

* Update instrumentation/README.md

Co-authored-by: Kayla Reopelle (she/her) <[email protected]>

---------

Co-authored-by: Kayla Reopelle (she/her) <[email protected]>
arielvalentin and others added 26 commits June 17, 2024 21:57
* chore: bump ruby/setup-ruby from 1.180.0 to 1.180.1

Bumps [ruby/setup-ruby](https://github.com/ruby/setup-ruby) from 1.180.0 to 1.180.1.
- [Release notes](https://github.com/ruby/setup-ruby/releases)
- [Commits](ruby/setup-ruby@v1.180.0...v1.180.1)

---
updated-dependencies:
- dependency-name: ruby/setup-ruby
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>

* squash: bump test files

---------

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Ariel Valentin <[email protected]>
Co-authored-by: Ariel Valentin <[email protected]>
Bumps [dev-build-deploy/commit-me](https://github.com/dev-build-deploy/commit-me) from 1.4.1 to 1.5.0.
- [Release notes](https://github.com/dev-build-deploy/commit-me/releases)
- [Commits](dev-build-deploy/commit-me@v1.4.1...v1.5.0)

---
updated-dependencies:
- dependency-name: dev-build-deploy/commit-me
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Sort attributes alphabetically

* Verify port equivalence

* Add `http.url` to Excon instrumentation

---------

Co-authored-by: Ariel Valentin <[email protected]>
* release: Release 17 gems

* opentelemetry-helpers-mysql 0.1.1 (was 0.1.0)
* opentelemetry-helpers-sql-obfuscation 0.1.1 (was 0.1.0)
* opentelemetry-instrumentation-rdkafka 0.4.6 (was 0.4.5)
* opentelemetry-instrumentation-base 0.22.4 (was 0.22.3)
* opentelemetry-instrumentation-http_client 0.22.6 (was 0.22.5)
* opentelemetry-instrumentation-koala 0.20.5 (was 0.20.4)
* opentelemetry-instrumentation-dalli 0.25.3 (was 0.25.2)
* opentelemetry-instrumentation-ethon 0.21.7 (was 0.21.6)
* opentelemetry-instrumentation-excon 0.22.3 (was 0.22.2)
* opentelemetry-instrumentation-faraday 0.24.4 (was 0.24.3)
* opentelemetry-instrumentation-net_http 0.22.6 (was 0.22.5)
* opentelemetry-instrumentation-rack 0.24.5 (was 0.24.4)
* opentelemetry-instrumentation-redis 0.25.6 (was 0.25.5)
* opentelemetry-instrumentation-restclient 0.22.6 (was 0.22.5)
* opentelemetry-instrumentation-sidekiq 0.25.5 (was 0.25.4)
* opentelemetry-instrumentation-sinatra 0.23.5 (was 0.23.4)
* opentelemetry-processor-baggage 0.2.0 (was 0.1.0)

* ci: Force

---------

Co-authored-by: OpenTelemetry Bot <[email protected]>
Co-authored-by: Ariel Valentin <[email protected]>
This will allow users to subscribe to notifications for Server Ingress, Messaging, or clients

See open-telemetry/opentelemetry-ruby-contrib#957

Co-authored-by: Xuan <[email protected]>
Fixes open-telemetry/opentelemetry-ruby-contrib#1031

Faraday >= 1 changes where the #adapter method gets called, affecting
the RackBuilder patch in this gem.

Without this change, the tracer middleware gets added to the beginning
of the stack instead of the end, and explicitly adding the middleware
would cause it to get added twice.

This change patches `Connection#initialize` for Faraday >= 1 to preserve
the behavior we had with Faraday < 1. This is similar to the dd-trace-rb
change made in DataDog/dd-trace-rb#906.

There is some followup work here to explore moving the middleware to the
beginning of the stack instead of the end, but we can work on that
separately.
…was 0.5.1) (#1035)

* release: Release opentelemetry-instrumentation-active_support 0.5.2 (was 0.5.1)

* ci: Force

---------

Co-authored-by: OpenTelemetry Bot <[email protected]>
Co-authored-by: Ariel Valentin <[email protected]>
* fix: Include span kind in AS helper

This change fixes a bug where the kind parameter was not passed along to the subscriber object

* squash: add test coverage

* squash: updated example
* perf: Reduce Context Allocations in ActiveJob

After seeing changes to Rack::Events that reduced the number of active contexts required for ingress spans,
I decided to apply the same changes to ActiveJob

* doc: Update default.rb

Co-authored-by: Steven Harman <[email protected]>

---------

Co-authored-by: Steven Harman <[email protected]>
…was 0.5.2) (#1037)

* release: Release opentelemetry-instrumentation-active_support 0.5.3 (was 0.5.2)

* ci: Force

---------

Co-authored-by: OpenTelemetry Bot <[email protected]>
Co-authored-by: Ariel Valentin <[email protected]>
* feat: Make Rack install optional for sinatra

This allows for scenarios when there are multiple Rack Applications mounted in the same builder and you want to avoid installing the Rack Events middleware multiple times in the stack.

A common example is a Rails application that mounts a Sinatra App in the routes file:

```ruby

Rails.application.routes.draw do
  mount Sinatra::Application, at: '/sinatra'
end

```

This results in the Rack middleware being installed multiple times.

Once by the Rails ActionPack instrumentation and then by the Sinatra application leading to multiple Rack spans being created in the same trace.

This change allows you to avoid this by setting the install_rack option to false when using Sinatra instrumentation and allowing users to manually configure the middleware in the stack as they see fit.

* very strange

* squash: will this work

* squash: wtf

* squash: fix tests

* squash: Add docs PR feedback

* squash: add example

* squash: add more test

* Update instrumentation/sinatra/lib/opentelemetry/instrumentation/sinatra/instrumentation.rb

Co-authored-by: Kayla Reopelle (she/her) <[email protected]>

* Update instrumentation/sinatra/test/opentelemetry/instrumentation/sinatra_test.rb

Co-authored-by: Kayla Reopelle (she/her) <[email protected]>

---------

Co-authored-by: Kayla Reopelle (she/her) <[email protected]>
This was actually a breaking change, and despite `:fix!` being used in
the commit, the release tooling failed to mark the change as breaking.

Refs: #648, #655
* feat!: Custom ActiveSupport Span Names

The current implementation of ActiveSupport instrumentation sets the span name to the reverse tokenized name,
e.g. `render_template.action_view` is converted to `action_view render_template`

This default behavior can sometimes seem counter intuitive for users who use ActiveSupport Notifications to instrument their own code
or users who are familiar with Rails instrumentation names.

This change does a few things to address the issues listed above:

1. Uses the notification name by default as oppossed to the legacy span name
2. Allows users to provide a custom span name formatter lambda
3. Provides a proc with backward compatible span name formatter `OpenTelemetry::Instrumentation::ActiveSupport::LEGACY_NAME_FORMATTER`

See open-telemetry/opentelemetry-ruby-contrib#957

* squash: Bolt on a few things

* squash: would be great if the tests passed

* squash: Linter
…on optional (#1043)

* feat: optional rack instrumentation install by grape instrumentation

In some circumstances we may want to defer the installation of the rack
instrumentation that is orchestrated during the grape instrumentation
installation. For example, we may want to customise the installation of
the rack instrumentation or we can rely on the installation being
orchestrated by another framework's instrumentation (such as when Grape
is mounted with Rails).

This change allows for Grape to skip the installation of the Rack
instrumentation so that it can manually installed at a later time.

* move the comments above the class name for RubyDocs
* release: Release 9 gems

* opentelemetry-instrumentation-racecar 0.3.3 (was 0.3.2)
* opentelemetry-instrumentation-rdkafka 0.4.7 (was 0.4.6)
* opentelemetry-instrumentation-active_job 0.7.2 (was 0.7.1)
* opentelemetry-instrumentation-bunny 0.21.4 (was 0.21.3)
* opentelemetry-instrumentation-aws_sdk 0.5.3 (was 0.5.2)
* opentelemetry-instrumentation-delayed_job 0.22.3 (was 0.22.2)
* opentelemetry-instrumentation-que 0.8.2 (was 0.8.1)
* opentelemetry-instrumentation-ruby_kafka 0.21.2 (was 0.21.1)
* opentelemetry-instrumentation-sidekiq 0.25.6 (was 0.25.5)

* ci: Force

---------

Co-authored-by: OpenTelemetry Bot <[email protected]>
Co-authored-by: Ariel Valentin <[email protected]>
* release: Release 5 gems

* opentelemetry-instrumentation-grape 0.2.0 (was 0.1.8)
* opentelemetry-instrumentation-sinatra 0.24.0 (was 0.23.5)
* opentelemetry-instrumentation-active_support 0.6.0 (was 0.5.3)
* opentelemetry-instrumentation-rails 0.31.0 (was 0.30.2)
* opentelemetry-instrumentation-all 0.62.0 (was 0.61.0)

* feat: Bump Versions

---------

Co-authored-by: OpenTelemetry Bot <[email protected]>
Co-authored-by: Ariel Valentin <[email protected]>
…cecar Instrumentation (#1040)

fix: suppress deprecation warning in Racecar Instrumentation

Use the text_map_getter because accessing kafka message headers with
a symbol key is now deprecated in rdkafka.

Co-authored-by: Ariel Valentin <[email protected]>
….3) (#1055)

* release: Release opentelemetry-instrumentation-racecar 0.3.4 (was 0.3.3)

* ci: force

---------

Co-authored-by: OpenTelemetry Bot <[email protected]>
Co-authored-by: Kayla Reopelle <[email protected]>
@FangjianLu FangjianLu self-requested a review July 24, 2024 18:17
Copy link

@FangjianLu FangjianLu left a comment

Choose a reason for hiding this comment

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

LGTM!

@Ongman Ongman merged commit 78858b8 into main Jul 24, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.