Skip to content

Commit cb8f302

Browse files
committed
fix
1 parent 5c5f8d9 commit cb8f302

File tree

2 files changed

+47
-24
lines changed

2 files changed

+47
-24
lines changed

lib/fluent/plugin/out_otlp.rb

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -68,14 +68,15 @@ def write(chunk)
6868
response = connection.post
6969

7070
if response.status != 200
71+
message = "got error response #{response.status} from '#{uri}'"
72+
7173
if @http_config.retryable_response_codes&.include?(response.status)
72-
raise RetryableResponse, msg
74+
raise RetryableResponse, message
7375
end
74-
7576
if @http_config.error_response_as_unrecoverable
76-
raise Fluent::UnrecoverableError, msg
77+
raise Fluent::UnrecoverableError, message
7778
else
78-
log.error "got error response from '#{uri.to_s}'"
79+
log.error message
7980
end
8081
end
8182
end

test/fluent/plugin/test_out_otlp.rb

Lines changed: 42 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -28,19 +28,27 @@ def server_config
2828
config
2929
end
3030

31+
def server_request
32+
@@server_request
33+
end
34+
35+
def set_server_response_code(code)
36+
@@server_response_code = code
37+
end
38+
3139
def run_http_server
3240
server = ::WEBrick::HTTPServer.new(server_config)
3341
server.mount_proc("/v1/metrics") do |req, res|
3442
@@server_request = ServerRequest.new(req.request_method.dup, req.path.dup, req.header.dup, req.body.dup)
35-
res.status = 200
43+
res.status = @@server_response_code
3644
end
3745
server.mount_proc("/v1/traces") do |req, res|
3846
@@server_request = ServerRequest.new(req.request_method.dup, req.path.dup, req.header.dup, req.body.dup)
39-
res.status = 200
47+
res.status = @@server_response_code
4048
end
4149
server.mount_proc("/v1/logs") do |req, res|
4250
@@server_request = ServerRequest.new(req.request_method.dup, req.path.dup, req.header.dup, req.body.dup)
43-
res.status = 200
51+
res.status = @@server_response_code
4452
end
4553
server.start
4654
ensure
@@ -55,13 +63,15 @@ def setup
5563
Fluent::Test.setup
5664

5765
@@server_request = nil
66+
@@server_response_code = 200
5867
@@http_server_thread ||= Thread.new do
5968
run_http_server
6069
end
6170
end
6271

6372
def teardown
6473
@@server_request = nil
74+
@@server_response_code = 200
6575
end
6676

6777
def create_driver(conf = config)
@@ -81,10 +91,10 @@ def test_send_logs
8191
d.feed(event)
8292
end
8393

84-
assert_equal("/v1/logs", @@server_request.path)
85-
assert_equal("POST", @@server_request.request_method)
86-
assert_equal(["application/x-protobuf"], @@server_request.header["content-type"])
87-
assert_equal(TestData::ProtocolBuffers::LOGS, @@server_request.body)
94+
assert_equal("/v1/logs", server_request.path)
95+
assert_equal("POST", server_request.request_method)
96+
assert_equal(["application/x-protobuf"], server_request.header["content-type"])
97+
assert_equal(TestData::ProtocolBuffers::LOGS, server_request.body)
8898
end
8999

90100
def test_send_metrics
@@ -95,10 +105,10 @@ def test_send_metrics
95105
d.feed(event)
96106
end
97107

98-
assert_equal("/v1/metrics", @@server_request.path)
99-
assert_equal("POST", @@server_request.request_method)
100-
assert_equal(["application/x-protobuf"], @@server_request.header["content-type"])
101-
assert_equal(TestData::ProtocolBuffers::METRICS, @@server_request.body)
108+
assert_equal("/v1/metrics", server_request.path)
109+
assert_equal("POST", server_request.request_method)
110+
assert_equal(["application/x-protobuf"], server_request.header["content-type"])
111+
assert_equal(TestData::ProtocolBuffers::METRICS, server_request.body)
102112
end
103113

104114
def test_send_traces
@@ -109,10 +119,10 @@ def test_send_traces
109119
d.feed(event)
110120
end
111121

112-
assert_equal("/v1/traces", @@server_request.path)
113-
assert_equal("POST", @@server_request.request_method)
114-
assert_equal(["application/x-protobuf"], @@server_request.header["content-type"])
115-
assert_equal(TestData::ProtocolBuffers::TRACES, @@server_request.body)
122+
assert_equal("/v1/traces", server_request.path)
123+
assert_equal("POST", server_request.request_method)
124+
assert_equal(["application/x-protobuf"], server_request.header["content-type"])
125+
assert_equal(TestData::ProtocolBuffers::TRACES, server_request.body)
116126
end
117127

118128
def test_send_compressed_message
@@ -123,13 +133,25 @@ def test_send_compressed_message
123133
d.feed(event)
124134
end
125135

126-
assert_equal("/v1/logs", @@server_request.path)
127-
assert_equal("POST", @@server_request.request_method)
128-
assert_equal(["application/x-protobuf"], @@server_request.header["content-type"])
129-
assert_equal(["gzip"], @@server_request.header["content-encoding"])
130-
assert_equal(TestData::ProtocolBuffers::LOGS, decompress(@@server_request.body).force_encoding(Encoding::ASCII_8BIT))
136+
assert_equal("/v1/logs", server_request.path)
137+
assert_equal("POST", server_request.request_method)
138+
assert_equal(["application/x-protobuf"], server_request.header["content-type"])
139+
assert_equal(["gzip"], server_request.header["content-encoding"])
140+
assert_equal(TestData::ProtocolBuffers::LOGS, decompress(server_request.body).force_encoding(Encoding::ASCII_8BIT))
141+
end
142+
143+
def test_illigal
144+
set_server_response_code(500)
145+
event = { "type" => "otlp_logs", "message" => TestData::JSON::LOGS }
146+
147+
d = create_driver
148+
d.run(default_tag: "otlp.test") do
149+
d.feed(event)
150+
end
131151
end
132152

153+
154+
133155
def decompress(data)
134156
Zlib::GzipReader.new(StringIO.new(data)).read
135157
end

0 commit comments

Comments
 (0)