GithubHelp home page GithubHelp logo

decryptus / updownio Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 1.0 28 KB

Python wrapper for the updown.io API

License: GNU General Public License v3.0

Makefile 14.29% Python 80.56% Jinja 5.16%
monitoring updown updown-api updown-monitoring updownio python

updownio's Introduction

updownio project

PyPI pyversions PyPI version shields.io Documentation Status

updownio is a free and open-source, it's a python wrapper for the updown.io API.

Installation

pip install updownio

Environment variables

Variable Description Default
UPDOWN_ACCEPT HTTP Accept request-header application/json
UPDOWN_ACCEPT_ENCODING HTTP Accept-Encoding request-header gzip
UPDOWN_API_KEY API key for authentication
UPDOWN_ENDPOINT API Endpoint https://updown.io
UPDOWN_TIMEOUT Request timeout in seconds 60

Usage

Import library

import updownio

Initialize service with arguments

updown_checks = updownio.service('checks',
                                 api_key  = 'xxxxxxxxxxx',
                                 endpoint = 'https://example.org/api',
                                 timeout  = 3600)

Endpoints

Checks

List all your checks
checks = updownio.service('checks').list()
Show a single check

Select check by token

check = updownio.service('checks').show(token = 'xxxx')

or by URL

check = updownio.service('checks').show(url = 'https://example.org')
Get all the downtimes of a check

Select downtimes by token

check = updownio.service('checks').downtimes(token = 'xxxx'
                                             params = {'page': 1,
                                                       'results': False})

or by URL

check = updownio.service('checks').downtimes(url = 'https://example.org')
Get detailed metrics about the check

Select metrics by token

check = updownio.service('checks').metrics(token = 'xxxx',
                                           params = {'from': '2022-12-16 15:11:17 +0100',
                                                     'to': '2023-01-16 15:11:17 +0100',
                                                     'group': 'host'})

or by URL

check = updownio.service('checks').metrics(url = 'https://example.org')
Add a new check
check = updownio.service('checks').add('https://example.org',
                                       data = {'apdex_t': 2.0,
                                               'disabled_locations': ['fra', 'syd'],
                                               'period': 3600,
                                               'recipients': ['email:xxxxxxxx', 'slack:xxxxxxxx']})
Update a check

Select check by token

check = updownio.service('checks').update(token = 'xxxx',
                                          data = {'apdex_t': 1.0,
                                                  'disabled_locations': ['fra', 'syd'],
                                                  'recipients': ['email:xxxxxxxx', 'slack:xxxxxxxx']})

or by URL

check = updownio.service('checks').update(url = 'https://example.org',
                                          data = {'apdex_t': 1.0,
                                                  'disabled_locations': ['fra', 'syd'],
                                                  'recipients': ['email:xxxxxxxx', 'slack:xxxxxxxx']})
Delete a check

Select check by token

updownio.service('checks').delete(token = 'xxxx')

or by URL

updownio.service('checks').delete(url = 'https://example.org')

Nodes

List all updown.io monitoring nodes
nodes = updownio.service('nodes').list()
List all updown.io monitoring nodes IPv4 addresses
nodes = updownio.service('nodes').ipv4()
List all updown.io monitoring nodes IPv6 addresses
nodes = updownio.service('nodes').ipv6()

Recipients

List all the possible alert recipients/channels on your account
recipients = updownio.service('recipients').list()
Add a new recipient
recipients = updownio.service('recipients').add(xtype = 'email',
                                                value = 'xxxxxxxx',
                                                data = {'selected': True})
Delete a recipient
updownio.service('recipients').delete(xid = 'email:xxxxxxxx')

Status pages

List all your status pages
status_pages = updownio.service('status_pages').list()
Add a new status page
status_page = updownio.service('status_pages').add(['xxxx', 'yyyy', 'zzzz'],
                                                   data = {'name': 'foo',
                                                           'description': 'bar'})
Update a status page
status_page = updownio.service('status_pages').update(token = 'xxxx',
                                                      data = {'checks': ['xxxx', 'zzzz'],
                                                              'name': 'spam',
                                                              'description': 'ham'})
Delete a status page
updownio.service('status_pages').delete(token = 'xxxx')

updownio's People

Watchers

 avatar

Forkers

akiryliuk

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.