Skip to main content

A CLI tool for UptimeRobot to help manage monitors, MWindows, etc. in a stateful way using a YAML file or by command line actions.

Project description

utr - UptimeRobot CLI

utr is a CLI tool for UptimeRobot to help manage monitors, maintenance windows, alert contacts and status pages in a stateful way either by using a YAML file or by command line actions.

Features

  • Retrieve Account Information:
    Display account details including monitor counts, SMS credits, and rate limits.

  • Manage Monitors:
    List, create, update, and delete monitors. Automatically convert human-friendly monitor definitions into the required UptimeRobot API format.

  • Manage Maintenance Windows (MWindows):
    List, create, update, or delete maintenance windows based on your YAML definitions.

  • Manage Alert Contacts:
    Retrieve and update alert contacts. (Note: Creating/updating alert contacts is limited by the API.)

  • Command-line and YAML Support:
    Use the tool directly from the command line for quick actions or maintain a YAML file to keep your configuration stateful and version-controlled.

  • Flexible Output Formats:
    Output data in either yaml or a human-friendly table format, with an option for extended reporting.

Prerequisites

  • Python 3:
    Ensure you have Python 3 installed on your system.

  • UptimeRobot API Key:
    You need a valid UptimeRobot API key. You can provide it directly via the command line using --api_key or store it in a file (default: ~/.uptimerobot) and reference it with --api_key_file (default: ~/.uptimerobot.

  • Required Python Libraries:
    The tool depends on some libraries, like the Linuxfabrik Python Libraries, or pyyaml.

Installation

pip install uptimerobot-cli
utr --help

Usage

The tool supports several commands using subcommands. The commands support all UptimeRobot API parameters. Below are the primary commands and their functions:

Getting help

Examples:

utr --help
utr get --help
utr get monitors --help

Global Options

  • --api_key
    Provide your UptimeRobot API key directly. This option overrides the API key file.

  • --api_key_file
    Specify the path to the file containing your UptimeRobot API key. (Default: ~/.uptimerobot)

Commands

1. get

Retrieve information from UptimeRobot. Available resources:

  • account
    Run utr get account to display account details, including monitor usage, SMS credits, and rate limits.

  • monitors
    Run utr get monitors [--output=yaml|table] [--lengthy] to list monitors with details like friendly name, URL, type, and more. Use --output to choose the format (default is table) and --lengthy for extended information (only for table output).

  • alert_contacts
    Run utr get alert_contacts [--output=yaml|table] [--lengthy] to retrieve and display alert contact information.

  • mwindows
    Run utr get mwindows [--output=yaml|table] [--lengthy] to list maintenance windows with start time, end time, duration, and status.

  • psps
    Run utr get psps [--output=yaml|table] [--lengthy] (Note: This resource is currently not implemented.)

2. apply

Apply changes defined in a YAML file to your UptimeRobot account. This command processes your YAML definitions for monitors, maintenance windows, and alert contacts, and performs create, update, or delete actions accordingly.

Run utr apply /path/to/config.yaml where the YAML file should contain definitions for:

  • monitors
  • mwindows
  • alert_contacts
  • psps (currently not implemented)

The tool will automatically convert user-friendly values to the appropriate UptimeRobot API format.

3. set

Update data for a specific resource from the command line. Currently, this command supports updating monitors.

Run utr set monitors [--field=value ...]
Additional filtering options can be passed as --field=value parameters to target specific monitors.

Other resources (account, alert_contacts, mwindows, psps) are marked as "todo" and are not yet implemented.

YAML file for applying updates to the UptimeRobot configuration

For the documentation of the YAML format used by the UptimeRobot CLI, please refer to the YAML syntax documentation.

Usage examples

  • Retrieve Account Details:
    utr get account --api_key YOUR_API_KEY

  • List Monitors containing "example" (within url or friendly_name), in a brief table format:
    utr get monitors --output=table --search=example --api_key YOUR_API_KEY

  • List some specific Monitors in YAML Format:
    utr get monitors --types=keyw --http_request_details=true --output=yaml

  • Get all monitors with type 2, 4 and 5:
    utr get monitors --types=2-4-5

  • The same using user-friendly parameter values:
    utr get monitors --types=keyw-port-beat --statuses=paused-down

  • Apply Changes from a YAML File:
    utr apply /home/admin/uptime_config.yaml

  • Bulk update monitors using command-line options - pausing and resuming some monitors at once:
    utr set monitors --search=example --status=paused utr set monitors --search=example --status=up

  • Bulk update all status pages utr set psps --status=paused utr set psps --status=active

Troubleshooting & Notes

  • API Limitations:
    Some operations (e.g., creating or updating alert contacts) are limited by the UptimeRobot API. The tool prints informative messages when certain actions cannot be performed.

  • Keys and Values:
    Additional --key=value options can be passed to refine API requests. These filters are processed automatically and applied to the corresponding API calls.

Credits, License

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

uptimerobot_cli-1.1.0.tar.gz (13.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

uptimerobot_cli-1.1.0-py3-none-any.whl (11.3 kB view details)

Uploaded Python 3

File details

Details for the file uptimerobot_cli-1.1.0.tar.gz.

File metadata

  • Download URL: uptimerobot_cli-1.1.0.tar.gz
  • Upload date:
  • Size: 13.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.21

File hashes

Hashes for uptimerobot_cli-1.1.0.tar.gz
Algorithm Hash digest
SHA256 df011b4257bc7c814846ab3c57b9994f2121ab70407eb9ebaa71c54778c254f0
MD5 05b0fd6dfa8ca577b2f13bc89ce6ca30
BLAKE2b-256 c17ec6f3f83021f509a2e71f5a03db6b415013f5464c77c49b3372e7e374b75a

See more details on using hashes here.

File details

Details for the file uptimerobot_cli-1.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for uptimerobot_cli-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ab882a782eaee52236b978824ce5acb59054a17e4aeb563d3b55d91d76ef5878
MD5 3ec11f4dad6a967bf873103aac989bd9
BLAKE2b-256 8f6bfbc8f587b27a11296ac05d909e80019bbbf14ee1e94a6a864c753d8a6085

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page