A twisted based daemon to send metrics to leftronic.com
Project description
A script to periodically post information to leftronic.com
Installation
Make a virtualenv
pip install leftronicd
Configuration
Configuration is done in yaml.
accesskey
Your leftronic API access key.
streams
A list of stream configurations.
Each stream requires following values:
method: The method that generates the value
type: The type of value (eg number or leaderboard)
name: Name of the stream
verbosename: Verbose name of the stream
interval: Interval in seconds when the method should be called.
Any other key-value pairs will be passed into the method.
Example:
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
Built-in methods
leftronicd.contrib.github.repo_metric
Reports a metric from a github repository.
Configuration:
repo: The repo name, eg ojii/leftronicd
metric: Which value to grab from the repo, eg forks
Optional configuration:
username: The username (for private repos)
password: The password (for private repos)
Running
leftronicd <configfile> [-v]
Custom methods
Custom data collecting methods can be any Python callable that returns a Twisted Deferred which calls attached callbacks with the value to be posted to leftronic.com.
The Python callable is called with all additional configuration parameters given for a stream.
Example
This example will show the amount of GitHub followers a user has.
Python code (let’s assume it’s in a module called ‘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)
As you can see, we use the leftronicd.helpers.get_page helper here, for details, see below.
Stream configuration:
accesskey: SECRET
streams:
- method: custom.github_followers
verbosename: Github Followers
name: my-github-followers
type: number
interval: 300
username: ojii
Helpers
leftronicd.helpers.get_page
A wrapper around twisted.web.client.getPage. Takes a handler function as first argument which is called with the content of the page if the page is loaded successful. The handler function should then return the value to be passed to leftronic. get_page returns a deferred which can be returned from your custom methods.
All arguments after the handler argument are the same as in twisted.web.client.getPage.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file leftronicd_db-0.1.2.zip.
File metadata
- Download URL: leftronicd_db-0.1.2.zip
- Upload date:
- Size: 10.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f659dff59ad0df3c8dbb07d827a8c2c7d4597c5caf3688d4248aae12d5fa17c3
|
|
| MD5 |
e1a4e792d5e8f6009bcaac2e330f4c81
|
|
| BLAKE2b-256 |
a0071137879d66ee6706833ca7d0f723323bd2236d6c999dff49e9ffcad60eb0
|
File details
Details for the file leftronicd_db-0.1.2.win32.exe.
File metadata
- Download URL: leftronicd_db-0.1.2.win32.exe
- Upload date:
- Size: 207.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
208bbd672a6b6dc2519a14972e3fbdf0219b17717c2da51578f8affdd5f990ce
|
|
| MD5 |
3a29293fc29a864c15c9539a78b3b77d
|
|
| BLAKE2b-256 |
37f237c466c538cc1eb89861455bc3b065598627839237cf3dfe308b3aff849f
|