运营统计数据收集系统的建议

时间:2011-12-15 21:20:17

标签: php c++ linux statistics ipc

我有一个在Linux上运行的Web服务,它包含一些依赖于C ++程序来完成繁重任务的PHP代码。 PHP和C ++代码每个事务运行一次,然后终止。它不是(还)持久的(即一个守护进程),是的,我知道它会更有效率。

交易完成后,会累积各种信息(统称为“统计数据”或“统计数据”)。该信息包括分析信息,例如交易的各种子任务的执行时间,以及逻辑信息,例如交易的性质和结果。这些指标是高度针对特定应用的,因此通用的监控和测量工具可能不合适。

我想开始记录这些信息,但我不希望记录它的行为干扰性能。具体来说,我假设我不想在每个事务上产生数据库连接和拆卸的成本,或者在等待对文件的写访问时阻塞。如果可能的话,我想在许多交易中摊销这笔费用。我不关心统计记录是用C ++还是PHP代码完成的。

我想知道一个好方法是否会在服务器本身作为守护进程运行并接收统计数据包(可能是JSON或protobufs或其他打包格式)。传递通道可以是插座或管道或其他一些有效的IPC。这些数据包将被收集到数据包中并定期存储到数据库或以其他方式移出服务器。通过最小化每个数据包的处理,并在许多数据包中分摊昂贵的操作来实现效率。

我的第一个问题:我上面概述的方法是否可行且最佳?我还应该考虑其他设计吗?

我的第二个问题:这感觉就像应该存在的东西。 Linux系统是否有接收,收集和转发统计数据包的通用工具?

1 个答案:

答案 0 :(得分:0)

首先略微偏离主题问题;如果你在C ++中完成所有工作,为什么要打扰PHP呢?非常好奇地知道你的推理。

流行的统计信息收集数据库之一是RRD,它在PHP中得到了很好的支持。它用于抽样统计数据。