From 7695994fb300cff06f13ad6062d8c6455e113c42 Mon Sep 17 00:00:00 2001 From: Gertrude Martin Date: Fri, 19 Jul 2024 12:31:38 +0800 Subject: [PATCH] =?UTF-8?q?fix=EF=BC=9A=E4=BF=AE=E5=A4=8Dsentinel=E6=8C=87?= =?UTF-8?q?=E6=A0=87=E4=B8=8A=E6=8A=A5=E7=BC=BA=E5=A4=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit masterNames未赋值,master名列表为空,导致sentinel replica和sentinels相关指标未上报 --- inputs/redis_sentinel/redis_sentinel.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/inputs/redis_sentinel/redis_sentinel.go b/inputs/redis_sentinel/redis_sentinel.go index 63e15f20..517658f4 100644 --- a/inputs/redis_sentinel/redis_sentinel.go +++ b/inputs/redis_sentinel/redis_sentinel.go @@ -335,21 +335,20 @@ func convertSentinelReplicaOutput( } func (client *RedisSentinelClient) gatherMasterStats(slist *types.SampleList) ([]string, error) { - var masterNames []string - mastersCmd := redis.NewSliceCmd(context.Background(), "sentinel", "masters") if err := client.sentinel.Process(context.Background(), mastersCmd); err != nil { - return masterNames, err + return nil, err } masters, err := mastersCmd.Result() if err != nil { - return masterNames, err + return nil, err } // Break out of the loop if one of the items comes out malformed // It's safe to assume that if we fail parsing one item that the rest will fail too // This is because we are iterating over a single server response + masterNames := make([]string, 0, len(masters)) for _, master := range masters { master, ok := master.([]interface{}) if !ok { @@ -363,6 +362,7 @@ func (client *RedisSentinelClient) gatherMasterStats(slist *types.SampleList) ([ return masterNames, fmt.Errorf("unable to resolve master name") } + masterNames = append(masterNames, masterName) quorumCmd := redis.NewStringCmd(context.Background(), "sentinel", "ckquorum", masterName) quorumErr := client.sentinel.Process(context.Background(), quorumCmd)