Mysql 日志存储聚合重置值
我在做一个简单的日志存储聚合,在这里我检查SQL表上的特定值,每当发现这个值时,我就增加计数器。最后,我只是做了另一个简单的除法,计算了多少次,我把那个值和那天的所有值相加,以得到一个百分比。日期是我的任务id 从逻辑角度来看,百分比将从100%下降,并将一直下降,直到日期重置 每次我让logstash同时运行整个SQL表时,聚合都会起作用 但是,当logstash运行较长时间并且SQL表不断更新时,我无法工作。在这里,我看到由于某种原因,百分比计算在同一天被重置(我每天看到100%以上) 我不知道为什么重新计算。任何帮助都将不胜感激 这是我的完整日志存储配置:Mysql 日志存储聚合重置值,mysql,logstash,Mysql,Logstash,我在做一个简单的日志存储聚合,在这里我检查SQL表上的特定值,每当发现这个值时,我就增加计数器。最后,我只是做了另一个简单的除法,计算了多少次,我把那个值和那天的所有值相加,以得到一个百分比。日期是我的任务id 从逻辑角度来看,百分比将从100%下降,并将一直下降,直到日期重置 每次我让logstash同时运行整个SQL表时,聚合都会起作用 但是,当logstash运行较长时间并且SQL表不断更新时,我无法工作。在这里,我看到由于某种原因,百分比计算在同一天被重置(我每天看到100%以上) 我不
input {
jdbc {
jdbc_connection_string => "jdbc:mysql://localhost:3306/sql_failure"
jdbc_user => "user"
jdbc_password => "password"
jdbc_driver_library => "D:\logstash-7.2.0\mysql-connector-java-5.1.40\mysql-connector-java-5.1.40-bin.jar"
jdbc_driver_class => "com.mysql.jdbc.Driver"
statement => "SELECT id, date, failure FROM sql_failure WHERE id > :sql_last_value"
use_column_value => true
tracking_column => "id"
}
}
filter {
aggregate {
task_id => "%{date}"
code => "
map['count'] ||= 0
map['failure_counter'] ||= 0
map['count'] += 1
if event.get('failure') == 1
map['failure_counter'] += 1
end
event.set('failure_rate', ((map['count'].to_f - map['failure_counter'].to_f)/(map['count'].to_f))*100)
"
}
}
output {
elasticsearch {
hosts => "localhost:9200"
index => "failure"
document_id => "%{uid}"
}
}
这就是我的管道。yml:
pipeline.id: sql_failure
pipeline.workers: 1
queue.type: persisted
path.config: "/logstash/failure_rate.config"
请考虑给出一个可重复的例子。你是否用不同的工人数运行LogSTASH?运行这样的东西通常只需要运行一个工人。。。您还可以考虑向您的问题添加关于LogStAsAg配置的一些信息。@丹尼尔和@ NACKX,我将LogStuh和PiPuleLink配置中的信息添加到我的帖子中。我现在想知道管道的某些配置是否是罪魁祸首。例如,我没有配置<代码>队列。检查点。间隔< /代码>请考虑给出一个可重复的示例。您是否运行了不同工种计数的LogSTASH?运行这样的东西通常只需要运行一个工人。。。您还可以考虑向您的问题添加关于LogStAsAg配置的一些信息。@丹尼尔和@ NACKX,我将LogStuh和PiPuleLink配置中的信息添加到我的帖子中。我现在想知道管道的某些配置是否是罪魁祸首。例如,我没有配置
queue.checkpoint.interval