Skip to content

Commit bdd7802

Browse files
committed
Fix
1 parent 9e0fb6f commit bdd7802

File tree

2 files changed

+40
-35
lines changed

2 files changed

+40
-35
lines changed

lib/fluent/plugin/out_otlp.rb

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -45,10 +45,6 @@ class RetryableResponse < StandardError; end
4545
def configure(conf)
4646
super
4747

48-
OtlpOutput.const_set(:HTTP_LOGS_ENDPOINT, "#{@http_config.endpoint}/v1/logs".freeze)
49-
OtlpOutput.const_set(:HTTP_METRICS_ENDPOINT, "#{@http_config.endpoint}/v1/metrics".freeze)
50-
OtlpOutput.const_set(:HTTP_TRACES_ENDPOINT, "#{@http_config.endpoint}/v1/traces".freeze)
51-
5248
@tls_settings = {}
5349
if @transport_config.protocol == :tls
5450
@tls_settings[:client_cert] = @transport_config.cert_path
@@ -86,20 +82,32 @@ def write(chunk)
8682

8783
private
8884

85+
def http_logs_endpoint
86+
"#{@http_config.endpoint}/v1/logs"
87+
end
88+
89+
def http_metrics_endpoint
90+
"#{@http_config.endpoint}/v1/metrics"
91+
end
92+
93+
def http_traces_endpoint
94+
"#{@http_config.endpoint}/v1/traces"
95+
end
96+
8997
def create_connection(chunk)
9098
record = JSON.parse(chunk.read)
9199
msg = record["message"]
92100

93101
begin
94102
case record["type"]
95103
when Otlp::RECORD_TYPE_LOGS
96-
uri = HTTP_LOGS_ENDPOINT
104+
uri = http_logs_endpoint
97105
body = Otlp::Request::Logs.new(msg).encode
98106
when Otlp::RECORD_TYPE_METRICS
99-
uri = HTTP_METRICS_ENDPOINT
107+
uri = http_metrics_endpoint
100108
body = Otlp::Request::Metrics.new(msg).encode
101109
when Otlp::RECORD_TYPE_TRACES
102-
uri = HTTP_TRACES_ENDPOINT
110+
uri = http_traces_endpoint
103111
body = Otlp::Request::Traces.new(msg).encode
104112
end
105113
rescue Google::Protobuf::ParseError => e

test/fluent/plugin/test_out_otlp.rb

Lines changed: 25 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
require "webrick"
99

1010
class Fluent::Plugin::OtlpOutputTest < Test::Unit::TestCase
11+
class ServerRequest < Struct.new(:request_method, :path, :header, :body); end
12+
1113
DEFAULT_LOGGER = ::WEBrick::Log.new($stdout, ::WEBrick::BasicLog::FATAL)
1214

1315
def config
@@ -29,18 +31,15 @@ def server_config
2931
def run_http_server
3032
server = ::WEBrick::HTTPServer.new(server_config)
3133
server.mount_proc("/v1/metrics") do |req, res|
32-
@server_request = req
33-
@server_request_body = req.body
34+
@@server_request = ServerRequest.new(req.request_method.dup, req.path.dup, req.header.dup, req.body.dup)
3435
res.status = 200
3536
end
3637
server.mount_proc("/v1/traces") do |req, res|
37-
@server_request = req
38-
@server_request_body = req.body
38+
@@server_request = ServerRequest.new(req.request_method.dup, req.path.dup, req.header.dup, req.body.dup)
3939
res.status = 200
4040
end
4141
server.mount_proc("/v1/logs") do |req, res|
42-
@server_request = req
43-
@server_request_body = req.body
42+
@@server_request = ServerRequest.new(req.request_method.dup, req.path.dup, req.header.dup, req.body.dup)
4443
res.status = 200
4544
end
4645
server.start
@@ -55,16 +54,14 @@ def run_http_server
5554
def setup
5655
Fluent::Test.setup
5756

58-
@server_request = nil
59-
@server_request_body = nil
60-
@http_server_thread ||= Thread.new do
57+
@@server_request = nil
58+
@@http_server_thread ||= Thread.new do
6159
run_http_server
6260
end
6361
end
6462

6563
def teardown
66-
@server_request = nil
67-
@server_request_body = nil
64+
@@server_request = nil
6865
end
6966

7067
def create_driver(conf = config)
@@ -84,10 +81,10 @@ def test_send_logs
8481
d.feed(event)
8582
end
8683

87-
assert_equal("/v1/logs", @server_request.path)
88-
assert_equal("POST", @server_request.request_method)
89-
assert_equal(["application/x-protobuf"], @server_request.header["content-type"])
90-
assert_equal(TestData::ProtocolBuffers::LOGS, @server_request_body)
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)
9188
end
9289

9390
def test_send_metrics
@@ -98,10 +95,10 @@ def test_send_metrics
9895
d.feed(event)
9996
end
10097

101-
assert_equal("/v1/metrics", @server_request.path)
102-
assert_equal("POST", @server_request.request_method)
103-
assert_equal(["application/x-protobuf"], @server_request.header["content-type"])
104-
assert_equal(TestData::ProtocolBuffers::METRICS, @server_request_body)
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)
105102
end
106103

107104
def test_send_traces
@@ -112,10 +109,10 @@ def test_send_traces
112109
d.feed(event)
113110
end
114111

115-
assert_equal("/v1/traces", @server_request.path)
116-
assert_equal("POST", @server_request.request_method)
117-
assert_equal(["application/x-protobuf"], @server_request.header["content-type"])
118-
assert_equal(TestData::ProtocolBuffers::TRACES, @server_request_body)
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)
119116
end
120117

121118
def test_send_compressed_message
@@ -126,11 +123,11 @@ def test_send_compressed_message
126123
d.feed(event)
127124
end
128125

129-
assert_equal("/v1/logs", @server_request.path)
130-
assert_equal("POST", @server_request.request_method)
131-
assert_equal(["application/x-protobuf"], @server_request.header["content-type"])
132-
assert_equal(["gzip"], @server_request.header["content-encoding"])
133-
assert_equal(TestData::ProtocolBuffers::LOGS, decompress(@server_request_body).force_encoding(Encoding::ASCII_8BIT))
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))
134131
end
135132

136133
def decompress(data)

0 commit comments

Comments
 (0)