Skip to content

Commit 38003b5

Browse files
committed
Make AM grpc MaxRecvMsgSize and MaxSendMsgSize configurable
Signed-off-by: Emmanuel Lodovice <lodovice@amazon.com>
1 parent f1d3d1e commit 38003b5

File tree

3 files changed

+15
-2
lines changed

3 files changed

+15
-2
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
* [BUGFIX] Ruler: Validate if rule group can be safely converted back to rule group yaml from protobuf message #5265
1212
* [BUGFIX] Querier: Convert gRPC `ResourceExhausted` status code from store gateway to 422 limit error. #5286
1313
* [BUGFIX] Alertmanager: Route web-ui requests to the alertmanager distributor when sharding is enabled. #5293
14+
* [FEATURE] Added 2 flags `-alertmanager.alertmanager-client.grpc-max-send-msg-size` and ` -alertmanager.alertmanager-client.grpc-max-recv-msg-size` to configure alert manager grpc client message size limits. #5338
1415

1516
## 1.15.1 2023-04-26
1617

docs/configuration/config-file-reference.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -446,6 +446,14 @@ alertmanager_client:
446446
# CLI flag: -alertmanager.alertmanager-client.grpc-compression
447447
[grpc_compression: <string> | default = ""]
448448
449+
# gRPC client max receive message size (bytes).
450+
# CLI flag: -alertmanager.alertmanager-client.grpc-max-recv-msg-size
451+
[max_recv_msg_size: <int> | default = 16777216]
452+
453+
# gRPC client max send message size (bytes).
454+
# CLI flag: -alertmanager.alertmanager-client.grpc-max-send-msg-size
455+
[max_send_msg_size: <int> | default = 4194304]
456+
449457
# The interval between persisting the current alertmanager state (notification
450458
# log and silences) to object storage. This is only used when sharding is
451459
# enabled. This state is read when all replicas for a shard can not be

pkg/alertmanager/alertmanager_client.go

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,8 @@ type ClientConfig struct {
3838
TLSEnabled bool `yaml:"tls_enabled"`
3939
TLS tls.ClientConfig `yaml:",inline"`
4040
GRPCCompression string `yaml:"grpc_compression"`
41+
MaxRecvMsgSize int `yaml:"max_recv_msg_size"`
42+
MaxSendMsgSize int `yaml:"max_send_msg_size"`
4143
}
4244

4345
// RegisterFlagsWithPrefix registers flags with prefix.
@@ -46,6 +48,8 @@ func (cfg *ClientConfig) RegisterFlagsWithPrefix(prefix string, f *flag.FlagSet)
4648
f.DurationVar(&cfg.RemoteTimeout, prefix+".remote-timeout", 2*time.Second, "Timeout for downstream alertmanagers.")
4749
f.StringVar(&cfg.GRPCCompression, prefix+".grpc-compression", "", "Use compression when sending messages. Supported values are: 'gzip', 'snappy' and '' (disable compression)")
4850
cfg.TLS.RegisterFlagsWithPrefix(prefix, f)
51+
f.IntVar(&cfg.MaxRecvMsgSize, prefix+".grpc-max-recv-msg-size", 16*1024*1024, "gRPC client max receive message size (bytes).")
52+
f.IntVar(&cfg.MaxSendMsgSize, prefix+".grpc-max-send-msg-size", 4*1024*1024, "gRPC client max send message size (bytes).")
4953
}
5054

5155
type alertmanagerClientsPool struct {
@@ -55,8 +59,8 @@ type alertmanagerClientsPool struct {
5559
func newAlertmanagerClientsPool(discovery client.PoolServiceDiscovery, amClientCfg ClientConfig, logger log.Logger, reg prometheus.Registerer) ClientsPool {
5660
// We prefer sane defaults instead of exposing further config options.
5761
grpcCfg := grpcclient.Config{
58-
MaxRecvMsgSize: 16 * 1024 * 1024,
59-
MaxSendMsgSize: 4 * 1024 * 1024,
62+
MaxRecvMsgSize: amClientCfg.MaxRecvMsgSize,
63+
MaxSendMsgSize: amClientCfg.MaxSendMsgSize,
6064
GRPCCompression: amClientCfg.GRPCCompression,
6165
RateLimit: 0,
6266
RateLimitBurst: 0,

0 commit comments

Comments
 (0)