func()

in components/otelopscol/processor/agentmetricsprocessor/agentmetricsprocessor.go [58:93]


func (mtp *agentMetricsProcessor) ProcessMetrics(_ context.Context, metrics pmetric.Metrics) (pmetric.Metrics, error) {
	convertNonMonotonicSumsToGauges(metrics.ResourceMetrics())
	removeVersionAttribute(metrics.ResourceMetrics())

	var errors []error
	if err := combineProcessMetrics(metrics.ResourceMetrics()); err != nil {
		errors = append(errors, err)
	}

	if err := splitReadWriteBytesMetrics(metrics.ResourceMetrics()); err != nil {
		errors = append(errors, err)
	}

	if err := mtp.appendUtilizationMetrics(metrics.ResourceMetrics()); err != nil {
		errors = append(errors, err)
	}

	if err := cleanCPUNumber(metrics.ResourceMetrics()); err != nil {
		errors = append(errors, err)
	}

	if err := mtp.appendAverageDiskMetrics(metrics.ResourceMetrics()); err != nil {
		errors = append(errors, err)
	}

	// Add blank labels last so they can also be applied to metrics added by agentmetricsprocessor.
	if err := mtp.addBlankLabel(metrics.ResourceMetrics()); err != nil {
		errors = append(errors, err)
	}

	if len(errors) > 0 {
		return metrics, multierr.Combine(errors...)
	}

	return metrics, nil
}