Skip to content

Commit

Permalink
Refactored: Datadog::Configuration --> Datadog::Core::Configuration
Browse files Browse the repository at this point in the history
  • Loading branch information
delner committed Jan 25, 2022
1 parent 086163b commit 2a5689e
Show file tree
Hide file tree
Showing 103 changed files with 2,669 additions and 2,509 deletions.
4 changes: 4 additions & 0 deletions .rubocop.yml
Original file line number Diff line number Diff line change
Expand Up @@ -299,6 +299,10 @@ RSpec/NestedGroups:
RSpec/MessageSpies:
Enabled: false

# Enforces use of `instance_double` over `double`
RSpec/VerifiedDoubles:
Enabled: false

# Enforces example line count limit.
RSpec/ExampleLength:
Enabled: false
Expand Down
14 changes: 7 additions & 7 deletions docs/GettingStarted.md
Original file line number Diff line number Diff line change
Expand Up @@ -1173,7 +1173,7 @@ collection = client[:people]
collection.insert_one({ name: 'Steve' })
# In case you want to override the global configuration for a certain client instance
Datadog::Tracing.configure_onto(client, **options)
Datadog.configure_onto(client, **options)
```
Where `options` is an optional `Hash` that accepts the following parameters:
Expand Down Expand Up @@ -1270,11 +1270,11 @@ Where `options` is an optional `Hash` that accepts the following parameters:
| `service_name` | Service name used for `http` instrumentation | `'net/http'` |
| `split_by_domain` | Uses the request domain as the service name when set to `true`. | `false` |
If you wish to configure each connection object individually, you may use the `Datadog::Tracing.configure_onto` as it follows:
If you wish to configure each connection object individually, you may use the `Datadog.configure_onto` as it follows:
```ruby
client = Net::HTTP.new(host, port)
Datadog::Tracing.configure_onto(client, **options)
Datadog.configure_onto(client, **options)
```
### Presto
Expand Down Expand Up @@ -1580,8 +1580,8 @@ end
customer_cache = Redis.new
invoice_cache = Redis.new
Datadog::Tracing.configure_onto(customer_cache, service_name: 'customer-cache')
Datadog::Tracing.configure_onto(invoice_cache, service_name: 'invoice-cache')
Datadog.configure_onto(customer_cache, service_name: 'customer-cache')
Datadog.configure_onto(invoice_cache, service_name: 'invoice-cache')
# Traced call will belong to `customer-cache` service
customer_cache.get(...)
Expand Down Expand Up @@ -1729,8 +1729,8 @@ sqlite_database = Sequel.sqlite
postgres_database = Sequel.connect('postgres://user:password@host:port/database_name')
# Configure each database with different service names
Datadog::Tracing.configure_onto(sqlite_database, service_name: 'my-sqlite-db')
Datadog::Tracing.configure_onto(postgres_database, service_name: 'my-postgres-db')
Datadog.configure_onto(sqlite_database, service_name: 'my-sqlite-db')
Datadog.configure_onto(postgres_database, service_name: 'my-postgres-db')
```

### Shoryuken
Expand Down
12 changes: 6 additions & 6 deletions lib/datadog/ci.rb
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,11 @@ module CI
#
# To modify the configuration, use {.configure}.
#
# @return [Datadog::Configuration::Settings]
# @return [Datadog::Core::Configuration::Settings]
# @!attribute [r] configuration
# @public_api
def configuration
Datadog::Configuration::ValidationProxy::CI.new(
Datadog::Core::Configuration::ValidationProxy::CI.new(
Datadog.send(:internal_configuration)
)
end
Expand All @@ -26,7 +26,7 @@ def configuration
# c.ci_mode.enabled = true
# end
# ```
# See {Datadog::Configuration::Settings} for all available options, defaults, and
# See {Datadog::Core::Configuration::Settings} for all available options, defaults, and
# available environment variables for configuration.
#
# Only permits access to CI configuration settings; others will raise an error.
Expand All @@ -43,18 +43,18 @@ def configuration
# The yielded configuration `c` comes pre-populated from environment variables, if
# any are applicable.
#
# See {Datadog::Configuration::Settings} for all available options, defaults, and
# See {Datadog::Core::Configuration::Settings} for all available options, defaults, and
# available environment variables for configuration.
#
# Will raise errors if invalid setting is accessed.
#
# @yieldparam [Datadog::Configuration::Settings] c the mutable configuration object
# @yieldparam [Datadog::Core::Configuration::Settings] c the mutable configuration object
# @return [void]
# @public_api
def configure
# Wrap block with trace option validation
wrapped_block = proc do |c|
yield(Datadog::Configuration::ValidationProxy::CI.new(c))
yield(Datadog::Core::Configuration::ValidationProxy::CI.new(c))
end

# Configure application normally
Expand Down
8 changes: 4 additions & 4 deletions lib/datadog/ci/extensions.rb
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# typed: true
require 'ddtrace/configuration/settings'
require 'ddtrace/configuration/components'
require 'datadog/core/configuration/settings'
require 'datadog/core/configuration/components'

require 'datadog/ci/configuration/settings'
require 'datadog/ci/configuration/components'
Expand All @@ -10,8 +10,8 @@ module CI
# Extends Datadog tracing with CI features
module Extensions
def self.activate!
Datadog::Configuration::Settings.extend(CI::Configuration::Settings)
Datadog::Configuration::Components.prepend(CI::Configuration::Components)
Datadog::Core::Configuration::Settings.extend(CI::Configuration::Settings)
Datadog::Core::Configuration::Components.prepend(CI::Configuration::Components)
end
end
end
Expand Down
73 changes: 73 additions & 0 deletions lib/datadog/core.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
# typed: strict
# TODO: Move these requires to smaller modules.
# Would be better to lazy load these; not
# all of these components will be used in
# every application.
# require 'datadog/core/buffer/cruby'
# require 'datadog/core/buffer/random'
# require 'datadog/core/buffer/thread_safe'
# require 'datadog/core/chunker'
# require 'datadog/core/configuration'
# require 'datadog/core/diagnostics/environment_logger'
# require 'datadog/core/diagnostics/ext'
# require 'datadog/core/diagnostics/health'
# require 'datadog/core/encoding'
# require 'datadog/core/environment/cgroup'
# require 'datadog/core/environment/class_count'
# require 'datadog/core/environment/container'
# require 'datadog/core/environment/ext'
# require 'datadog/core/environment/gc'
# require 'datadog/core/environment/identity'
# require 'datadog/core/environment/socket'
# require 'datadog/core/environment/thread_count'
# require 'datadog/core/environment/variable_helpers'
# require 'datadog/core/environment/vm_cache'
# require 'datadog/core/error'
# require 'datadog/core/event'
# require 'datadog/core/git/ext'
# require 'datadog/core/logger'
# require 'datadog/core/metrics/client'
# require 'datadog/core/metrics/ext'
# require 'datadog/core/metrics/helpers'
# require 'datadog/core/metrics/logging'
# require 'datadog/core/metrics/metric'
# require 'datadog/core/metrics/options'
# require 'datadog/core/pin'
# require 'datadog/core/quantization/hash'
# require 'datadog/core/quantization/http'
# require 'datadog/core/runtime/ext'
# require 'datadog/core/runtime/metrics'
# require 'datadog/core/utils'
# require 'datadog/core/utils/compression'
# require 'datadog/core/utils/database'
# require 'datadog/core/utils/forking'
# require 'datadog/core/utils/object_set'
# require 'datadog/core/utils/only_once'
# require 'datadog/core/utils/sequence'
# require 'datadog/core/utils/string_table'
# require 'datadog/core/utils/time'
# require 'datadog/core/worker'
# require 'datadog/core/workers/async'
# require 'datadog/core/workers/interval_loop'
# require 'datadog/core/workers/polling'
# require 'datadog/core/workers/queue'
# require 'datadog/core/workers/runtime_metrics'

require 'datadog/core/extensions'

# We must load core extensions to make certain global APIs
# accessible: both for Datadog features and the core itself.
module Datadog
extend Core::Extensions

# Add shutdown hook:
# Ensures the Datadog components have a chance to gracefully
# shut down and cleanup before terminating the process.
at_exit do
if Interrupt === $! # rubocop:disable Style/SpecialGlobalVars is process terminating due to a ctrl+c or similar?
Datadog.send(:handle_interrupt_shutdown!)
else
Datadog.shutdown!
end
end
end
Loading

0 comments on commit 2a5689e

Please sign in to comment.