cloudflare_exporter

command module
v0.5.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 10, 2021 License: MIT Imports: 21 Imported by: 0

README

Cloudflare exporter

A Prometheus exporter for Cloudflare metrics. Consumes metrics from the graphql analytics API.

Usage

Download a release or build the binary. Run cloudflare_exporter --help. Alternatively, read the kingpin command line flags / env vars in cloudflare_exporter.go.

Example kubernetes deployment configuration here.

Note that as per the Cloudflare docs, you'll need to use an account's API key, not an API token.

What does this do?

The Cloudflare analytics API exposes several data sets, not all of which the exporter supports yet. In general, these data sets must be queried over a finite (and recent) time window. Results usually consist of counts in time buckets, and are partitioned by some dimensions that differ from dataset to dataset. The exporter keeps track of these counters in memory, incrementing them with values from newer time buckets it obtains by scraping Cloudflare periodically, and exposes them to Prometheus.

Some Cloudflare analytics datasets can be partitioned by many dimensions. We map these dimensions onto Prometheus labels. If we were to map every possible dimension, then some of the resultant labels would have very high cardinality, which is known to cause performance issues with Prometheus. An example of such a dimension would be clientIP in firewallEventsAdaptiveGroups. Currently, the exporter is not flexible with regards to what it exposes as labels, and decisions about what cardinality is too high are based on the GitLab infrastructure team's use case. It's not impossible that this will change in the future.

Contributing

Feel free to open an issue and/or a merge request. Please check the list of existing issues and MRs first.

Documentation

The Go Gopher

There is no documentation for this package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL