Giter VIP home page Giter VIP logo

alertmanager-gchat-integration's Introduction

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"

# Optional true to send the message as a Gchat card
# use_cards = true

[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.

By default, the message will be sent as a basic message. If you wish to use cards set app.notification.use_cards to true.

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

alertmanager-gchat-integration's People

Contributors

desaintmartin avatar github-actions[bot] avatar julb avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

alertmanager-gchat-integration's Issues

Many CVEs

Please rebuild docker image, current trivy scan says :

julb/alertmanager-gchat-integration (alpine 3.13.2)
===================================================
Total: 56 (HIGH: 44, CRITICAL: 12)

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.