一个基于twisted的守护进程,用于向leftronic.com发送度量
leftronicd_db的Python项目详细描述
定期将信息发布到leftronic.com的脚本
安装
- 制作一个virtualenv
- pip install leftronicd
配置
配置在yaml中完成。
快捷键
您的Leftronic API访问密钥。
流
流配置列表。
每个流都需要以下值:
- method:生成值的方法
- type:值的类型(例如number或leaderboard)
- 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。