Path: blob/main/pkg/integrations/v2/app_agent_receiver/receiver_metrics_test.go
5403 views
package app_agent_receiver12import (3"context"4"fmt"5"testing"67"github.com/prometheus/client_golang/prometheus"89"github.com/stretchr/testify/require"10)1112type metricAssertion struct {13name string14value float6415}1617func testcase(t *testing.T, payload Payload, assertions []metricAssertion) {18ctx := context.Background()1920reg := prometheus.NewRegistry()2122exporter := NewReceiverMetricsExporter(reg)2324err := exporter.Export(ctx, payload)25require.NoError(t, err)2627metrics, err := reg.Gather()28require.NoError(t, err)2930for _, assertion := range assertions {31found := false32for _, metric := range metrics {33if *metric.Name == assertion.name {34found = true35require.Len(t, metric.Metric, 1)36val := metric.Metric[0].Counter.Value37require.Equal(t, assertion.value, *val)38break39}40}41if !found {42require.Fail(t, fmt.Sprintf("metric [%s] not found", assertion.name))43}44}45}4647func TestReceiverMetricsExport(t *testing.T) {48var payload Payload49payload.Logs = make([]Log, 2)50payload.Measurements = make([]Measurement, 3)51payload.Exceptions = make([]Exception, 4)52payload.Events = make([]Event, 5)53testcase(t, payload, []metricAssertion{54{55name: "app_agent_receiver_logs_total",56value: 2,57},58{59name: "app_agent_receiver_measurements_total",60value: 3,61},62{63name: "app_agent_receiver_exceptions_total",64value: 4,65},66{67name: "app_agent_receiver_events_total",68value: 5,69},70})71}7273func TestReceiverMetricsExportLogsOnly(t *testing.T) {74var payload Payload75payload.Logs = []Log{76{},77{},78}79testcase(t, payload, []metricAssertion{80{81name: "app_agent_receiver_logs_total",82value: 2,83},84{85name: "app_agent_receiver_measurements_total",86value: 0,87},88{89name: "app_agent_receiver_exceptions_total",90value: 0,91},92})93}9495func TestReceiverMetricsExportExceptionsOnly(t *testing.T) {96var payload Payload97payload.Exceptions = []Exception{98{},99{},100{},101{},102}103testcase(t, payload, []metricAssertion{104{105name: "app_agent_receiver_logs_total",106value: 0,107},108{109name: "app_agent_receiver_measurements_total",110value: 0,111},112{113name: "app_agent_receiver_exceptions_total",114value: 4,115},116})117}118119func TestReceiverMetricsExportMeasurementsOnly(t *testing.T) {120var payload Payload121payload.Measurements = []Measurement{122{},123{},124{},125}126testcase(t, payload, []metricAssertion{127{128name: "app_agent_receiver_logs_total",129value: 0,130},131{132name: "app_agent_receiver_measurements_total",133value: 3,134},135{136name: "app_agent_receiver_exceptions_total",137value: 0,138},139})140}141142143