/pingdomexport

Pingdom: Export your monitoring results to MySQL, PostgreSQL or CSV

Primary LanguagePythonMIT LicenseMIT

Pingdom Export: Export your pingdom data

Build Coverage

Installation

To install simply

$ pip install pingdomexport

Configuration

Check the configuration file.

Place the configuration file in any place that seems fit to you. Make sure the user you will use to run pingdom export has read access to the configuration file.

Configuration access

pingdom_access:
    username: dummy
    password: dummy
    account_email: dummy
    app_key: dummy

The username, password and account email should be easy to fill in (is your credentials to log in in pindgom).

To get your app key, log in on pingdom then go to Integrations > The Pingdom API > Register Application

Configuration checks

# the checks that you want to export data
checks:
    # 3 strategies supported
    # all: all checks
    # include: will only include the ids specified
    # exclude: all checks except the ids specified
    strategy: all
    ids: []

Pindgom export allows to export all checks:

checks:
    strategy: all
    ids: []

Specify the checks to export:

checks:
    strategy: include
    ids: [12454, 32932]

Specify the checks to exclude (will export every check except the ones specified):

checks:
    strategy: exclude
    ids: [12454]

Configuration export

Pingdom export allows to export the checks and results to mysql, postgres or the stdout.

load:
    # type: output|mysql|postgres
    type: output
    parameters: []
    # if mysql
    #parameters:
    #  db_url: mysql+pymysql://user:password@host/database
    # if postgres
    #parameters:
    #  db_url: postgres://user:password@host/database

If output:

load:
    type: output
    parameters: []

If mysql:

load:
    type: mysql
    parameters:
        db_url: mysql+pymysql://user:password@host/database

If posgres:

load:
    type: postgres
    parameters:
        db_url: mysql+pymysql://user:password@host/database

Database schema

If you are going to export for database then you need to create the schema upfront:

Database privileges

Both MySQL and Postgres requires a user with SELECT,INSERT,UPDATE,DELETE permissions to the DB. In case of Postgres the user also requires access to sequences.

Run

To list the options available:

$ pingdom-run-export --help

Export only checks information:

$ pingdom-run-export --config /full/path/to/config.yml --type checks

Export only checks results:

$ pingdom-run-export --config /full/path/to/config.yml --type results

Export checks information & results:

$ pingdom-run-export --config /full/path/to/config.yml --type all

Run - partial export

By default the pingdom export will always export the full results. There is optional arguments to allow to specify a time range, eg:

$ pingdom-run-export --config /full/path/to/config.yml --type results --checks-from 1465071758 --checks-to 1465158158

Big data

In case you have multiple checks with months of history, running everything in a single thread will probably take too much time.

You can use multiple configuration files and run one pingdom export per check. Then just have a crontab running daily and use the checks-from and checks-to.