Metadata-Version: 2.1
Name: ws.prometheus_uptimerobot
Version: 1.3.0
Summary: Export uptimerobot.com monitor results as prometheus.io metrics
Project-URL: Repository, https://github.com/wosc/prometheus-uptimerobot
Author-email: Wolfgang Schnerring <wosc@wosc.de>
License:  BSD-3-Clause
Requires-Python: >=3.7
Requires-Dist: prometheus-client
Requires-Dist: requests
Provides-Extra: test
Requires-Dist: pytest; extra == 'test'
Requires-Dist: pytest-cov; extra == 'test'
Requires-Dist: setuptools; extra == 'test'
Requires-Dist: werkzeug; extra == 'test'
Description-Content-Type: text/x-rst

======================================
prometheus metrics for uptimerobot.com
======================================

This packages exports `Uptime Robot`_ monitor results as `Prometheus`_ metrics.

.. _`Uptime Robot`: https://uptimerobot.com
.. _`Prometheus`: https://prometheus.io


Usage
=====

Configure API key
-----------------

You'll need to provide the API key of your uptimerobot.com account using a
configuration file::

    [default]
    api_key = 123456789

See the `Uptime Robot API documentation`_ for details.


Set up HTTP service
-------------------

Then you need to set up an HTTP server, either with a dedicated process::

    $ uptimerobot_exporter --host localhost --port 9429 --config /path/to/config

or as a CGI script, if you have infrastructure for that set up anyway.
Here's an example apache configuration snippet to do this::

    ScriptAlias /metrics/uptimerobot /path/to/uptimerobot_exporter_cgi
    <Location /metrics/uptimerobot>
      SetEnv PROMETHEUS_UPTIMEROBOT_CONFIG /path/to/config
      # SetEnv PROMETHEUS_UPTIMEROBOT_LOGFILE /path/to/log  # optional, for debugging
    </Location>


Configure Prometheus
--------------------

::

    scrape_configs:
      - job_name: 'uptimerobot'
        scrape_interval: 300s
        static_configs:
          - targets: ['localhost:9429']

The following metrics are exported, each with labels ``{monitor_name="example.com",monitor_type="http",monitor_url="https://example.com"}``:

* ``uptimerobot_up`` gauge (1=up, 0=down)
* ``uptimerobot_status`` gauge
* ``uptimerobot_responsetime`` gauge
* ``uptimerobot_ssl_expire`` gauge (unix timestamp), if applicable

See the `Uptime Robot API documentation`_ section "Parameters" for details on
the possible ``status`` values. The ``monitor_type`` is translated from its
numeric code to one of ``http``, ``http keyword``, ``ping``, or ``port``.

Additionally, a ``uptimerobot_scrape_duration_seconds`` gauge is exported.


.. _`Uptime Robot API documentation`: https://uptimerobot.com/api


CHANGES
=======

.. towncrier release notes start

1.3.0 (2023-04-04)
------------------

Changes
+++++++

- Drop Python-2 support (py2)
- Switch from setup.py to pyproject.toml (wheel)


1.2.0 (2021-10-22)
------------------

- Update to current prometheus_client API


1.1.0 (2018-09-17)
------------------

- Add ssl expiration metrics


1.0.1 (2018-04-02)
------------------

- Support pagination of API results.


1.0.0 (2018-04-01)
------------------

- First release.
