如何从Scollector运行外部收集器?

时间:2018-01-03 08:45:15

标签: python opentsdb scollector

我正在尝试从scollector中的 / path-to-scollector / collectors / 0 文件夹中运行外部sample.py脚本。

scollector.toml:

Host = "localhost:0"
ColDir="//path-to-scollector//collectors//"
BatchSize=500
DisableSelf=true

运行scollector的命令:

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

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

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

我的外部收藏家未列出。

2 个答案:

答案 0 :(得分:2)

在你的scollector.toml中,你应该如下一行,
Filter=["sample.py "]

你的sample.py中的

,你需要这一行 #!/usr/bin/python

答案 1 :(得分:1)

对于在linux机器上运行scollector,上述解决方案效果很好。但是使用Windows有点棘手。由于在Windows上运行的scollector只能识别批处理文件。因此,我们需要为Windows做一些额外的工作。

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

示例 my_external_collector.py

创建包装批处理脚本:- wrapper_external_collector.bat

wrapper_external_collector.bat 中触发

触发 my_external_collector.py

 <?php 

           if($fetch_data->num_rows() > 0)  
           {  
                foreach($fetch_data->result() as $row)  
                {  
           ?>  
                <tr>  

                     <td><?php echo $row->Abstract

                </tr>  
           <?php       
                }  
           }  

           ?>  
            </table> 

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