Add support for consul path_prefix

Signed-off-by: Julien Pivotto <roidelapluie@o11y.eu>
pull/12372/head
Julien Pivotto 2 years ago
parent 41b3db198c
commit 0dc31ade41

@ -363,6 +363,7 @@ var expectedConf = &Config{
ServiceDiscoveryConfigs: discovery.Configs{ ServiceDiscoveryConfigs: discovery.Configs{
&consul.SDConfig{ &consul.SDConfig{
Server: "localhost:1234", Server: "localhost:1234",
PathPrefix: "/consul",
Token: "mysecret", Token: "mysecret",
Services: []string{"nginx", "cache", "mysql"}, Services: []string{"nginx", "cache", "mysql"},
ServiceTags: []string{"canary", "v1"}, ServiceTags: []string{"canary", "v1"},

@ -151,6 +151,7 @@ scrape_configs:
consul_sd_configs: consul_sd_configs:
- server: "localhost:1234" - server: "localhost:1234"
token: mysecret token: mysecret
path_prefix: /consul
services: ["nginx", "cache", "mysql"] services: ["nginx", "cache", "mysql"]
tags: ["canary", "v1"] tags: ["canary", "v1"]
node_meta: node_meta:

@ -111,6 +111,7 @@ func init() {
// SDConfig is the configuration for Consul service discovery. // SDConfig is the configuration for Consul service discovery.
type SDConfig struct { type SDConfig struct {
Server string `yaml:"server,omitempty"` Server string `yaml:"server,omitempty"`
PathPrefix string `yaml:"path_prefix,omitempty"`
Token config.Secret `yaml:"token,omitempty"` Token config.Secret `yaml:"token,omitempty"`
Datacenter string `yaml:"datacenter,omitempty"` Datacenter string `yaml:"datacenter,omitempty"`
Namespace string `yaml:"namespace,omitempty"` Namespace string `yaml:"namespace,omitempty"`
@ -211,6 +212,7 @@ func NewDiscovery(conf *SDConfig, logger log.Logger) (*Discovery, error) {
clientConf := &consul.Config{ clientConf := &consul.Config{
Address: conf.Server, Address: conf.Server,
PathPrefix: conf.PathPrefix,
Scheme: conf.Scheme, Scheme: conf.Scheme,
Datacenter: conf.Datacenter, Datacenter: conf.Datacenter,
Namespace: conf.Namespace, Namespace: conf.Namespace,

@ -585,6 +585,8 @@ The following meta labels are available on targets during [relabeling](#relabel_
# The information to access the Consul API. It is to be defined # The information to access the Consul API. It is to be defined
# as the Consul documentation requires. # as the Consul documentation requires.
[ server: <host> | default = "localhost:8500" ] [ server: <host> | default = "localhost:8500" ]
# Prefix for URIs for when consul is behind an API gateway (reverse proxy).
[ path_prefix: <string> ]
[ token: <secret> ] [ token: <secret> ]
[ datacenter: <string> ] [ datacenter: <string> ]
# Namespaces are only supported in Consul Enterprise. # Namespaces are only supported in Consul Enterprise.

Loading…
Cancel
Save