datadog-lambda 1.14.0 → 2.19.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f0299ef3a855a65e1b2bd066dca1bc81421d6173118775a8be556f497762a7e5
4
- data.tar.gz: 8193383951539a3db0043f10141b228ba4dd51ee9f806d2f5e1570e4c58a2306
3
+ metadata.gz: 14af71dd28cbd28bb7245d9a265c1ef5aae17cc7fca08cdfeec920a0df15863f
4
+ data.tar.gz: ddaef0b0f205fd9fabdcd1ee2d6663e3f47f1b80e5a7640bb8b0906600807a9d
5
5
  SHA512:
6
- metadata.gz: 22e350877b7fb4fc6ace6523c67d4e6283f4acc2b5af6db6393f86a3168b66c8a471b3365eb9c07ca8e995972afc29ea4c6c6eb1e95114cc7887601d221efbb9
7
- data.tar.gz: 19650c82c373aa12c399b5196d0b6f6d5713451b68e26fe502bbde8cd6395972e38c37a79c90e3cfe41d2866d56de297806e4a674c70b72fe2d0a5b9f3e4c8c4
6
+ metadata.gz: 7e91c96b8bd3c20e420b94621df6eb260e3baaa310fc131600e6343663a6b8f613091a5f7b7beba460cce0c3c4c62b2a932e18c83f47ce2848c4a89b8c135053
7
+ data.tar.gz: 9dbf1189862c063bdf8eaa361fcebcbca5ee857bb8196b8d420d5a0f9151e7468f971d3628a68baf8182247a57227366ca6387f98523ccb6a86b2ad2b748536d
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # ddtrace is an optional dependency for the ruby package
3
+ # `ddtrace`` is an optional dependency for the ruby package
4
4
  begin
5
5
  require 'ddtrace'
6
6
  rescue LoadError
@@ -16,27 +16,24 @@ module Datadog
16
16
  trace_id = context[:trace_id].to_i
17
17
  span_id = context[:parent_id].to_i
18
18
  sampling_priority = context[:sample_mode]
