动态识别日志中错误的频率



我一开始会留下来,我不是开发人员。我的编码技术很初级,所以如果这个问题在另一个地方得到了回答,我很抱歉,我错过了

我们的软件直接在客户机器上运行,生成并上传";错误";日志。目前,这些日志只会上传到我们服务器上的文件夹中,大约每30分钟就会有一次,服务会读取它们以获取客户ID,并将它们转移到客户的帐户中。他们坐在那里,直到有人手动看着他们,决定他们是否有意义,如果有什么意义的话,该做什么。

这对于追溯查看客户是否与另一个客户有相同的问题非常有效。

我想做的是让读取客户ID日志的服务也使用某种模式分析来识别每个唯一的错误,然后记录随时间变化的频率。如每月1天、3天、5天、1周、2周等

部分问题在于错误日志是在客户的机器上动态生成的。有些错误是我们在代码中预先编写的,但我们得到的许多错误来自第三方来源和集成。我们遇到的许多错误都不是我们应该提前发现的。

一个很好的例子是,戴尔改变了他们的一个系统工具,开始删除我们的几个文件;它产生了一个特定的错误。不是我们写的,但仍然足够具体,一旦我们确定了它,我们就可以追踪它

所以,在那冗长的解释之后。有没有一种好的方法来进行这种类型的分析?我们通常更喜欢尽可能多地使用.net框架。我看到的大多数结果都取决于寻找现有的模式,而这并不是我想要的。

有很多方法可以思考偏离幸福之路的方法,但有一个观点需要区分:

  • 可预测的问题;让我们将这些故障称为
  • 无法预测的问题;让我们将这些异常称为

应在代码中处理可预测的故障。这是可能的,确切地说是,因为它们是可预测的。由于代码可以处理这些故障,因此没有什么理由记录它们。

真正特殊的问题是那些你无法预测的问题。那些你记录的。然而,由于你无法预测它们,我看不出如果没有人类的解释,你如何才能有效地分析它们。

如果第三方系统往往会导致问题,请设置合同测试并对其进行监控。

我也是这方面的新手。我刚刚发现了一个处理文本中单词频率的代码。我不确定这是否是问题所在,但这仍然是一个想法,对吧?:(

def count_errors(logs):
result = {}
for errors in logs:
if errors not in result:
result[errors] = 0
result[errors] += 1
return result

它给出了一个错误字典作为关键字,并给出了它们的出现次数作为值。

不过,我也对解决方案感到好奇:(

最新更新