收集有关如何使用程序的统计信息

时间:2016-06-16 07:04:25

标签: python usage-statistics

我有一些类似的程序,但它们是用不同的语言编写的。我想以某种方式监视我编写的程序的使用方式 - 代码运行了多少次?使用特定方法/功能多少次?编译需要多长时间?

我的目标是获得图形表示,以便我可以轻松地比较漂亮图表中的程序 - 因此我显然需要我的解决方案与语言无关。

处理此任务的最佳方法是什么?有人向Ganglia暗示我,但我不确定这正是我正在寻找的 - 我不想监视集群,我想监视处理不同代码的方式。

2 个答案:

答案 0 :(得分:0)

我建议您查看sentry。它是免费的,拥有多种语言的客户。

基本用法:

ClassName3

答案 1 :(得分:0)

如果你想编写一个无论语言有用的东西,而不是为每种语言添加一些东西,那么对我来说,选项1就是为所有程序编写一个包装器,并替换原件。你没有提到你的操作系统,但在Linux上我会做以下事情:

$ cat wrapper.sh
#!/bin/bash
echo "This is my logging statement"
exec /path/to/real/scripts/$(basename $0) $*

然后将所有脚本移动到/path/to/real/scripts并使用符号链接将原始位置替换为包装脚本:

bar -> wrapper.sh
foo -> wrapper.sh

因此,当您从原始位置调用foo时,它会运行包装器,它知道它已使用名称foo进行调用,因此可以找到真正的脚本以便在它之后运行完成了日志记录。

为了收集数据,像Graphite(http://graphite.readthedocs.io/en/latest/overview.html),InfluxDB(https://influxdata.com/)或类似的东西可能最容易设置。

从长远来看,'我们提前考虑过这个问题'选项是让编码标准说“将程序使用到这个位置”,因为它避免了包装并使事情更容易管理。