Select Supported Platforms

Select Supported Architectures

Select Tier

Github Name


v0.1.0 · public · Published over 1 year ago

README
Asset Definition
Release Notes
Release Assets

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 Lavaburn/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/Lavaburn/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:
  - Lavaburn/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

0.1.0 - Forked from portertech

Extra argument enables more "group labels" than just job and instance.

Push Gateway only accepts (overwrites) metrics with the same name and group label.
This module hard-coded -instance- and -job- as the group labels.

I wanted to use a single metric name with labels for entity name (re-using instance) and check name (without overwriting job)

Flags:
  -e, --extra-group-labels string   Tags that should be treated as group labels (comma-separated).

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!

Are you sure you want to report this asset?

Please describe the reason for reporting this asset. Our moderators will be notified and will disable the asset if it is found to be inappropriate.

×

You must be signed in to report this asset.

Sign In with Github

Download

×

Either download the source code:

Download Source

Or download the asset definition: