如何设计多源测井数据

2024-05-16 19:56:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个多模块运行,我想检索数据,并通过一个集中的日志存储它。模块是用C或Python编写的。记录器是用Python编写的。数据是通过POST请求发送到服务器的JSON对象。你知道吗

我不确定是否应该为每个模块添加向记录器报告数据的功能,或者记录器是否应该请求检索该信息本身。为了简化示例,假设我有两个模块,一个是监视数据,需要每秒连续报告一个值。第二个模块将根据事件报告数据。当事件发生时,需要记录它。所以它会记录随时可能发生的值的变化。你知道吗

我这样问是因为我不想为记录器上的每个模块引入依赖关系。另一种方法是另一小块代码,它始终从第一个模块检索值,并监视第二个模块中的值是否有变化。然后在需要时将数据传递给记录器。你知道吗

第一个模块的数据如下所示,格式为(时间戳,值):

[(0,100), (1,110), (2,120), (3, 100)]

从第二个开始:

[(0,0), (10, 5), (12, 7), (20, 5)]

Tags: 模块数据对象功能服务器信息json示例
1条回答
网友
1楼 · 发布于 2024-05-16 19:56:57

我认为这是一个很好的问题,很多人都错了。以下是需要考虑的几点:

  1. 当您想更改日志格式等时,您希望最小化对所开发模块的更改
  2. 日志机制中的问题不应影响应用程序性能
  3. 日志基础设施可以支持日志的突发性

有两种方法: 1在每台生成事件的机器上运行一个简单的代理,如rsyslog、nxlog或logstash。这些代理知道如何获取JSON或其他格式,并将它们高效地传送到中心记录器。它将减少集成负担,并将性能影响降至最低

  1. 编写一个appender,将每个日志的JSON简单地发布到您的中心记录器。它确实需要更紧密的集成,而且您有责任高效地进行集成,但这可能是最好的方法。你知道吗

您可以查看Github(https://github.com/logzio)上的http://Logz.io存储库,您可以使用一些开源附加程序(用于#2)。你知道吗

祝你好运。你知道吗

相关问题 更多 >