6ebfbd2d54
For: #14355 This commit updates Prometheus to adopt stdlib's log/slog package in favor of go-kit/log. As part of converting to use slog, several other related changes are required to get prometheus working, including: - removed unused logging util func `RateLimit()` - forward ported the util/logging/Deduper logging by implementing a small custom slog.Handler that does the deduping before chaining log calls to the underlying real slog.Logger - move some of the json file logging functionality to use prom/common package functionality - refactored some of the new json file logging for scraping - changes to promql.QueryLogger interface to swap out logging methods for relevant slog sugar wrappers - updated lots of tests that used/replicated custom logging functionality, attempting to keep the logical goal of the tests consistent after the transition - added a healthy amount of `if logger == nil { $makeLogger }` type conditional checks amongst various functions where none were provided -- old code that used the go-kit/log.Logger interface had several places where there were nil references when trying to use functions like `With()` to add keyvals on the new *slog.Logger type Signed-off-by: TJ Hoplock <t.hoplock@gmail.com> |
||
---|---|---|
.. | ||
adapter | ||
adapter-usage | ||
README.md |
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.