elastic-apm 2.4.0 → 2.5.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of elastic-apm might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/CHANGELOG.md +10 -0
- data/Jenkinsfile +2 -1
- data/docs/configuration.asciidoc +11 -0
- data/lib/elastic_apm/agent.rb +10 -0
- data/lib/elastic_apm/config.rb +4 -0
- data/lib/elastic_apm/spies/faraday.rb +5 -0
- data/lib/elastic_apm/transport/filters/secrets_filter.rb +13 -2
- data/lib/elastic_apm/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a2ef17d6e9c0be751b1eec5e6083560d5eed2c3fbeb044adf361563b1f83ca01
|
4
|
+
data.tar.gz: b2ef8af13b2308b47149e9f9ac413825a5a23827f51af7a78c258848d99a6670
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ea7a58ffc1ed6eac693a32d9312f93e05ec47b047819b0420172a26de8a21bc7422a300fd6b405bbf24b8b40900a9ce6b7c97fc53502130eb641837120681420
|
7
|
+
data.tar.gz: b453578df37793a7dfeb6b3383530c652ec477b28303eefe35bf1e7a5ce3ea21fadb82621070c4de6de6d1c3e4acd6bd2023b3d9ec366a688b19ca73c93880e1
|
data/CHANGELOG.md
CHANGED
@@ -4,6 +4,16 @@ All notable changes to this project will be documented in this file.
|
|
4
4
|
|
5
5
|
This project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
|
6
6
|
|
7
|
+
## 2.5.0 (2019-03-01)
|
8
|
+
|
9
|
+
### Added
|
10
|
+
|
11
|
+
- Added the option `active` that will prevent the agent from starting if set to `false` ([#338](https://github.com/elastic/apm-agent-ruby/pull/338))
|
12
|
+
|
13
|
+
### Fixed
|
14
|
+
|
15
|
+
- Fix error with `capture_body` and nested request bodies ([#339](https://github.com/elastic/apm-agent-ruby/pull/339))
|
16
|
+
|
7
17
|
## 2.4.0 (2019-02-27)
|
8
18
|
|
9
19
|
### Added
|
data/Jenkinsfile
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
#!/usr/bin/env groovy
|
2
|
-
@Library('apm@v1.0.
|
2
|
+
@Library('apm@v1.0.9') _
|
3
3
|
|
4
4
|
import co.elastic.matrix.*
|
5
5
|
import groovy.transform.Field
|
@@ -199,6 +199,7 @@ class RubyParallelTaskGenerator extends DefaultParallelTaskGenerator {
|
|
199
199
|
*/
|
200
200
|
public Closure generateStep(x, y){
|
201
201
|
return {
|
202
|
+
steps.sleep steps.randomNumber(min:10, max: 30)
|
202
203
|
steps.node('linux && immutable'){
|
203
204
|
def label = "${tag}:${x}#${y}"
|
204
205
|
try {
|
data/docs/configuration.asciidoc
CHANGED
@@ -119,6 +119,17 @@ ruby -r securerandom -e 'print SecureRandom.uuid'
|
|
119
119
|
|
120
120
|
WARNING: Secret tokens only provide any real security if your APM server use TLS.
|
121
121
|
|
122
|
+
[float]
|
123
|
+
[[config-active]]
|
124
|
+
==== `active`
|
125
|
+
|============
|
126
|
+
| Environment | `Config` key | Default
|
127
|
+
| `ELASTIC_APM_ACTIVE` | `active` | `true`
|
128
|
+
|============
|
129
|
+
|
130
|
+
Whether or not to start the agent.
|
131
|
+
If `active` is `false`, `ElasticAPM.start` will do nothing and all calls to the root API will return `nil`.
|
132
|
+
|
122
133
|
[float]
|
123
134
|
[[config-api-buffer-size]]
|
124
135
|
==== `api_buffer_size`
|
data/lib/elastic_apm/agent.rb
CHANGED
@@ -22,6 +22,7 @@ module ElasticAPM
|
|
22
22
|
@instance
|
23
23
|
end
|
24
24
|
|
25
|
+
# rubocop:disable Metrics/MethodLength
|
25
26
|
def self.start(config)
|
26
27
|
return @instance if @instance
|
27
28
|
|
@@ -30,9 +31,18 @@ module ElasticAPM
|
|
30
31
|
LOCK.synchronize do
|
31
32
|
return @instance if @instance
|
32
33
|
|
34
|
+
unless config.active?
|
35
|
+
config.logger.debug format(
|
36
|
+
'%sAgent disabled with active: false',
|
37
|
+
Logging::PREFIX
|
38
|
+
)
|
39
|
+
return
|
40
|
+
end
|
41
|
+
|
33
42
|
@instance = new(config).start
|
34
43
|
end
|
35
44
|
end
|
45
|
+
# rubocop:enable Metrics/MethodLength
|
36
46
|
|
37
47
|
def self.stop
|
38
48
|
LOCK.synchronize do
|
data/lib/elastic_apm/config.rb
CHANGED
@@ -19,6 +19,7 @@ module ElasticAPM
|
|
19
19
|
|
20
20
|
server_url: 'http://localhost:8200',
|
21
21
|
|
22
|
+
active: true,
|
22
23
|
api_buffer_size: 256,
|
23
24
|
api_request_size: '750kb',
|
24
25
|
api_request_time: '10s',
|
@@ -59,6 +60,7 @@ module ElasticAPM
|
|
59
60
|
'ELASTIC_APM_SERVER_URL' => 'server_url',
|
60
61
|
'ELASTIC_APM_SECRET_TOKEN' => 'secret_token',
|
61
62
|
|
63
|
+
'ELASTIC_APM_ACTIVE' => [:bool, 'active'],
|
62
64
|
'ELASTIC_APM_API_BUFFER_SIZE' => [:int, 'api_buffer_size'],
|
63
65
|
'ELASTIC_APM_API_REQUEST_SIZE' => [:int, 'api_request_size'],
|
64
66
|
'ELASTIC_APM_API_REQUEST_TIME' => 'api_request_time',
|
@@ -131,6 +133,7 @@ module ElasticAPM
|
|
131
133
|
attr_accessor :server_url
|
132
134
|
attr_accessor :secret_token
|
133
135
|
|
136
|
+
attr_accessor :active
|
134
137
|
attr_accessor :api_buffer_size
|
135
138
|
attr_accessor :api_request_size
|
136
139
|
attr_accessor :api_request_time
|
@@ -176,6 +179,7 @@ module ElasticAPM
|
|
176
179
|
attr_accessor :view_paths
|
177
180
|
attr_accessor :root_path
|
178
181
|
|
182
|
+
alias :active? :active
|
179
183
|
alias :capture_body? :capture_body
|
180
184
|
alias :capture_headers? :capture_headers
|
181
185
|
alias :capture_env? :capture_env
|
@@ -17,6 +17,11 @@ module ElasticAPM
|
|
17
17
|
|
18
18
|
host = if url_prefix.is_a?(URI) && url_prefix.host
|
19
19
|
url_prefix.host
|
20
|
+
elsif url.nil?
|
21
|
+
tmp_request = build_request(method) do |req|
|
22
|
+
yield(req) if block_given?
|
23
|
+
end
|
24
|
+
URI(tmp_request.path).host
|
20
25
|
else
|
21
26
|
URI(url).host
|
22
27
|
end
|
@@ -37,15 +37,26 @@ module ElasticAPM
|
|
37
37
|
payload
|
38
38
|
end
|
39
39
|
|
40
|
+
# rubocop:disable Metrics/MethodLength, Metrics/CyclomaticComplexity
|
40
41
|
def strip_from!(obj)
|
41
42
|
return unless obj && obj.is_a?(Hash)
|
42
43
|
|
43
44
|
obj.each do |k, v|
|
44
|
-
if filter_key?(k)
|
45
|
-
obj[k] = FILTERED
|
45
|
+
if filter_key?(k)
|
46
|
+
next obj[k] = FILTERED
|
47
|
+
end
|
48
|
+
|
49
|
+
case v
|
50
|
+
when Hash
|
51
|
+
strip_from!(v)
|
52
|
+
when String
|
53
|
+
if filter_value?(v)
|
54
|
+
obj[k] = FILTERED
|
55
|
+
end
|
46
56
|
end
|
47
57
|
end
|
48
58
|
end
|
59
|
+
# rubocop:enable Metrics/MethodLength, Metrics/CyclomaticComplexity
|
49
60
|
|
50
61
|
def filter_key?(key)
|
51
62
|
@key_filters.any? { |regex| key.match regex }
|
data/lib/elastic_apm/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: elastic-apm
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mikkel Malmberg
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-03-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: concurrent-ruby
|