Skip to content

Accept Catchpoint Push API metrics and shove them into OpenTSDB for display and analysis

License

Notifications You must be signed in to change notification settings

tnguyenns1/catchpoint_opentsdb_bridge

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Catchpoint Push API to OpenTSDB bridge

Description

Catchpoint's Push API shoves raw datapoints gathered by Catchpoint's global monitoring network into an HTTP endpoint. This quick and dirty server accepts Catchpoint Push messages and renders them into a few OpenTSDB metrics.

At NS1 we use Catchpoint to measure DNS network performance and reliability, so this server is focused on accepting very simple RTT and error rate metrics and dropping them in OpenTSDB. Once the data is in OpenTSDB, it's easy to leverage it in other tools like Grafana for dashboarding, Bosun for alerting, etc.

The server also uses Catchpoint's REST API to regularly pull a list of Catchpoint nodes so Push API metrics can be tagged by geographic and network metadata in OpenTSDB.

Requirements

Tested on Python 2.7.x

Requires Twisted, Cyclone, requests, pytz.

This repository includes code (catchpoint.py) from https://github.com/jasonarewhy/catchpoint-api-python for convenience, although of course you can install that module directly.

Usage

You must authorize the public IP of the server to access the Catchpoint REST API. You must also generate a key/secret and enable the Catchpoint Push API for at least one of your tests.

Run the server like:

./catchpoint_opentsdb_bridge.py -l <listen port> -t <tsdb host> -p <tsdb port> -k <key> -s <secret>

Depending on your environment, it may be useful to run the server using Upstart or a similar process management system.

Metrics

Our use case is to track performance and reliability of various DNS networks across geographies and ISPs. We generate OpenTSDB metrics pre-sliced in a few ways: by node, ASN, continent, city, country, region, and ISP. It would be easy to add more, or add additional tagging to the existing metrics. We are optimizing for display-time simplicity/speed in our use case.

License

GPL v2

About

Accept Catchpoint Push API metrics and shove them into OpenTSDB for display and analysis

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%