Skip to content

Commit

Permalink
Merge pull request #3931 from DataDog/tonycthsu/ssi-entry-point
Browse files Browse the repository at this point in the history
Split single step instrument entry point
  • Loading branch information
TonyCTHsu committed Sep 20, 2024
2 parents e163c21 + 17642d1 commit 4eeda1b
Show file tree
Hide file tree
Showing 5 changed files with 37 additions and 1 deletion.
1 change: 1 addition & 0 deletions .rubocop_todo.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ Metrics/BlockNesting:
# AllowedAcronyms: CLI, DSL, ACL, API, ASCII, CPU, CSS, DNS, EOF, GUID, HTML, HTTP, HTTPS, ID, IP, JSON, LHS, QPS, RAM, RHS, RPC, SLA, SMTP, SQL, SSH, TCP, TLS, TTL, UDP, UI, UID, UUID, URI, URL, UTF8, VM, XML, XMPP, XSRF, XSS
Naming/FileName:
Exclude:
- 'lib/datadog/single_step_instrument.rb'
- 'lib/datadog/appsec/autoload.rb'
- 'lib/datadog/opentelemetry/api/trace/span.rb'
- 'lib/datadog/opentelemetry/sdk/trace/span.rb'
Expand Down
2 changes: 1 addition & 1 deletion lib-injection/host_inject.rb
Original file line number Diff line number Diff line change
Expand Up @@ -197,7 +197,7 @@ def bundler_supported?

bundle_add_cmd = "bundle add #{gem} --skip-install --version #{gem_version_mapping[gem]} "
bundle_add_cmd << ' --verbose ' if ENV['DD_TRACE_DEBUG'] == 'true'
bundle_add_cmd << '--require datadog/auto_instrument' if gem == 'datadog'
bundle_add_cmd << '--require datadog/single_step_instrument' if gem == 'datadog'

utils.debug "Injection with `#{bundle_add_cmd}`"

Expand Down
12 changes: 12 additions & 0 deletions lib/datadog/single_step_instrument.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# frozen_string_literal: true

#
# Entrypoint file for single step instrumentation.
#
# This file's path is private. Do not reference this file.
#
begin
require_relative 'auto_instrument'
rescue StandardError, LoadError => e
warn "Single step instrumentation failed: #{e.class}:#{e.message}\n\tSource:\n\t#{Array(e.backtrace).join("\n\t")}"
end
Empty file.
23 changes: 23 additions & 0 deletions spec/datadog/single_step_instrument_spec.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
RSpec.describe 'Single step instrument', skip: !Process.respond_to?(:fork) do
it do
expect_in_fork do
expect_any_instance_of(Object)
.to receive(:require_relative).with('auto_instrument').and_raise(LoadError)

expect do
load 'datadog/single_step_instrument.rb'
end.to output(/Single step instrumentation failed/).to_stderr
end
end

it do
expect_in_fork do
expect_any_instance_of(Object)
.to receive(:require_relative).with('auto_instrument').and_raise(StandardError)

expect do
load 'datadog/single_step_instrument.rb'
end.to output(/Single step instrumentation failed/).to_stderr
end
end
end

0 comments on commit 4eeda1b

Please sign in to comment.