Python 如何从SCOCollector运行外部收集器?

Python 如何从SCOCollector运行外部收集器?,python,opentsdb,scollector,Python,Opentsdb,Scollector,我正在尝试从ScoCollector运行指向ScoCollector/collectors/0文件夹的/path中的external sample.py脚本 scocollector.toml: Host = "localhost:0" ColDir="//path-to-scollector//collectors//" BatchSize=500 DisableSelf=true 运行SCOCollector的命令: scollector-windows-amd64.exe -conf s

我正在尝试从ScoCollector运行指向ScoCollector/collectors/0文件夹的/path中的external sample.py脚本

scocollector.toml:

Host = "localhost:0"
ColDir="//path-to-scollector//collectors//"
BatchSize=500
DisableSelf=true
运行SCOCollector的命令:

scollector-windows-amd64.exe -conf scollector.toml -p
但我没有在输出中获得sample.py指标。预计它将连续运行并将输出打印到cnosole。当我跑步时:

 scollector-windows-amd64.exe -conf scollector.toml -l

我的外部收集器未列出。

在您的scocollector.toml中,您应该有一行,如下所示,
Filter=[“sample.py”]

在sample.py中,您需要这一行

#/usr/bin/python

对于在linux机器上运行SCOCollector,上述解决方案运行良好。但对于windows来说,这有点棘手。因为在windows上运行的SCOCollector只能识别批处理文件。所以我们需要为windows做一些额外的工作

创建外部收集器:- 它可以用python、java等任何语言编写。它包含获取数据并打印到控制台的主代码

示例my_external_collector.py

创建包装器批处理脚本:- 包装器\外部\收集器.bat

触发my_external_collector.py in wrapper_external_collector.bat

您也可以将参数传递给脚本。唯一的缺点是我们需要维护两个脚本

python path_to_external/my_external_collector.py