signalfx-lambda 0.2.2 → 0.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +7 -2
- data/lib/signalfx/lambda/metrics.rb +8 -2
- data/lib/signalfx/lambda/tracing.rb +4 -4
- data/lib/signalfx/lambda/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: dcbb892d9545a5f51a42fa96a05d6ceca56837feaf63fe1d1f9841cd0f213974
|
4
|
+
data.tar.gz: 69fe913cbcf61d04852e5ad74c99b87291809272ff55eb2dc4ec49f6633c4399
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 051f24fe3ccb000e698cb08516cb2ed76afb43bf5569dad2c3ec4fa7427e54b1adaa0d30ed8e2d6220fb3e77fac0071b1c343a8310bad74731a16a33d607c9e7
|
7
|
+
data.tar.gz: 07bca8e0c204e82f783619a04e9adeddb061e2e9a8c93bd19773f47eb7a46f5090da6230bb8ab5f242c46e460b5c082569f9e27dbc8441e5c38c8272647cdce7
|
data/README.md
CHANGED
@@ -23,8 +23,10 @@ Add this line to the top of your file:
|
|
23
23
|
require 'signalfx/lambda'
|
24
24
|
```
|
25
25
|
|
26
|
-
To use the wrapper,
|
27
|
-
in the console, where `source` is your Ruby source file
|
26
|
+
To use the wrapper, put `source.SignalFx::Lambda.wrapped_handler` as the handler
|
27
|
+
in the AWS console, where `source` is your Ruby source file (when you use AWS online
|
28
|
+
code editor the `source` is `lambda_function` and a complete handler value is
|
29
|
+
`lambda_function.SignalFx::Lambda.wrapped_handler`). Then somewhere after
|
28
30
|
your handler function definition, the function can be registered to be
|
29
31
|
automatically traced:
|
30
32
|
|
@@ -105,6 +107,9 @@ ingest endpoint (https://ingest.{REALM}.signalfx.com). To determine what realm
|
|
105
107
|
you are in, check your profile page in the SignalFx web application (click the
|
106
108
|
avatar in the upper right and click My Profile).
|
107
109
|
|
110
|
+
Send operation timeout (in seconds) can be specified with `SIGNALFX_SEND_TIMEOUT`
|
111
|
+
environment variable. Default value is 1 second.
|
112
|
+
|
108
113
|
## Trace and tags
|
109
114
|
|
110
115
|
The wrapper will generate a trace per function invocation. The parent span will
|
@@ -1,8 +1,11 @@
|
|
1
|
+
require 'set'
|
1
2
|
require 'signalfx'
|
2
3
|
|
3
4
|
module SignalFx
|
4
5
|
module Lambda
|
5
6
|
module Metrics
|
7
|
+
@@ephemeral_dimensions = Set['aws_request_id', 'log_stream_name']
|
8
|
+
|
6
9
|
class Error < StandardError; end
|
7
10
|
|
8
11
|
class << self
|
@@ -69,7 +72,9 @@ module SignalFx
|
|
69
72
|
end
|
70
73
|
|
71
74
|
def populate_dimensions(context)
|
72
|
-
dimensions = SignalFx::Lambda.fields
|
75
|
+
dimensions = SignalFx::Lambda.fields
|
76
|
+
.reject {|key, _| @@ephemeral_dimensions.include?(key)}
|
77
|
+
.map do |key, val|
|
73
78
|
{ :key => key, :value => val }
|
74
79
|
end
|
75
80
|
dimensions.push({ :key => 'metric_source', :value => SignalFx::Lambda::COMPONENT })
|
@@ -78,8 +83,9 @@ module SignalFx
|
|
78
83
|
def init_client
|
79
84
|
access_token = ENV['SIGNALFX_ACCESS_TOKEN']
|
80
85
|
ingest_endpoint = ENV['SIGNALFX_METRICS_URL'] || ENV['SIGNALFX_ENDPOINT_URL'] || 'https://ingest.signalfx.com'
|
86
|
+
timeout = ENV['SIGNALFX_SEND_TIMEOUT'] || 1
|
81
87
|
|
82
|
-
@client = SignalFx.new access_token, ingest_endpoint: ingest_endpoint
|
88
|
+
@client = SignalFx.new access_token, ingest_endpoint: ingest_endpoint, timeout: timeout
|
83
89
|
end
|
84
90
|
end
|
85
91
|
end
|
@@ -12,7 +12,7 @@ module SignalFx
|
|
12
12
|
attr_accessor :tracer, :reporter
|
13
13
|
|
14
14
|
def wrap_function(event:, context:, &block)
|
15
|
-
init_tracer(
|
15
|
+
init_tracer(context) if !@tracer # avoid initializing except on a cold start
|
16
16
|
|
17
17
|
tags = SignalFx::Lambda.fields
|
18
18
|
tags['component'] = SignalFx::Lambda::COMPONENT
|
@@ -41,17 +41,17 @@ module SignalFx
|
|
41
41
|
end
|
42
42
|
|
43
43
|
def wrapped_handler(event:, context:)
|
44
|
-
wrap_function(event, context, &@handler)
|
44
|
+
wrap_function(event: event, context: context, &@handler)
|
45
45
|
end
|
46
46
|
|
47
47
|
def register_handler(&handler)
|
48
48
|
@handler = handler
|
49
49
|
end
|
50
50
|
|
51
|
-
def init_tracer(
|
51
|
+
def init_tracer(context)
|
52
52
|
access_token = ENV['SIGNALFX_ACCESS_TOKEN']
|
53
53
|
ingest_url = get_ingest_url
|
54
|
-
service_name = ENV['SIGNALFX_SERVICE_NAME'] ||
|
54
|
+
service_name = ENV['SIGNALFX_SERVICE_NAME'] || context.function_name
|
55
55
|
@span_prefix = ENV['SIGNALFX_SPAN_PREFIX'] || 'lambda_ruby_'
|
56
56
|
|
57
57
|
# configure the trace reporter
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: signalfx-lambda
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ashwin Chandrasekar
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-12-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: jaeger-client
|
@@ -119,7 +119,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
119
119
|
- !ruby/object:Gem::Version
|
120
120
|
version: '0'
|
121
121
|
requirements: []
|
122
|
-
rubygems_version: 3.0.
|
122
|
+
rubygems_version: 3.0.3
|
123
123
|
signing_key:
|
124
124
|
specification_version: 4
|
125
125
|
summary: Lambda handler wrapper
|