diff --git a/src/core/metrics/metrics_util.go b/src/core/metrics/metrics_util.go index 4128c87e5e..75908814df 100644 --- a/src/core/metrics/metrics_util.go +++ b/src/core/metrics/metrics_util.go @@ -18,6 +18,8 @@ import ( "github.com/nginx/agent/v2/src/core/config" "github.com/gogo/protobuf/types" + + log "github.com/sirupsen/logrus" ) type Collector interface { @@ -402,6 +404,11 @@ func GenerateMetricsReportBundle(entities []*StatsEntityWrapper) core.Payload { reportMap := make(map[proto.MetricsReport_Type]*proto.MetricsReport, 0) for _, entity := range entities { + if entity == nil || entity.Data == nil { + log.Debugf("Skipping nil entity in metrics generation") + continue + } + if _, ok := reportMap[entity.Type]; !ok { reportMap[entity.Type] = &proto.MetricsReport{ Meta: &proto.Metadata{ diff --git a/test/performance/vendor/github.com/nginx/agent/v2/src/core/metrics/metrics_util.go b/test/performance/vendor/github.com/nginx/agent/v2/src/core/metrics/metrics_util.go index 4128c87e5e..75908814df 100644 --- a/test/performance/vendor/github.com/nginx/agent/v2/src/core/metrics/metrics_util.go +++ b/test/performance/vendor/github.com/nginx/agent/v2/src/core/metrics/metrics_util.go @@ -18,6 +18,8 @@ import ( "github.com/nginx/agent/v2/src/core/config" "github.com/gogo/protobuf/types" + + log "github.com/sirupsen/logrus" ) type Collector interface { @@ -402,6 +404,11 @@ func GenerateMetricsReportBundle(entities []*StatsEntityWrapper) core.Payload { reportMap := make(map[proto.MetricsReport_Type]*proto.MetricsReport, 0) for _, entity := range entities { + if entity == nil || entity.Data == nil { + log.Debugf("Skipping nil entity in metrics generation") + continue + } + if _, ok := reportMap[entity.Type]; !ok { reportMap[entity.Type] = &proto.MetricsReport{ Meta: &proto.Metadata{