-
Notifications
You must be signed in to change notification settings - Fork 17
Description
We are using the kusto output plugin on a very bust logstash with thousands of logs a minute, with many kusto output blocks (one for each table)
Sample kusto output block
kusto {
path => "/tmp/kusto-serviceA/%{+YYYY-MM-dd-HH-mm}.txt"
ingest_url => "https://ingest-${ADX_CLUSTER}.${AZURE_REGION}.kusto.windows.net"
app_id => "${APP_ID}"
app_key => "${APP_KEY}"
app_tenant => "${APP_TENANT}"
database => "${ADX_DB}"
table => "_serviceA"
json_mapping => "_serviceA_mapping"
}
This works most of the time, but we see around 0.5% of the events have the following error (with service name replaced):
[2025-08-16T16:09:54,263][ERROR][logstash.outputs.kusto ][pipeline][e1f976b130786e6ec4e5b77d8357144a209a9ac2cea8e1d16bb5cc679fc61617] File doesn't exist! Unrecoverable error. {:exception=>Errno::ENOENT, :message=>"No such file or directory - No such file or directory - /tmp/kusto-serviceA/2025-08-16-16-09.txt.prod.serviceA", :path=>"/tmp/kusto-serviceA/2025-08-16-16-09.txt.prod.serviceA", :backtrace=>["org/jruby/RubyFileTest.java:248:in size'", "/usr/share/logstash/vendor/bundle/jruby/2.6.0/gems/logstash-output-kusto-1.0.6-java/lib/logstash/outputs/kusto/ingestor.rb:94:in
upload'", "/usr/share/logstash/vendor/bundle/jruby/2.6.0/gems/logstash-output-kusto-1.0.6-java/lib/logstash/outputs/kusto/ingestor.rb:86:in block in upload_async'", "/usr/share/logstash/vendor/bundle/jruby/2.6.0/gems/concurrent-ruby-1.1.9/lib/concurrent-ruby/concurrent/executor/java_executor_service.rb:79:in
run'"]}
Infra:
Image: docker.elastic.co/logstash/logstash:8.5.0
Arch: Linux/amd64
Plugin Version: v2.0.2
Can you further explain how does the file rotation happen? Is there a possibility files are uploaded and deleted while another worker is writing to them?