logstash-output-dynatrace 0.7.1 → 0.7.2

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 81b4a8c2170a81fb234ff285214b21e531d8b33a304ccbe25b643a10d05a7c28
4
- data.tar.gz: 70e9196d107abd6655ea8394fac223713bd8120c5305c5f22075d402f897d65d
3
+ metadata.gz: 6dc320145268685ae7585b0ffc68beb54ae932b3e9c5261e1ca6106803c487df
4
+ data.tar.gz: 223b65b82ffc6ed512d270eb879126a9f9fbe046f9dfc9e66ae9a37be2e60fcf
5
5
  SHA512:
6
- metadata.gz: 6c67bc08595859467e6c32da87b60e0da67e99f3df4eb8b59d1ecedd8b96676429fe908b4e0678ea4f74736445fab3880a25461d439ef8fef3ce6100b9bc7ada
7
- data.tar.gz: c0c78831f7436a02ae3faafab913a725af81d9bf8a14111b7de5d4e46bac3b473f22b325ef27280f5bb4262279a86dadf6ec2b19250b89819e90b7e7f5b8c32b
6
+ metadata.gz: 55a4b11c59aae913134c5972dff31b13c3e3eaa8761db6703a88e081df6d369b39d6be5f924219e30312b819a54c30d7aced19d98b24f6bcf4e988561929ce50
7
+ data.tar.gz: 401c4c51154584cee22c94f557a5869b8782759b5287498571e2f1ae345150f48625417126140bb54676560a3d75f7659b30ca392b2db2470dae7815b49904d2
data/CHANGELOG.md CHANGED
@@ -1,3 +1,7 @@
1
+ ## 0.7.2
2
+
3
+ - Log response bodies when the response is `200` indicating the request was only partially accepted
4
+
1
5
  ## 0.7.1
2
6
 
3
7
  - Fix an error where max payload size was calculated using character count instead of bytes
@@ -160,6 +160,10 @@ module LogStash
160
160
  end
161
161
  end
162
162
 
163
+ def log_partial_success_response(response)
164
+ @logger.warn("Encountered partial success response", code: response.code, body: response.body)
165
+ end
166
+
163
167
  def log_error_response(response, ingest_endpoint_url, event)
164
168
  log_failure(
165
169
  "Encountered non-2xx HTTP code #{response.code}",
@@ -267,6 +271,8 @@ module LogStash
267
271
  response = client.post(ingest_endpoint_url, body: event, headers: headers)
268
272
 
269
273
  if response_success?(response)
274
+ # some events were not accepted but we don't know which ones or why
275
+ log_partial_success_response(response) if response_partial_success?(response)
270
276
  [:success, event, attempt]
271
277
  elsif retryable_response?(response)
272
278
  log_retryable_response(response)
@@ -315,6 +321,10 @@ module LogStash
315
321
  response.code >= 200 && response.code <= 299
316
322
  end
317
323
 
324
+ def response_partial_success?(response)
325
+ response.code == 200
326
+ end
327
+
318
328
  def retryable_response?(response)
319
329
  RETRYABLE_CODES.include?(response.code)
320
330
  end
@@ -168,6 +168,19 @@ describe LogStash::Outputs::Dynatrace do
168
168
  end
169
169
  end
170
170
 
171
+ context 'with partial success responses' do
172
+ let(:ingest_endpoint_url) { "http://localhost:#{port}/partial" }
173
+
174
+ before do
175
+ allow(subject).to receive(:log_partial_success_response)
176
+ end
177
+
178
+ it 'should warn on partial success' do
179
+ subject.multi_receive([event])
180
+ expect(subject).to have_received(:log_partial_success_response)
181
+ end
182
+ end
183
+
171
184
  context 'with retryable failing requests' do
172
185
  let(:ingest_endpoint_url) { "http://localhost:#{port}/retry" }
173
186
  let(:api_key) { 'placeholder-key' }
data/spec/spec_helper.rb CHANGED
@@ -98,7 +98,12 @@ class TestApp < Sinatra::Base
98
98
 
99
99
  multiroute(%w[get post put patch delete], '/good') do
100
100
  self.class.last_request = request
101
- [200, 'YUP']
101
+ [204, 'YUP']
102
+ end
103
+
104
+ multiroute(%w[get post put patch delete], '/partial') do
105
+ self.class.last_request = request
106
+ [200, 'partial success']
102
107
  end
103
108
 
104
109
  multiroute(%w[get post put patch delete], '/bad') do
data/version.yaml CHANGED
@@ -1 +1 @@
1
- logstash-output-dynatrace: '0.7.1'
1
+ logstash-output-dynatrace: '0.7.2'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: logstash-output-dynatrace
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.1
4
+ version: 0.7.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dynatrace Open Source Engineering
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-04-23 00:00:00.000000000 Z
11
+ date: 2025-05-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: logstash-codec-json