一个基于twisted的守护进程,用于向leftronic.com发送度量

leftronicd_db的Python项目详细描述


定期将信息发布到leftronic.com的脚本

安装

  • 制作一个virtualenv
  • pip install leftronicd

配置

配置在yaml中完成。

快捷键

您的Leftronic API访问密钥。

流配置列表。

每个流都需要以下值:

  • method:生成值的方法
  • type:值的类型(例如numberleaderboard
  • name:流的名称
  • verbosename:流的详细名称
  • interval:应该调用方法的时间间隔(秒)。

任何其他键值对都将传递到该方法中。

示例:

accesskey: SECRET
streams:
    - method: leftronicd.contrib.github.repo_metric
      verbosename: django CMS Watchers
      name: django-cms-watchers
      type: number
      interval: 86400
      repo: divio/django-cms
      metric: watchers
    - method: leftronicd.contrib.github.repo_metric
      verbosename: django CMS Forks
      type: number
      interval: 86400
      name: django-cms-forks
      repo: divio/django-cms
      metric: forks

内置方法

leftronicd.contrib.github.repo_metric

报告来自github存储库的度量。

配置:

  • repo:回购名称,例如ojii/leftronicd
  • metric:从repo中获取哪个值,例如forks

可选配置:

  • username:用户名(用于私有回购)
  • password:密码(用于私人回购)

运行

leftronicd <configfile> [-v]

自定义方法

自定义数据收集方法可以是任何返回 Twisted Deferred使用要发布的值调用附加回调 到leftronic.com。

python可调用的是所有附加配置参数 给一条小溪。

示例

此示例将显示用户拥有的github关注者数量。

python代码(假设它在一个名为“custom”的模块中):

from leftronicd.helpers import get_page
import json

def github_followers(username):
    def handler(data):
        return json.loads(data)['followers']
    return get_page(handler, 'https://api.github.com/users/%s' % username)

如您所见,我们在这里使用leftronicd.helpers.get_pagehelper 详情见下文。

流配置:

accesskey: SECRET
streams:
    - method: custom.github_followers
      verbosename: Github Followers
      name: my-github-followers
      type: number
      interval: 300
      username: ojii

助手

leftronicd.helpers.get_page

围绕twisted.web.client.getPage的包装。将处理程序函数作为 如果页面是 加载成功。然后,handler函数应该返回 传递给Leftronic。get_page返回可从 你的自定义方法。

处理程序参数之后的所有参数都与中的相同 twisted.web.client.getPage

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

推荐PyPI第三方库


热门话题
java关闭应用程序按钮Listener   Java中的多线程同步在Java示例中的思考   java如何查看Tomcat正在使用/访问的JAR?   java My代码在调用垃圾收集器后不会终止   多线程Java连接线程池和connectionfactory?   java在运行时修改JAR文件   java Android:使用光标时引发IllegaleException   在Netbeans中测试不可执行库的java?   泛型在参数上强制子类Java类型   spring Java:继承与依赖注入“自动连线”   javascript如何解析这个xml元素   java打印特定序列中的数组   带有ProcessingTimeSessionWindow的java Apache Flink自定义触发器   java如何配置消息驱动的Bean应用程序和Glassfish来使用来自远程MessageBroker的消息?