19
- Datadog.tracer.provider.context = Datadog::Context.new(
20
- trace_id: trace_id,
19
+ trace_digest = Datadog::Tracing::TraceDigest.new(
21
20
  span_id: span_id,
22
- sampling_priority: sampling_priority
21
+ trace_id: trace_id,
22
+ trace_sampling_priority: sampling_priority
23
23
  )
24
+ Datadog::Tracing.continue_trace!(trace_digest)
24
25
  end
25
26
  rescue StandardError
26
27
  Datadog::Utils.logger.debug 'dd-trace unavailable'
27
28
  end
28
29
 
29
30
  def wrap_datadog(options, &block)
30
- tracer_available = false
31
- begin
32
- Datadog.tracer
33
- tracer_available = true
34
- rescue StandardError
31
+ unless Datadog::Tracing.enabled?
35
32
  Datadog::Utils.logger.debug 'dd-trace unavailable'
33
+ return block.call
36
34
  end
37
- return block.call unless tracer_available
38
35
 
39
- Datadog.tracer.trace('aws.lambda', options) do |_span|
36
+ Datadog::Tracing.trace('aws.lambda', **options) do |_span|
40
37
  block.call
41
38
  end
42
39
  end
@@ -0,0 +1,33 @@
1
+ # frozen_string_literal: true
2
+
3
+ #
4
+ # Unless explicitly stated otherwise all files in this repository are licensed
5
+ # under the Apache License Version 2.0.
6
+ #
7
+ # This product includes software developed at Datadog (https://www.datadoghq.com/).
8
+ # Copyright 2023 Datadog, Inc.
9
+ #
10
+ require 'net/http'
11
+
12
+ module Datadog
13
+ # Utils contains utility functions shared between modules
14
+ module Utils
15
+ AGENT_URL = 'http://127.0.0.1:8124'
16
+ HELLO_PATH = '/lambda/hello'
17
+ EXTENSION_CHECK_URI = URI(AGENT_URL + HELLO_PATH).freeze
18
+ EXTENSION_PATH = '/opt/extensions/datadog-agent'
19
+
20
+ def self.extension_running
21
+ return false unless File.exist?(EXTENSION_PATH)
22
+
23
+ begin
24
+ Net::HTTP.get(EXTENSION_CHECK_URI)
25
+ rescue StandardError => e
26
+ Datadog::Utils.logger.debug "extension is not running, returned with error #{e}"
27
+ return false
28
+ end
29
+
30
+ true
31
+ end
32
+ end
33
+ end
@@ -11,8 +11,8 @@
11
11
  module Datadog
12
12
  module Lambda
13
13
  module VERSION
14
- MAJOR = 1
15
- MINOR = 14
14
+ MAJOR = 2
15
+ MINOR = 19
16
16
  PATCH = 0
17
17
  PRE = nil
18
18
 
@@ -11,6 +11,7 @@
11
11
 
12
12
  require 'datadog/lambda/trace/listener'
13
13
  require 'datadog/lambda/utils/logger'
14
+ require 'datadog/lambda/utils/extension'
14
15
  require 'datadog/lambda/trace/patch_http'
15
16
  require 'json'
16
17
  require 'time'
@@ -27,17 +28,19 @@ module Datadog
27
28
  # Same options can be given as Datadog.configure in tracer
28
29
  # See https://github.com/DataDog/dd-trace-rb/blob/master/docs/GettingStarted.md#quickstart-for-ruby-applications
29
30
  def self.configure_apm
30
- require 'ddtrace'
31
- require 'ddtrace/sync_writer'
31
+ require 'datadog/tracing'
32
+ require 'ddtrace/transport/io'
32
33
 
33
34
  @patch_http = false
34
35
  # Needed to keep trace flushes on a single line
35
36
  $stdout.sync = true
36
37
 
37
38
  Datadog.configure do |c|
38
- c.tracer writer: Datadog::SyncWriter.new(
39
- transport: Datadog::Transport::IO.default
40
- )
39
+ unless Datadog::Utils.extension_running
40
+ c.tracing.writer = Datadog::Tracing::SyncWriter.new(
41
+ transport: Datadog::Transport::IO.default
42
+ )
43
+ end
41
44
  c.tags = { "_dd.origin": 'lambda' }
42
45
  yield(c) if block_given?
43
46
  end
@@ -160,7 +163,7 @@ module Datadog
160
163
  end
161
164
 
162
165
  # Check the DD_ENHANCED_METRICS environment variable
163
- # @reurn [boolean] true if this lambda should have
166
+ # @return [boolean] true if this lambda should have
164
167
  # enhanced metrics
165
168
  def self.do_enhanced_metrics?
166
169
  dd_enhanced_metrics = ENV['DD_ENHANCED_METRICS']
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: datadog-lambda
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.14.0
4
+ version: 2.19.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Datadog, Inc.
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-10-27 00:00:00.000000000 Z
11
+ date: 2023-05-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aws-xray-sdk
@@ -30,14 +30,14 @@ dependencies:
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '0.4'
33
+ version: 1.11.0
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '0.4'
40
+ version: 1.11.0
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rake
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -94,8 +94,22 @@ dependencies:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0.74'
97
+ - !ruby/object:Gem::Dependency
98
+ name: solargraph
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: 0.47.2
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: 0.47.2
97
111
  description: |
98
- datadog-lambda is Datadogs AWS Lambda integration for ruby. It is used to perform
112
+ datadog-lambda is Datadog's AWS Lambda integration for ruby. It is used to perform
99
113
  distributed tracing between serverful and serverless environments, and send
100
114
  custom metrics to Datadog.
101
115
  email:
@@ -111,6 +125,7 @@ files:
111
125
  - lib/datadog/lambda/trace/listener.rb
112
126
  - lib/datadog/lambda/trace/patch_http.rb
113
127
  - lib/datadog/lambda/trace/xray.rb
128
+ - lib/datadog/lambda/utils/extension.rb
114
129
  - lib/datadog/lambda/utils/logger.rb
115
130
  - lib/datadog/lambda/version.rb
116
131
  homepage: https://github.com/DataDog/datadog-lambda-rb
@@ -118,7 +133,7 @@ licenses:
118
133
  - Apache-2.0
119
134
  metadata:
120
135
  allowed_push_host: https://rubygems.org
121
- post_install_message:
136
+ post_install_message:
122
137
  rdoc_options: []
123
138
  require_paths:
124
139
  - lib
@@ -126,7 +141,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
126
141
  requirements:
127
142
  - - ">="
128
143
  - !ruby/object:Gem::Version
129
- version: 2.5.0
144
+ version: 2.7.0
130
145
  required_rubygems_version: !ruby/object:Gem::Requirement
131
146
  requirements:
132
147
  - - ">="
@@ -134,7 +149,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
134
149
  version: '0'
135
150
  requirements: []
136
151
  rubygems_version: 3.1.6
137
- signing_key:
152
+ signing_key:
138
153
  specification_version: 4
139
154
  summary: Instruments your Ruby AWS Lambda functions with Datadog
140
155
  test_files: []