Skip to content

Commit

Permalink
Merge branch '2.0' into tonycthsu/remove-spand-id-alias
Browse files Browse the repository at this point in the history
  • Loading branch information
TonyCTHsu committed Jan 9, 2024
2 parents c583c1f + 6ea3035 commit c52cc94
Show file tree
Hide file tree
Showing 574 changed files with 4,593 additions and 2,910 deletions.
2 changes: 1 addition & 1 deletion .circleci/images/primary/Dockerfile-3.3.0
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Note: See the "Publishing updates to images" note in ./README.md for how to publish new builds of this container image

FROM ruby:3.3-rc-bullseye
FROM ruby:3.3.0-bullseye

# Make apt non-interactive
RUN echo 'APT::Get::Assume-Yes "true";' > /etc/apt/apt.conf.d/90circleci \
Expand Down
62 changes: 31 additions & 31 deletions .github/CODEOWNERS
Validating CODEOWNERS rules …
Original file line number Diff line number Diff line change
Expand Up @@ -5,38 +5,38 @@
/docs/GettingStarted.md @DataDog/documentation

# Library
lib/datadog/appsec/* @DataDog/asm-ruby
lib/datadog/appsec.rb @DataDog/asm-ruby
lib/datadog/tracing/* @DataDog/tracing-ruby
lib/datadog/tracing.rb @DataDog/tracing-ruby
lib/datadog/opentelemetry/* @DataDog/tracing-ruby
lib/datadog/opentelemetry.rb @DataDog/tracing-ruby
lib/datadog/opentracer/* @DataDog/tracing-ruby
lib/datadog/opentracer.rb @DataDog/tracing-ruby
lib-injection/* @DataDog/tracing-ruby
lib/datadog/profiling/* @DataDog/profiling-rb
lib/datadog/profiling.rb @DataDog/profiling-rb
ext/* @DataDog/profiling-rb
/lib/datadog/appsec/ @DataDog/asm-ruby
/lib/datadog/appsec.rb @DataDog/asm-ruby
/lib/datadog/tracing/ @DataDog/tracing-ruby
/lib/datadog/tracing.rb @DataDog/tracing-ruby
/lib/datadog/opentelemetry/ @DataDog/tracing-ruby
/lib/datadog/opentelemetry.rb @DataDog/tracing-ruby
/lib/datadog/opentracer/ @DataDog/tracing-ruby
/lib/datadog/opentracer.rb @DataDog/tracing-ruby
/lib-injection/ @DataDog/tracing-ruby
/lib/datadog/profiling/ @DataDog/profiling-rb
/lib/datadog/profiling.rb @DataDog/profiling-rb
/ext/ @DataDog/profiling-rb

# RBS signatures
sig/datadog/appsec/* @DataDog/asm-ruby
sig/datadog/appsec.rbs @DataDog/asm-ruby
sig/datadog/tracing/* @DataDog/tracing-ruby
sig/datadog/tracing.rbs @DataDog/tracing-ruby
sig/datadog/opentelemetry/* @DataDog/tracing-ruby
sig/datadog/opentelemetry.rbs @DataDog/tracing-ruby
sig/datadog/opentracer/* @DataDog/tracing-ruby
sig/datadog/opentracer.rbs @DataDog/tracing-ruby
sig/datadog/profiling/* @DataDog/profiling-rb
sig/datadog/profiling.rbs @DataDog/profiling-rb
/sig/datadog/appsec/ @DataDog/asm-ruby
/sig/datadog/appsec.rbs @DataDog/asm-ruby
/sig/datadog/tracing/ @DataDog/tracing-ruby
/sig/datadog/tracing.rbs @DataDog/tracing-ruby
/sig/datadog/opentelemetry/ @DataDog/tracing-ruby
/sig/datadog/opentelemetry.rbs @DataDog/tracing-ruby
/sig/datadog/opentracer/ @DataDog/tracing-ruby
/sig/datadog/opentracer.rbs @DataDog/tracing-ruby
/sig/datadog/profiling/ @DataDog/profiling-rb
/sig/datadog/profiling.rbs @DataDog/profiling-rb

# Specs
spec/datadog/appsec/* @DataDog/asm-ruby
spec/datadog/tracing/* @DataDog/tracing-ruby
spec/datadog/tracing_spec.rb @DataDog/tracing-ruby
spec/datadog/opentelemetry/* @DataDog/tracing-ruby
spec/datadog/opentelemetry_spec.rb @DataDog/tracing-ruby
spec/datadog/opentracer/* @DataDog/tracing-ruby
spec/datadog/opentracer.rb @DataDog/tracing-ruby
spec/datadog/profiling/* @DataDog/profiling-rb
spec/datadog/profiling_spec.rb @DataDog/profiling-rb
/spec/datadog/appsec/ @DataDog/asm-ruby
/spec/datadog/tracing/ @DataDog/tracing-ruby
/spec/datadog/tracing_spec.rb @DataDog/tracing-ruby
/spec/datadog/opentelemetry/ @DataDog/tracing-ruby
/spec/datadog/opentelemetry_spec.rb @DataDog/tracing-ruby
/spec/datadog/opentracer/ @DataDog/tracing-ruby
/spec/datadog/opentracer.rb @DataDog/tracing-ruby
/spec/datadog/profiling/ @DataDog/profiling-rb
/spec/datadog/profiling_spec.rb @DataDog/profiling-rb
2 changes: 1 addition & 1 deletion .gitlab-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ promote-image:
script:
# This would install all dependencies
- .gitlab/prepare_pkg_directory.sh
- ruby pkg/install_ddtrace_deps.rb debase-ruby_core_source libdatadog libddwaf datadog-ci msgpack ffi ddtrace
- ruby pkg/install_ddtrace_deps.rb debase-ruby_core_source libdatadog libddwaf msgpack ffi ddtrace
artifacts:
paths:
- pkg
Expand Down
50 changes: 43 additions & 7 deletions Rakefile
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,12 @@ TEST_METADATA = {
'appsec:main' => {
'' => '✅ 2.1 / ✅ 2.2 / ✅ 2.3 / ✅ 2.4 / ✅ 2.5 / ✅ 2.6 / ✅ 2.7 / ✅ 3.0 / ✅ 3.1 / ✅ 3.2 / ✅ 3.3 / ✅ jruby'
},
'profiling:main' => {
'' => '✅ 2.1 / ✅ 2.2 / ✅ 2.3 / ✅ 2.4 / ✅ 2.5 / ✅ 2.6 / ✅ 2.7 / ✅ 3.0 / ✅ 3.1 / ✅ 3.2 / ✅ 3.3 / ✅ jruby'
},
'profiling:ractors' => {
'' => '❌ 2.1 / ❌ 2.2 / ❌ 2.3 / ❌ 2.4 / ❌ 2.5 / ❌ 2.6 / ❌ 2.7 / ✅ 3.0 / ✅ 3.1 / ✅ 3.2 / ✅ 3.3 / ✅ jruby'
},
'contrib' => {
'' => '✅ 2.1 / ✅ 2.2 / ✅ 2.3 / ✅ 2.4 / ✅ 2.5 / ✅ 2.6 / ✅ 2.7 / ✅ 3.0 / ✅ 3.1 / ✅ 3.2 / ✅ 3.3 / ✅ jruby'
},
Expand Down Expand Up @@ -313,20 +319,16 @@ desc 'Run RSpec'
namespace :spec do
task all: [:main, :benchmark,
:rails, :railsredis, :railsredis_activesupport, :railsactivejob,
:elasticsearch, :http, :redis, :sidekiq, :sinatra, :hanami, :hanami_autoinstrument]
:elasticsearch, :http, :redis, :sidekiq, :sinatra, :hanami, :hanami_autoinstrument,
:profiling]

desc '' # "Explicitly hiding from `rake -T`"
RSpec::Core::RakeTask.new(:main) do |t, args|
t.pattern = 'spec/**/*_spec.rb'
t.exclude_pattern = 'spec/**/{contrib,benchmark,redis,opentracer,auto_instrument,opentelemetry}/**/*_spec.rb,'\
t.exclude_pattern = 'spec/**/{contrib,benchmark,redis,opentracer,auto_instrument,opentelemetry,profiling}/**/*_spec.rb,'\
' spec/**/{auto_instrument,opentelemetry}_spec.rb'
t.rspec_opts = args.to_a.join(' ')
end
if RUBY_ENGINE == 'ruby' && OS.linux? && Gem::Version.new(RUBY_VERSION) >= Gem::Version.new('2.3.0')
# "bundle exec rake compile" currently only works on MRI Ruby on Linux
Rake::Task[:main].enhance([:clean])
Rake::Task[:main].enhance([:compile])
end

RSpec::Core::RakeTask.new(:benchmark) do |t, args|
t.pattern = 'spec/ddtrace/benchmark/**/*_spec.rb'
Expand Down Expand Up @@ -525,6 +527,40 @@ namespace :spec do
end

task appsec: [:'appsec:all']

namespace :profiling do
task all: [:main, :ractors]

task :compile_native_extensions do
# "bundle exec rake compile" currently only works on MRI Ruby on Linux
if RUBY_ENGINE == 'ruby' && OS.linux? && Gem::Version.new(RUBY_VERSION) >= Gem::Version.new('2.3.0')
Rake::Task[:clean].invoke
Rake::Task[:compile].invoke
end
end

# Datadog Profiling main specs without Ractor creation
# NOTE: Ractor creation will transition the entire Ruby VM into multi-ractor mode. This cannot be undone
# and, as such, may introduce side-effects between tests and make them flaky depending on order of
# execution. By splitting in two separate suites, the side-effect impact should be mitigated as
# the non-ractor VM will never trigger the transition into multi-ractor mode.
desc '' # "Explicitly hiding from `rake -T`"
RSpec::Core::RakeTask.new(:main) do |t, args|
t.pattern = 'spec/datadog/profiling/**/*_spec.rb,spec/datadog/profiling_spec.rb'
t.rspec_opts = [*args.to_a, '-t ~ractors'].join(' ')
end

desc '' # "Explicitly hiding from `rake -T`"
RSpec::Core::RakeTask.new(:ractors) do |t, args|
t.pattern = 'spec/datadog/profiling/**/*_spec.rb'
t.rspec_opts = [*args.to_a, '-t ractors'].join(' ')
end

# Make sure each profiling test suite has a dependency on compiled native extensions
Rake::Task[:all].prerequisite_tasks.each { |t| t.enhance([:compile_native_extensions]) }
end

task profiling: [:'profiling:all']
end

if defined?(RuboCop::RakeTask)
Expand Down
1 change: 0 additions & 1 deletion Steepfile
Original file line number Diff line number Diff line change
Expand Up @@ -122,7 +122,6 @@ target :ddtrace do
ignore 'lib/datadog/core/transport/http/env.rb'
ignore 'lib/datadog/core/transport/http/response.rb'
ignore 'lib/datadog/core/utils.rb'
ignore 'lib/datadog/core/utils/compression.rb'
ignore 'lib/datadog/core/utils/forking.rb'
ignore 'lib/datadog/core/utils/hash.rb' # Refinement module
ignore 'lib/datadog/core/utils/network.rb'
Expand Down
8 changes: 7 additions & 1 deletion benchmarks/profiler_sample_loop_v2.rb
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,13 @@ class ProfilerSampleLoopBenchmark
PROFILER_OVERHEAD_STACK_THREAD = Thread.new { sleep }

def create_profiler
@recorder = Datadog::Profiling::StackRecorder.new(cpu_time_enabled: true, alloc_samples_enabled: true)
@recorder = Datadog::Profiling::StackRecorder.new(
cpu_time_enabled: true,
alloc_samples_enabled: false,
heap_samples_enabled: false,
heap_size_enabled: false,
timeline_enabled: false,
)
@collector = Datadog::Profiling::Collectors::ThreadContext.new(
recorder: @recorder, max_frames: 400, tracer: nil, endpoint_collection_enabled: false, timeline_enabled: false
)
Expand Down
3 changes: 0 additions & 3 deletions ddtrace.gemspec
Original file line number Diff line number Diff line change
Expand Up @@ -68,8 +68,5 @@ Gem::Specification.new do |spec|
# When updating the version here, please also update the version in `native_extension_helpers.rb` (and yes we have a test for it)
spec.add_dependency 'libdatadog', '~> 5.0.0.1.0'

# used for CI visibility product until the next major version
spec.add_dependency 'datadog-ci', '~> 0.5.0'

spec.extensions = ['ext/ddtrace_profiling_native_extension/extconf.rb', 'ext/ddtrace_profiling_loader/extconf.rb']
end
10 changes: 0 additions & 10 deletions docs/Compatibility.md
Original file line number Diff line number Diff line change
Expand Up @@ -108,14 +108,6 @@ For a list of available integrations, and their configuration options, refer to
| Stripe | `stripe` | `>= 5.15.0` | `>= 5.15.0` | [Link][47] | [Link](https://github.com/stripe/stripe-ruby) |
| Sucker Punch | `sucker_punch` | `>= 2.0` | `>= 2.0` | [Link][48] | [Link](https://github.com/brandonhilkert/sucker_punch) |

### CI visibility integrations

These are the available CI visibility integrations:

| Name | Key | Versions Supported: MRI | Versions Supported: JRuby | How to configure | Gem source |
|-----------|------------|-------------------------|---------------------------|---------------------|-----------------------------------------------------|
| Cucumber | `cucumber` | `>= 3.0` | `>= 1.7.16` | [Link][49] | [Link](https://github.com/cucumber/cucumber-ruby) |
| RSpec | `rspec` | `>= 3.0.0` | `>= 3.0.0` | [Link][50] | [Link](https://github.com/rspec/rspec) |

[1]: https://github.com/DataDog/dd-trace-rb
[2]: https://docs.datadoghq.com/tracing/trace_collection/dd_libraries/ruby#action-cable
Expand Down Expand Up @@ -165,6 +157,4 @@ These are the available CI visibility integrations:
[46]: https://docs.datadoghq.com/tracing/trace_collection/dd_libraries/ruby#sneakers
[47]: https://docs.datadoghq.com/tracing/trace_collection/dd_libraries/ruby#stripe
[48]: https://docs.datadoghq.com/tracing/trace_collection/dd_libraries/ruby#sucker-punch
[49]: https://docs.datadoghq.com/tracing/trace_collection/dd_libraries/ruby#cucumber
[50]: https://docs.datadoghq.com/tracing/trace_collection/dd_libraries/ruby#rspec

0 comments on commit c52cc94

Please sign in to comment.