我已将ELK配置为脱机收集数据,日志文件如下所示:
Info 2015-08-15 09:33:37,522 User 3 connected
Info 2015-08-15 10:03:57,592 User 99 connected
Info 2015-08-15 11:42:37,522 User 99 disconnected
Info 2015-08-15 11:49:12,108 User 3 disconnected
我正在寻找的是时间线上的平均连接时间。
我无法在消息中添加更多信息,特别是无法在断开连接消息中添加连接时间。
如果要用Logstash加载ES,则可以使用aggregate
过滤器来组装相关的离散日志行。这个想法是要注意一个持续时间较长的事件何时开始(即用户已连接),然后disconnected
在同一用户的事件通过以下时间结束时结束该事件:(请注意,您的grok模式可能有所不同,但是原理是相同的)
filter {
grok {
match => [ "message", "%{LOGLEVEL:loglevel} %{TIMESTAMP_ISO8601:timestamp} %{WORD:entity} %{INT:userid} %{WORD:status}" ]
}
if [status] == "connected" {
aggregate {
task_id => "%{userid}"
code => "map['started'] = event['timestamp']"
map_action => "create"
}
}
if [status] == "disconnected" {
aggregate {
task_id => "%{userid}"
code => "event['duration'] = event['timestamp'] - map['started']"
map_action => "update"
end_of_task => true
timeout => 86400000
}
}
}
最后,您将获得一个名为duration
(以毫秒为单位)的附加字段,然后可以使用该字段在Kibana上绘制以显示平均连接时间。
另请注意,我给了一天的任意超时时间,这可能会也可能不适合您的情况。随意玩。
我的任务是比较一些当前时期的日志和旧的日志。例如——本周日志和前一周日志。但是当我创建这样的第二个轴时 我有一个空的部分,因为我所有的xAx都是“时间”类型的,并且点的时间不一样(这是绝对正常的行为)。我有这种情况 但是我需要制作独立的轴,例如:顶部轴开始于30sep,结束于3oct底部轴开始于7oxt,结束于10oct,它们的长度都相同 我试着创造这样的斧头 但是如果没有“ticks”属性,我会
回去...
好了,这里是第一次用到NutDao的关联关系了, 打开User类,加入2行 @One(target=UserProfile.class, field="id", key="userId") protected UserProfile profile; 自然的,为其添加Getter/Setter
发现问题! 假如按照上一讲的制作方法,设定了对话框的话,实际执行游戏时,会是下面的效果: 人物姓名占用了原本对话的第一行位置,并且把对话挤到第二行了。这当然可以通过调整对话框的文字显示范围来修改,但是只做这样的修改的话,名字和对话永远是对齐的,并且距离也是固定的。有没有什么办法作出“姓名和对话分开”的效果呢?答案当然是肯定的,只不过需要一点努力~ 将姓名与对话显示分离 这个修改没有图形界面,不过也
问题内容: 我已经研究了很多关于Java线程的教程,但是找不到答案。 我的问题是:如何同时运行两个独立的线程? 我的情况是:我有两个任务; 保存一些数据到数据库 在移动设备上发送推送通知。 由于这两个任务是独立的,因此我想同时执行它们。 我尝试使用具有两个线程的线程池,但是问题是数据库任务很快完成,但是发送推送通知需要一些时间。 因此,当一个任务完成而另一个任务仍未完成时,它将引发异常。 我的代码
如何使用gcc 7.2.0在64位DebianLinux上的C中创建两个独立的随机数生成器(无需加密安全)?两个RNG中的一个应该使用,而另一个应该使用命令行参数初始化以创建可重复的实验。下面的示例将为同一个RNG播种两个不同的值,这将如何工作有两个不同的可能的调用? 这样做的目的是,我使用一个RNG动态生成问题实例,在所有实验运行中都应该是相同的,因此在所有程序重新启动时遵循相同的种子。第二个R