为Grafolean创建(受控)收集器的公用工具
grafoleancollector的Python项目详细描述
关于Grafolean Collector Python库
这是一个python3库,它帮助构建Grafolean的数据收集器(bots),Grafolean是一个易于使用的通用监控系统。管理的{eem>{1}只对
许可证
License is Commons Clause License(在apache2.0之上)–源代码是可用的,您可以免费(商业上也)使用它,修改和 分享,但你不能卖给第三方。有关详细信息,请参见LICENSE.md。在
如有疑问,请open an issue进一步澄清。在
安装
$ pip install grafoleancollector
使用
库grafoleancollector
为与Grafolean后端API的交互提供了一个框架。它不是必需的,一切都可以通过调用API来完成,但它确实提供了一些抽象,应该可以使编写bot的工作更容易。在
一个基本的假设是一个bot只满足一个协议,并且数据被轮询。如果数据应该被推送,那么就不需要一个框架——只要在数据可用时将数据发布到Grafolean。在
这个库提供了一个类Collector
。预计bot实现者将子类Collector
,并实现缺失的函数。课程提供:
fetch_job_configs()
-一个用于获取“作业配置”的函数-针对每个适用的帐户、每个适用的实体和每个适用的传感器(以及所有必要的详细信息)execute()
-一个阻塞函数,它执行对jobs()
的周期性调用并调度返回的(周期性)作业
开发商的责任是:
- 实现
jobs()
函数 - 实现一个函数,该函数将在每次运行作业时被调用(在下面的示例中为
perform_job
,在snmpbot中为do_snmp
)。此函数应调用send_results_to_grafolean()
将结果发布到Grafolean。在
Grafolean前端也需要进行相应的更改(对协议的支持-凭证、传感器、可能还有其他实体类型)。目前这只能通过修改Grafolean前端源代码来实现。在
实现jobs()
此方法的主要目的是将有关需要执行的操作的信息(通常此信息是调用self.fetch_job_configs()
)拆分为单独的作业。这样做的方式是特定于协议的。例如,snmpbot需要知道单个作业中一个实体上的所有传感器,因为它可能能够优化查询(合并它们,使用批量)。另一方面,NetFlow Bot每个作业只处理一个传感器,因为它不需要合并它们,这简化了实现。在
下面是一个简短的示例(使用虚构的MyProtocol
协议)如下所示:
发展
贡献
要对这个存储库作出贡献,需要对CLA进行签名。在提交拉取请求之前,请先打开有关您所面临问题的问题。在
问题
如果您在安装或运行软件时遇到任何问题,请在issues中通知我们。在
- 项目
标签: