我有一些类似的程序,但它们是用不同的语言编写的。我想以某种方式监视我编写的程序的使用方式 - 代码运行了多少次?使用特定方法/功能多少次?编译需要多长时间?
我的目标是获得图形表示,以便我可以轻松地比较漂亮图表中的程序 - 因此我显然需要我的解决方案与语言无关。
处理此任务的最佳方法是什么?有人向Ganglia暗示我,但我不确定这正是我正在寻找的 - 我不想监视集群,我想监视处理不同代码的方式。
答案 0 :(得分:0)
答案 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/)或类似的东西可能最容易设置。
从长远来看,'我们提前考虑过这个问题'选项是让编码标准说“将程序使用到这个位置”,因为它避免了包装并使事情更容易管理。