prometheus/documentation/examples/custom-sd
Julius Volz 179b2155d1
Fix: Use json.Unmarshal() instead of json.Decoder (#9033)
* Fix: Use json.Unmarshal() instead of json.Decoder

See https://ahmet.im/blog/golang-json-decoder-pitfalls/

json.Decoder is for JSON streams, not single JSON objects / bodies.

Signed-off-by: Julius Volz <julius.volz@gmail.com>

* Revert modifications to targetgroup parsing

Signed-off-by: Julius Volz <julius.volz@gmail.com>
2021-07-02 09:38:14 +01:00
..
adapter Switched to go-kit/log 2021-06-11 12:28:36 -04:00
adapter-usage Fix: Use json.Unmarshal() instead of json.Decoder (#9033) 2021-07-02 09:38:14 +01:00
README.md Fix typo (#4760) 2018-10-18 21:19:21 +01:00

Custom SD

Custom SD is available via the file_sd adapter, which can be used to access SD mechanisms that are not included in official Prometheus releases. The sd adapter outputs a file that can be passed via your prometheus.yml as a file_sd file. This will allow you to pass your targets to Prometheus for scraping without having to use a static config.

Example

This directory (documentation/examples/custom-sd) contains an example custom service discovery implementation as well as a file_sd adapter usage. adapter-usage contains the Discoverer implementation for a basic Consul service discovery mechanism. It simply queries Consul for all it's known services (except Consul itself), and sends them along with all the other service data as labels as a TargetGroup. The adapter directory contains the adapter code you will want to import and pass your Discoverer implementation to.

Usage

To use file_sd adapter you must implement a Discoverer. In adapter-usage/main.go replace the example SD config and create an instance of your SD implementation to pass to the Adapter's NewAdapter. See the Note: comments for the structs and Run function.