Skip to main content

The application starts a Web server which logs details of all incoming HTTP requests.

Project description

PyPI PyPI - License PyPI - Downloads docker-image-version docker-image-size docker-pulls

alertmanager-gchat-integration

Description

The application provides a Webhook integration for Prometheus AlertManager to push alerts to Google Chat rooms.

The application expects a config.toml file like this:

[app.notification]
# Helpful to indicate the origin of the message. Default to HOSTNAME.
# origin = "custom-origin"

# Optional Jinja2 custom template to print message to GChat.
# custom_template_path = "<file>.json.j2"

[app.room.<room-name>]
notification_url = "https://chat.googleapis.com/v1/spaces/<space-id>/messages?key=<key>&token=<token>&threadKey=<threadId>"

The file may be:

  • Located in the current directory and named config.toml.
  • Placed in the directory of your choice with CONFIG_FILE_LOCATION environment variable set.

Also, the application provides a built-in template for GChat notification located here. If you wish to customize it, create a custom version and use app.notification.custom_template_path.

When the application is started, the following endpoints are available:

  • /alerts?room=<room-name> : Endpoint used by AlertManager to send messages to GChat. The room-name should match the value indicated in the config.toml file. HTTP expected methods are: POST.
  • /healthz : return 200 OK if the service is running. HTTP expected methods are: GET.
  • /metrics : return Prometheus metrics regarding HTTP requests. HTTP expected methods are: GET.

Using the python module

$ pip install alertmanager-gchat-integration
$ CONFIG_FILE_LOCATION=config.toml python -m alertmanager_gchat_integration

Using the container

To execute the container, you should have a ~/.kube/config with the context pointing to the cluster. The user defined in the context should have the appropriate rights in th cluster to manage configmaps.

Starts the service

  • Run container as root:
$ docker run -ti \
    --user 65534:65534                      \
    -p 80:8080                              \
    -v $(pwd)/config.toml:/app/config.toml  \
    julb/alertmanager-gchat-integration:latest

The following environment variables are also available:

Environment var Description Default Value
PORT The listening port for the application. 8080
CONFIG_FILE_LOCATION The config.toml file path. /app/config.toml

Helm chart

A Helm chart is available to install this runtime.

Contributing

This project is totally open source and contributors are welcome.

When you submit a PR, please ensure that the python code is well formatted and linted.

$ make install.dependencies
$ make format
$ make lint

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

alertmanager-gchat-integration-1.0.1.tar.gz (4.6 kB view hashes)

Uploaded Source

Supported by

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