atatus 1.6.1 → 1.6.2

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: 4b66e60d1476198f7c60d05c2b63d0a8769b36675ae81cb91b1746959fe44b15
4
- data.tar.gz: 25c6da98c635406b843c4462f33412331c60c2ff2dc1378fe8c93a3e719db2fc
3
+ metadata.gz: 48a2777c09d7af196314fb322c9a55feadb46f50d90ffd88976ff978eb5039a2
4
+ data.tar.gz: 59f1f63ebd4ad84f23359cc2c96ccb62e0c0eabceaa6b48bf63c711c3383bf64
5
5
  SHA512:
6
- metadata.gz: eb877329af1c2f047ae54752964d0ac89a99477bf1c304efa2324eb7686e1ae9d1797627aa09282345302d0ea8bbea406a45328a6a2c0e27b09811ff763cc0a0
7
- data.tar.gz: 8a4848188c6ddfb971999e4e621c34863577387d6dc3cd96d6671514b4941557d83c4636085a5a9f7bbbe4230cfdf7ba9a2f7e13885b8d6b34b7a0303d6af497
6
+ metadata.gz: 1a705d56af3228c31ce400a16eae3d961fe2bbcae949db3effc4828682563bd4ce3070adb14613cb096caa48d71e8ccce2969dc21f4b0c910c73ca99b28bf566
7
+ data.tar.gz: 30461593c406cf6f7b8f2e08c9bef4aa64b9f60f0f4c2b3f0bff9de1cff8a26f5cf25e07507b263e8638a37345916f15d479eb11bcb3e58f69a7f34d79d51d70
data/CHANGELOG.md CHANGED
@@ -4,6 +4,12 @@ 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
+ ## 1.6.2 (Mon, 31 Jan 2022)
8
+
9
+ - Fixed config environment.
10
+ - Supported ignore failure patterns, ignore exceptions and ignore transactions.
11
+
12
+
7
13
  ## 1.6.1 (Wed, 29 Dec 2021)
8
14
 
9
15
  - Fixed a specific case where span duration goes less than 0.
data/LICENSE CHANGED
@@ -1,4 +1,4 @@
1
- All components of this product are Copyright (c) 2021 Atatus. All rights reserved.
1
+ All components of this product are Copyright (c) 2022 Atatus. All rights reserved.
2
2
 
3
3
  Except as otherwise expressly provided in this Agreement,
4
4
  End User shall not (and shall not permit any third party to):
@@ -42,6 +42,7 @@ module Atatus
42
42
  @metrics_lock = Mutex.new
43
43
  @metrics_agg = []
44
44
 
45
+ @hostinfo_response = {}
45
46
  @transport = Atatus::BaseTransport.new(config)
46
47
  @collect_counter = 0
47
48
  @running = false
@@ -79,13 +80,38 @@ module Atatus
79
80
 
80
81
  def add_error(error)
81
82
  ensure_worker_running
82
-
83
- @errors_lock.synchronize do
84
- if @errors_aggs.length < 20
85
- @errors_aggs.push(error)
86
- else
87
- i = rand(20)
88
- @errors_aggs[i] = error
83
+ ignore_error = false
84
+ if
85
+ !error.exception.nil? &&
86
+ !error.exception.type.nil? &&
87
+ !error.exception.message.nil?
88
+ then
89
+ if @hostinfo_response.key?("ignoreExceptionPatterns")
90
+ @hostinfo_response['ignoreExceptionPatterns'].each do |k, v|
91
+ if error.exception.type.match(k)
92
+ exception_values = v
93
+ if exception_values.length == 0
94
+ ignore_error = true
95
+ else
96
+ exception_values.each do |value|
97
+ if error.exception.message.include?(value)
98
+ ignore_error = true
99
+ end
100
+ end
101
+ end
102
+ break
103
+ end
104
+ end
105
+ end
106
+ end
107
+ if ignore_error == false
108
+ @errors_lock.synchronize do
109
+ if @errors_aggs.length < 20
110
+ @errors_aggs.push(error)
111
+ else
112
+ i = rand(20)
113
+ @errors_aggs[i] = error
114
+ end
89
115
  end
90
116
  end
91
117
  end
@@ -156,6 +182,19 @@ module Atatus
156
182
  return
157
183
  end
158
184
 
185
+ ignore_txn = false
186
+ if @hostinfo_response.key?("ignoreTxnNamePatterns")
187
+ @hostinfo_response['ignoreTxnNamePatterns'].each do |k|
188
+ if txn.name.match(k)
189
+ ignore_txn = true
190
+ break
191
+ end
192
+ end
193
+ end
194
+ if ignore_txn == true
195
+ return
196
+ end
197
+
159
198
  return if txn.name.empty?
160
199
  return if txn.duration <= 0
161
200
 
@@ -296,25 +335,44 @@ module Atatus
296
335
  !txn.context.response.status_code.nil?
297
336
  then
298
337
  status_code = txn.context.response.status_code.to_i
299
-
338
+ ignore_status_code = false
300
339
  if status_code >= 400 && status_code != 404
