跨日志线相似性的算法分析?

标签 algorithm logging machine-learning analysis

我有一个日志,我正在尝试寻找模式,或者分析不同时间的相似之处。

每个日志行可以分解为:

  1. 时间戳
  2. 模块/功能
  3. 有效负载(即实际日志消息)。

是否有任何算法方法可以在一组日志行中找到相似之处?

我知道用于比较字符串的 Levenshtein 距离之类的东西,但是,我希望有一种更通用的方法可以用来运行日志文件?

可能没有一个适合所有情况的解决方案(尽管如果有,请告诉我!)- 但指向正确方向的指针,或者我可以寻找更多信息的地方会很棒。

编辑 - 日志类型的一些示例

11:30:00.028747923 [Debug ] [Skywalker] [BuyOrNot] session(server1) animal_type(cats) simpleprice(21643.5) complexprice(21641.9 - 21645.1) supercomplexprice(21641.9 - 21644.1)
11:30:00.028882087 [Debug ] [Skywalker] [BuyOrNot] session(server1) animal_type(cats) simpleprice(21643.2) complexprice(21643.2 - 21643.2) supercomplexprice(21643.2 - 21643.2)
11:30:00.039708519 [Debug ] [Skywalker] [BuyOrNot] session(server1) animal_type(cats) simpleprice(10465.8) complexprice(10465.8 - 10465.8) supercomplexprice(10465.8 - 10465.8)
11:30:00.039718896 [Debug ] [Skywalker] [BuyOrNot] session(server1) animal_type(cats) simpleprice(10466.5) complexprice(10465.9 - 10467.1) supercomplexprice(10465.9 - 10466.7)
11:30:00.040049452 [Debug ] [Skywalker] [BuyOrNot] session(server1) animal_type(cats) simpleprice(-0.184) complexprice(-0.184 - -0.184) supercomplexprice(-0.184 - -0.184)

11:30:00.704976265 [Debug ] [Skywalker] [SetChickenParameter] composite(wheatbag) leg(MARKET:388, 10456) legParams updated
11:30:00.704984746 [Info  ] [Skywalker] [OnCompositeLegVolatileParamsSetMessage] client(f1_ar_cmp_hk_tko_061), composite(wheatbag) composite leg(ID={Market="MARKET" Feedcode="386"} Identifier=10455) params(bidPrice=0 askPrice=0)
11:30:00.704992314 [Debug ] [Skywalker] [SetChickenParameter] composite(wheatbag) leg(MARKET:386, 10455) legParams updated
11:30:00.704995811 [Info  ] [Skywalker] [OnCompositeLegVolatileParamsSetMessage] client(f1_ar_cmp_hk_tko_061), composite(wheatbag) composite leg(ID={Market="MARKET" Feedcode="1171"} Identifier=16262) params(bidPrice=0 askPrice=0)
11:30:00.705002094 [Debug ] [Skywalker] [SetChickenParameter] composite(wheatbag) leg(MARKET:1171, 16262) legParams updated
11:30:00.705004666 [Info  ] [Skywalker] [OnCompositeLegVolatileParamsSetMessage] client(f1_ar_cmp_hk_tko_061), composite(wheatbag) composite leg(ID={Market="MARKET" Feedcode="883"} Identifier=10463) params(bidPrice=0 askPrice=0)
11:30:00.705010516 [Debug ] [Skywalker] [SetChickenParameter] composite(wheatbag) leg(MARKET:883, 10463) legParams updated
11:30:00.705012997 [Info  ] [Skywalker] [OnCompositeLegVolatileParamsSetMessage] client(f1_ar_cmp_hk_tko_061), composite(wheatbag) composite leg(ID={Market="MARKET" Feedcode="3968"} Identifier=10457) params(bidPrice=0 askPrice=0)
11:30:00.705018983 [Debug ] [Skywalker] [SetChickenParameter] composite(wheatbag) leg(MARKET:3968, 10457) legParams updated

我在想我可以创建某种不同正则表达式的字典来匹配不同类型的日志文件——然后找到每种类型的变量点——并使用某种启发式方法来匹配每个点的不同/相似程度?

或者有没有“更聪明”的方法来解决这个问题?

最佳答案

logline 已经是非常结构化的东西,所以你可以为不同的部分定义不同的相似性标准,例如时间戳字段相似性可以是两个时间戳的接近程度,或者,例如,一天中的同一时间,对于模块/函数,可能只有完全相等才有效,有效负载的比较在很大程度上取决于您的域

关于跨日志线相似性的算法分析?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15940874/

相关文章:

algorithm - 随机排序的复杂性

java - MariaDB JDBC 客户端日志记录

python - 在 flask 中记录我自己的消息

MySQL - 日志是否记录父子表的删除查询?

python - 将 ndarray 转换为灰度

python - 打印随机森林分类器中特定样本的决策路径

python - 在 Keras 中将循环层与致密层合并

algorithm - 大O,您如何计算/近似?

algorithm - 电子邮件的 GMail diff 算法

c - memcpy正确的实现方式