datadog-lambda 0.9.0 → 1.10.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/datadog/lambda.rb +10 -5
- data/lib/datadog/lambda/trace/listener.rb +5 -2
- data/lib/datadog/lambda/trace/patch_http.rb +12 -5
- data/lib/datadog/lambda/version.rb +2 -2
- metadata +5 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c19e8514981117ae88bdaa4d17f7a3a5db19595d39336100ac581e0cf330be1d
|
4
|
+
data.tar.gz: 5d2c0ef21fb1fb0d33759f0b3430daebe88100e4f626b20f6dd9512739c6b62c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6cab42dc833290ea7742def1dda6e4bb4a89ebb7f90240e053cdbcd8f8a338fbaaa98069dc48fdc6d823fb087a90c946c097bd012014e31b84629995f296fe0a
|
7
|
+
data.tar.gz: 4092f19c6b544307e2a82492fd13ce2241d2e0820df2b81da53a6adbd4ec3da0aa9b6d04a56c528b822f93df36e8122985d1a5c0584773d867c3f787feb46eba
|
data/lib/datadog/lambda.rb
CHANGED
@@ -37,6 +37,7 @@ module Datadog
|
|
37
37
|
c.tracer writer: Datadog::SyncWriter.new(
|
38
38
|
transport: Datadog::Transport::IO.default
|
39
39
|
)
|
40
|
+
c.tags = { "_dd.origin": 'lambda' }
|
40
41
|
yield(c) if block_given?
|
41
42
|
end
|
42
43
|
end
|
@@ -68,7 +69,6 @@ module Datadog
|
|
68
69
|
# Gets the current tracing context
|
69
70
|
def self.trace_context
|
70
71
|
context = Hash[Datadog::Trace.trace_context]
|
71
|
-
context.delete(:source)
|
72
72
|
context
|
73
73
|
end
|
74
74
|
|
@@ -82,13 +82,18 @@ module Datadog
|
|
82
82
|
raise 'value must be a number' unless value.is_a?(Numeric)
|
83
83
|
|
84
84
|
time ||= Time.now
|
85
|
-
|
85
|
+
time_ms = time.to_f.to_i
|
86
|
+
|
87
|
+
tag_list = ["dd_lambda_layer:datadog-ruby#{dd_lambda_layer_tag}"]
|
86
88
|
tags.each do |tag|
|
87
89
|
tag_list.push("#{tag[0]}:#{tag[1]}")
|
88
90
|
end
|
89
|
-
|
90
|
-
metric
|
91
|
-
|
91
|
+
metric = { e: time_ms, m: name, t: tag_list, v: value }
|
92
|
+
puts metric.to_json
|
93
|
+
end
|
94
|
+
|
95
|
+
def self.dd_lambda_layer_tag
|
96
|
+
RUBY_VERSION[0, 3].tr('.', '')
|
92
97
|
end
|
93
98
|
|
94
99
|
# Generate tags for enhanced metrics
|
@@ -41,8 +41,11 @@ module Datadog
|
|
41
41
|
request_context: request_context,
|
42
42
|
cold_start: cold_start
|
43
43
|
)
|
44
|
-
|
45
|
-
|
44
|
+
context = Datadog::Trace.trace_context
|
45
|
+
source = context[:source] if context
|
46
|
+
options[:tags]['_dd.parent_source'] = source if source && source != 'ddtrace'
|
47
|
+
options[:resource] = @function_name
|
48
|
+
options[:service] = 'aws.lambda'
|
46
49
|
options[:span_type] = 'serverless'
|
47
50
|
Datadog::Trace.apply_datadog_trace_context(Datadog::Trace.trace_context)
|
48
51
|
Datadog::Trace.wrap_datadog(options) do
|
@@ -36,11 +36,7 @@ module Datadog
|
|
36
36
|
Datadog::Trace.trace_context
|
37
37
|
)
|
38
38
|
|
39
|
-
req
|
40
|
-
context[:sample_mode]
|
41
|
-
req[Datadog::Trace::DD_PARENT_ID_HEADER.to_sym] = context[:parent_id]
|
42
|
-
req[Datadog::Trace::DD_TRACE_ID_HEADER.to_sym] = context[:trace_id]
|
43
|
-
logger.debug("added context #{context} to request")
|
39
|
+
req = add_ctx_to_req(req, context)
|
44
40
|
rescue StandardError => e
|
45
41
|
trace = e.backtrace.join("\n ")
|
46
42
|
logger.debug(
|
@@ -49,6 +45,17 @@ module Datadog
|
|
49
45
|
end
|
50
46
|
super(req, body, &block)
|
51
47
|
end
|
48
|
+
|
49
|
+
private
|
50
|
+
|
51
|
+
def add_ctx_to_req(req, context)
|
52
|
+
req[Datadog::Trace::DD_SAMPLING_PRIORITY_HEADER.to_sym] =
|
53
|
+
context[:sample_mode]
|
54
|
+
req[Datadog::Trace::DD_PARENT_ID_HEADER.to_sym] = context[:parent_id]
|
55
|
+
req[Datadog::Trace::DD_TRACE_ID_HEADER.to_sym] = context[:trace_id]
|
56
|
+
logger.debug("added context #{context} to request")
|
57
|
+
req
|
58
|
+
end
|
52
59
|
end
|
53
60
|
end
|
54
61
|
end
|
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:
|
4
|
+
version: 1.10.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Datadog, Inc.
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-08-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.
|
33
|
+
version: '0.4'
|
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.
|
40
|
+
version: '0.4'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: rake
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -113,7 +113,7 @@ files:
|
|
113
113
|
- lib/datadog/lambda/trace/xray.rb
|
114
114
|
- lib/datadog/lambda/utils/logger.rb
|
115
115
|
- lib/datadog/lambda/version.rb
|
116
|
-
homepage: https://github.com/DataDog/datadog-lambda-
|
116
|
+
homepage: https://github.com/DataDog/datadog-lambda-rb
|
117
117
|
licenses:
|
118
118
|
- Apache-2.0
|
119
119
|
metadata:
|