portertech / sensu-prometheus-pushgateway-handler

A Sensu Go event handler to send collected metrics to the Prometheus Pushgateway service.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Sensu Bonsai Asset Go Test goreleaser

Prometheus Pushgateway Handler

Table of Contents

Overview

Push Sensu Go event metrics to a Prometheus Pushgateway. The Pushgateway can then be scraped by Prometheus. This handler allows users to collect metrics via several means, including 20+ year old Nagios plugins with perfdata, and store them in Prometheus.

This handler plugin writes Sensu Go event metrics to the Prometheus Pushgateway API. The plugin can be configured with a default Prometheus metric type, job name, and instance name. A Sensu Go event metric point can specify its own Prometheus metric type, job name, or instance name via its metric tags, e.g. "prom_type": "gauge", "prom_job": "node", and "prom_instance": "i-424242". Prometheus must have honor_labels: true in the scrape config for the Pushgateway.

Files

Usage examples

sensu-prometheus-pushgateway-handler -u http://pushgateway.example.org:9091/metrics -j node
$ sensu-prometheus-pushgateway-handler -h

Send Sensu Go event metrics to the Prometheus Pushgateway.

Usage:
  sensu-prometheus-pushgateway-handler [flags]
  sensu-prometheus-pushgateway-handler [command]

Available Commands:
  help        Help about any command
  version     Print the version number of this plugin

Flags:
  -d, --debug                     Turn on debug mode (i.e. print the post body metrics).
  -i, --default-instance string   The Prometheus instance name to use when metrics do not have a prom_instance tag.
  -j, --default-job string        The Prometheus job name to use when metrics do not have a prom_job tag.
  -t, --default-type string       The Prometheus metric type to use when metrics do not have a prom_type tag. (default "untyped")
  -h, --help                      help for sensu-prometheus-pushgateway-handler
  -I, --instance string           The Prometheus instance name to use, ignoring metric prom_instance tags.
  -J, --job string                The Prometheus job name to use, ignoring metric prom_job tags.
  -u, --url string                The Prometheus Pushgateway metrics API URL. (default "http://127.0.0.1:9091/metrics")

Use "sensu-prometheus-pushgateway-handler [command] --help" for more information about a command.

Configuration

Asset registration

Sensu Assets are the best way to make use of this plugin. If you're not using an asset, please consider doing so! If you're using sensuctl 5.13 with Sensu Backend 5.13 or later, you can use the following command to add the asset:

sensuctl asset add portertech/sensu-prometheus-pushgateway-handler

If you're using an earlier version of sensuctl, you can find the asset on the [Bonsai Asset Index][https://bonsai.sensu.io/assets/portertech/sensu-prometheus-pushgateway-handler].

Handler definition

---
type: Handler
api_version: core/v2
metadata:
  name: prometheus-pushgateway-handler
  namespace: default
spec:
  command: sensu-prometheus-pushgateway-handler -u http://pushgateway.example.org:9091/metrics -j node
  type: pipe
  runtime_assets:
  - portertech/sensu-prometheus-pushgateway-handler

Proxy Support

This handler supports the use of the environment variables HTTP_PROXY, HTTPS_PROXY, and NO_PROXY (or the lowercase versions thereof). HTTPS_PROXY takes precedence over HTTP_PROXY for https requests. The environment values may be either a complete URL or a "host[:port]", in which case the "http" scheme is assumed.

Installation from source

The preferred way of installing and deploying this plugin is to use it as an Asset. If you would like to compile and install the plugin from source or contribute to it, download the latest version or create an executable script from this source.

From the local path of the sensu-prometheus-pushgateway-handler repository:

go build

Additional notes

Contributing

For more information about contributing to this plugin, see Contributing.

Releases with Github Actions

To release a version of your project, simply tag the target sha with a semver release without a v prefix (ex. 1.0.0). This will trigger the GitHub action workflow to build and release the plugin with goreleaser. Register the asset with Bonsai to share it with the community!

About

A Sensu Go event handler to send collected metrics to the Prometheus Pushgateway service.

License:MIT License


Languages

Language:Go 100.0%