为Grafolean创建(受控)收集器的公用工具

grafoleancollector的Python项目详细描述


关于Grafolean Collector Python库

这是一个python3库,它帮助构建Grafolean的数据收集器(bots),Grafolean是一个易于使用的通用监控系统。管理的{eem>{1}只对进行控制。这类机器人程序的例子有SNMP、icmpping和NetFlow机器人程序,它们都使用这个库。在

许可证

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()的周期性调用并调度返回的(周期性)作业

开发商的责任是:

  1. 实现jobs()函数
  2. 实现一个函数,该函数将在每次运行作业时被调用(在下面的示例中为perform_job,在snmpbot中为do_snmp)。此函数应调用send_results_to_grafolean()将结果发布到Grafolean。在

Grafolean前端也需要进行相应的更改(对协议的支持-凭证、传感器、可能还有其他实体类型)。目前这只能通过修改Grafolean前端源代码来实现。在

实现jobs()

此方法的主要目的是将有关需要执行的操作的信息(通常此信息是调用self.fetch_job_configs())拆分为单独的作业。这样做的方式是特定于协议的。例如,snmpbot需要知道单个作业中一个实体上的所有传感器,因为它可能能够优化查询(合并它们,使用批量)。另一方面,NetFlow Bot每个作业只处理一个传感器,因为它不需要合并它们,这简化了实现。在

下面是一个简短的示例(使用虚构的MyProtocol协议)如下所示:

^{pr2}$

发展

贡献

要对这个存储库作出贡献,需要对CLA进行签名。在提交拉取请求之前,请先打开有关您所面临问题的问题。在

问题

如果您在安装或运行软件时遇到任何问题,请在issues中通知我们。在

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何按顺序显示父节点属性值和关联的子节点属性值?   java Zip 2在Spring Webfux中的不同Mono   java Twitter oauth_签名创建   SpringBoot中未标识java自定义依赖项   如何使用Java访问netbeans中的json Post方法值   在Java中查找数字的位数之和   java Hibernate使用date where子句过滤单列数据   java Spring@ExceptionHandler未捕获AccessDeniedException   java如何知道bean是否有一些值   javavaadin谷歌描述   javafx如何修复“java未命名模块从y和z读取程序包x”   Java generictyped方法返回错误的类型   java Android从应用程序发送电子邮件崩溃电子邮件强制关闭   Java与C版本的相同算法   Java编程异常   java动态生成收据   java使用ACRCloud将音频记录保存在文件中   java在注册到web应用程序后激活帐户   Java数组删除最后存储的元素