File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -113,9 +113,16 @@ func (pr *Kafka) ReportStats() {
113113 switch e := v .(type ) {
114114 case * kafka.Stats :
115115 var stats map [string ]interface {}
116- json .Unmarshal ([]byte (e .String ()), & stats )
117-
118- brokers := stats ["brokers" ].(map [string ]interface {})
116+ if err := json .Unmarshal ([]byte (e .String ()), & stats ); err != nil {
117+ logger .Errorf ("failed to unmarshal kafka stats: %v" , err )
118+ continue
119+ }
120+ brokersRawJson , ok := stats ["brokers" ]
121+ if ! ok || brokersRawJson == nil {
122+ logger .Errorf ("kafka broker stats missing or null brokers field" )
123+ continue
124+ }
125+ brokers := brokersRawJson .(map [string ]interface {})
119126 metrics .Gauge ("kafka_tx_messages_total" , stats ["txmsgs" ], "" )
120127 metrics .Gauge ("kafka_tx_messages_bytes_total" , stats ["txmsg_bytes" ], "" )
121128 for _ , broker := range brokers {
You can’t perform that action at this time.
0 commit comments