Skip to content

Commit ab482e8

Browse files
committed
Fix incorrect statement split, use more relaxed JSON encoder
`log.fatal` statement was split incorrectly into lines, so that part of the message is actually not logged. Use 'yajl' instead of default JSON encoder, due to the following problem observed: ``` 2019-07-29 19:47:09 +0000 [warn]: #0 failed to flush the buffer. retry_time=0 next_retry_seconds=2019-07-29 19:47:10 +0000 chunk="58e09d319b82a042ddc2fef0edb883b1" error_class=Encoding::UndefinedConversionError error="\"\\xE2\" from ASCII-8BIT to UTF-8" 2019-07-29 19:47:09 +0000 [warn]: #0 /usr/lib/ruby/gems/2.5.0/gems/fluent-plugin-azure-loganalytics-0.3.1/lib/fluent/plugin/out_azure-loganalytics.rb:101:in `encode' 2019-07-29 19:47:09 +0000 [warn]: #0 /usr/lib/ruby/gems/2.5.0/gems/fluent-plugin-azure-loganalytics-0.3.1/lib/fluent/plugin/out_azure-loganalytics.rb:101:in `to_json' 2019-07-29 19:47:09 +0000 [warn]: #0 /usr/lib/ruby/gems/2.5.0/gems/fluent-plugin-azure-loganalytics-0.3.1/lib/fluent/plugin/out_azure-loganalytics.rb:101:in `rescue in write' 2019-07-29 19:47:09 +0000 [warn]: #0 /usr/lib/ruby/gems/2.5.0/gems/fluent-plugin-azure-loganalytics-0.3.1/lib/fluent/plugin/out_azure-loganalytics.rb:93:in `write' 2019-07-29 19:47:09 +0000 [warn]: #0 /usr/lib/ruby/gems/2.5.0/gems/fluentd-1.4.2/lib/fluent/plugin/output.rb:1125:in `try_flush' 2019-07-29 19:47:09 +0000 [warn]: #0 /usr/lib/ruby/gems/2.5.0/gems/fluentd-1.4.2/lib/fluent/plugin/output.rb:1425:in `flush_thread_run' 2019-07-29 19:47:09 +0000 [warn]: #0 /usr/lib/ruby/gems/2.5.0/gems/fluentd-1.4.2/lib/fluent/plugin/output.rb:454:in `block (2 levels) in start' 2019-07-29 19:47:09 +0000 [warn]: #0 /usr/lib/ruby/gems/2.5.0/gems/fluentd-1.4.2/lib/fluent/plugin_helper/thread.rb:78:in `block in thread_create' ```
1 parent 43b4b7a commit ab482e8

File tree

2 files changed

+5
-4
lines changed

2 files changed

+5
-4
lines changed

fluent-plugin-azure-loganalytics.gemspec

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ Gem::Specification.new do |gem|
2020

2121
gem.add_dependency "fluentd", [">= 0.14.15", "< 2"]
2222
gem.add_dependency "rest-client"
23+
gem.add_dependency "yajl-ruby"
2324
gem.add_dependency "azure-loganalytics-datacollector-api", [">= 0.1.5"]
2425
gem.add_development_dependency "bundler", "~> 1.11"
2526
gem.add_development_dependency "rake", "~> 10.0"

lib/fluent/plugin/out_azure-loganalytics.rb

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -95,12 +95,12 @@ def write(chunk)
9595
begin
9696
res = @client.post_data(@log_type, records, @time_generated_field)
9797
if not Azure::Loganalytics::Datacollectorapi::Client.is_success(res)
98-
log.fatal "DataCollector API request failure: error code: "
99-
+ "#{res.code}, data=>" + records.to_json
98+
log.fatal "DataCollector API request failure: error code: " +
99+
"#{res.code}, data=>" + Yajl.dump(records)
100100
end
101101
rescue Exception => ex
102-
log.fatal "Exception occured in posting to DataCollector API: "
103-
+ "'#{ex}', data=>" + records.to_json
102+
log.fatal "Exception occured in posting to DataCollector API: " +
103+
"'#{ex}', data=>" + Yajl.dump(records)
104104
end
105105
end
106106
end

0 commit comments

Comments
 (0)