301
- if !@error_metrics_agg.key?(txn.name)
302
- @error_metrics_agg[txn.name] = {status_code => 1}
303
- else
304
- if !@error_metrics_agg[txn.name].key?(status_code)
305
- @error_metrics_agg[txn.name][status_code] = 1
306
- else
307
- @error_metrics_agg[txn.name][status_code] += 1
340
+ if @hostinfo_response.key?("ignoreHTTPFailurePatterns")
341
+ @hostinfo_response['ignoreHTTPFailurePatterns'].each do |k, v|
342
+ if txn.name.match(k)
343
+ status_code_array_s = v
344
+ if status_code_array_s.length == 0
345
+ ignore_status_code = true
346
+ else
347
+ status_code_array_s.each do |code|
348
+ if code == txn.context.response.status_code.to_s
349
+ ignore_status_code = true
350
+ end
351
+ end
352
+ end
353
+ break
354
+ end
308
355
  end
309
356
  end
357
+ if ignore_status_code == false
358
+ if !@error_metrics_agg.key?(txn.name)
359
+ @error_metrics_agg[txn.name] = {status_code => 1}
360
+ else
361
+ if !@error_metrics_agg[txn.name].key?(status_code)
362
+ @error_metrics_agg[txn.name][status_code] = 1
363
+ else
364
+ @error_metrics_agg[txn.name][status_code] += 1
365
+ end
366
+ end
310
367
 
311
- trace_id = ""
312
- trace_id = txn.trace_id if !txn.trace_id.nil?
313
- if @error_requests_agg.length < 20
314
- @error_requests_agg.push({'name' => txn.name, 'txn_id' => txn.id, 'trace_id' => trace_id, 'context' => txn.context})
315
- else
316
- i = rand(20)
317
- @error_requests_agg[i] = {'name' => txn.name, 'txn_id' => txn.id, 'trace_id' => trace_id, 'context' => txn.context}
368
+ trace_id = ""
369
+ trace_id = txn.trace_id if !txn.trace_id.nil?
370
+ if @error_requests_agg.length < 20
371
+ @error_requests_agg.push({'name' => txn.name, 'txn_id' => txn.id, 'trace_id' => trace_id, 'context' => txn.context})
372
+ else
373
+ i = rand(20)
374
+ @error_requests_agg[i] = {'name' => txn.name, 'txn_id' => txn.id, 'trace_id' => trace_id, 'context' => txn.context}
375
+ end
318
376
  end
319
377
  end
320
378
  end
@@ -356,7 +414,7 @@ module Atatus
356
414
  end
357
415
 
358
416
  if @collect_counter % 30 == 0
359
- @transport.hostinfo(start_time)
417
+ @hostinfo_response = @transport.hostinfo(start_time)
360
418
  @collect_counter = 0
361
419
  end
362
420
  @collect_counter += 1
@@ -29,7 +29,8 @@ module Atatus
29
29
  version: VERSION
30
30
  },
31
31
  hostname: @metadata.hostname,
32
- hostId: @metadata.hwinfo.hostid
32
+ hostId: @metadata.hwinfo.hostid,
33
+ releaseStage: @config.environment
33
34
  }
34
35
  if !@container_id.nil?
35
36
  common[:containerId] = @container_id
@@ -30,11 +30,13 @@ module Atatus
30
30
 
31
31
  @blocked = false
32
32
  @capture_percentiles = false
33
+ @hostinfo_response = {}
33
34
  end
34
35
 
35
36
  def hostinfo(start_time)
36
37
  payload = @builder.hostinfo(start_time)
37
38
  post(HOSTINFO_ENDPOINT, payload)
39
+ @hostinfo_response
38
40
  end
39
41
 
40
42
  def txns(start_time, end_time, data)
@@ -109,7 +111,25 @@ module Atatus
109
111
  if resp
110
112
  if resp.key?("capturePercentiles")
111
113
  @capture_percentiles = resp["capturePercentiles"]
114
+ @hostinfo_response['capturePercentiles'] = @capture_percentiles
112
115
  end
116
+
117
+ if resp.key?("extRequestPatterns")
118
+ @hostinfo_response['extRequestPatterns'] = resp["extRequestPatterns"]
119
+ end
120
+
121
+ if resp.key?("ignoreTxnNamePatterns")
122
+ @hostinfo_response['ignoreTxnNamePatterns'] = resp["ignoreTxnNamePatterns"]
123
+ end
124
+
125
+ if resp.key?("ignoreHTTPFailurePatterns")
126
+ @hostinfo_response['ignoreHTTPFailurePatterns'] = resp["ignoreHTTPFailurePatterns"]
127
+ end
128
+
129
+ if resp.key?("ignoreExceptionPatterns")
130
+ @hostinfo_response['ignoreExceptionPatterns'] = resp["ignoreExceptionPatterns"]
131
+ end
132
+
113
133
  end
114
134
  else
115
135
  true
@@ -19,5 +19,5 @@
19
19
 
20
20
  module Atatus
21
21
  AGENT_NAME = 'Ruby'
22
- VERSION = '1.6.1'
22
+ VERSION = '1.6.2'
23
23
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: atatus
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.6.1
4
+ version: 1.6.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Atatus
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-12-29 00:00:00.000000000 Z
11
+ date: 2022-01-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: concurrent-ruby