mirror of
https://github.com/prometheus/alertmanager
synced 2024-12-17 20:05:17 +00:00
Cluster: Add memberlist label configuration option (#3354)
* Cluster: Add memberlist label configuration option Signed-off-by: Jean-Philippe Quémémer <jeanphilippe.quemener@grafana.com> --------- Signed-off-by: Jean-Philippe Quémémer <jeanphilippe.quemener@grafana.com> Signed-off-by: Jean-Philippe Quéméner <JohnnyQQQQ@users.noreply.github.com> Co-authored-by: gotjosh <josue.abreu@gmail.com>
This commit is contained in:
parent
263ca5c943
commit
9de8ef3675
@ -372,6 +372,7 @@ be configured to communicate with each other. This is configured using the
|
||||
- `--cluster.probe-interval` value: interval between random node probes (default "1s")
|
||||
- `--cluster.reconnect-interval` value: interval between attempting to reconnect to lost peers (default "10s")
|
||||
- `--cluster.reconnect-timeout` value: length of time to attempt to reconnect to a lost peer (default: "6h0m0s")
|
||||
- `--cluster.label` value: the label is an optional string to include on each packet and stream. It uniquely identifies the cluster and prevents cross-communication issues when sending gossip messages (default:"")
|
||||
|
||||
The chosen port in the `cluster.listen-address` flag is the port that needs to be
|
||||
specified in the `cluster.peer` flag of the other peers.
|
||||
|
@ -142,6 +142,7 @@ func Create(
|
||||
probeInterval time.Duration,
|
||||
tlsTransportConfig *TLSTransportConfig,
|
||||
allowInsecureAdvertise bool,
|
||||
label string,
|
||||
) (*Peer, error) {
|
||||
bindHost, bindPortStr, err := net.SplitHostPort(bindAddr)
|
||||
if err != nil {
|
||||
@ -227,6 +228,7 @@ func Create(
|
||||
cfg.LogOutput = &logWriter{l: l}
|
||||
cfg.GossipNodes = retransmit
|
||||
cfg.UDPBufferSize = MaxGossipPacketSize
|
||||
cfg.Label = label
|
||||
|
||||
if advertiseHost != "" {
|
||||
cfg.AdvertiseAddr = advertiseHost
|
||||
|
@ -54,6 +54,7 @@ func testJoinLeave(t *testing.T) {
|
||||
DefaultProbeInterval,
|
||||
nil,
|
||||
false,
|
||||
"",
|
||||
)
|
||||
require.NoError(t, err)
|
||||
require.NotNil(t, p)
|
||||
@ -88,6 +89,7 @@ func testJoinLeave(t *testing.T) {
|
||||
DefaultProbeInterval,
|
||||
nil,
|
||||
false,
|
||||
"",
|
||||
)
|
||||
require.NoError(t, err)
|
||||
require.NotNil(t, p2)
|
||||
@ -123,6 +125,7 @@ func testReconnect(t *testing.T) {
|
||||
DefaultProbeInterval,
|
||||
nil,
|
||||
false,
|
||||
"",
|
||||
)
|
||||
require.NoError(t, err)
|
||||
require.NotNil(t, p)
|
||||
@ -148,6 +151,7 @@ func testReconnect(t *testing.T) {
|
||||
DefaultProbeInterval,
|
||||
nil,
|
||||
false,
|
||||
"",
|
||||
)
|
||||
require.NoError(t, err)
|
||||
require.NotNil(t, p2)
|
||||
@ -188,6 +192,7 @@ func testRemoveFailedPeers(t *testing.T) {
|
||||
DefaultProbeInterval,
|
||||
nil,
|
||||
false,
|
||||
"",
|
||||
)
|
||||
require.NoError(t, err)
|
||||
require.NotNil(t, p)
|
||||
@ -239,6 +244,7 @@ func testInitiallyFailingPeers(t *testing.T) {
|
||||
DefaultProbeInterval,
|
||||
nil,
|
||||
false,
|
||||
"",
|
||||
)
|
||||
require.NoError(t, err)
|
||||
require.NotNil(t, p)
|
||||
@ -286,6 +292,7 @@ func testTLSConnection(t *testing.T) {
|
||||
DefaultProbeInterval,
|
||||
tlsTransportConfig1,
|
||||
false,
|
||||
"",
|
||||
)
|
||||
require.NoError(t, err)
|
||||
require.NotNil(t, p1)
|
||||
@ -317,6 +324,7 @@ func testTLSConnection(t *testing.T) {
|
||||
DefaultProbeInterval,
|
||||
tlsTransportConfig2,
|
||||
false,
|
||||
"",
|
||||
)
|
||||
require.NoError(t, err)
|
||||
require.NotNil(t, p2)
|
||||
|
@ -226,6 +226,7 @@ func run() int {
|
||||
peerReconnectTimeout = kingpin.Flag("cluster.reconnect-timeout", "Length of time to attempt to reconnect to a lost peer.").Default(cluster.DefaultReconnectTimeout.String()).Duration()
|
||||
tlsConfigFile = kingpin.Flag("cluster.tls-config", "[EXPERIMENTAL] Path to config yaml file that can enable mutual TLS within the gossip protocol.").Default("").String()
|
||||
allowInsecureAdvertise = kingpin.Flag("cluster.allow-insecure-public-advertise-address-discovery", "[EXPERIMENTAL] Allow alertmanager to discover and listen on a public IP address.").Bool()
|
||||
label = kingpin.Flag("cluster.label", "The cluster label is an optional string to include on each packet and stream. It uniquely identifies the cluster and prevents cross-communication issues when sending gossip messages.").Default("").String()
|
||||
)
|
||||
|
||||
promlogflag.AddFlags(kingpin.CommandLine, &promlogConfig)
|
||||
@ -267,6 +268,7 @@ func run() int {
|
||||
*probeInterval,
|
||||
tlsTransportConfig,
|
||||
*allowInsecureAdvertise,
|
||||
*label,
|
||||
)
|
||||
if err != nil {
|
||||
level.Error(logger).Log("msg", "unable to initialize gossip mesh", "err", err)
|
||||
|
Loading…
Reference in New Issue
Block a user