|
4 | 4 | package deployment
|
5 | 5 |
|
6 | 6 | import (
|
| 7 | + "path/filepath" |
7 | 8 | "testing"
|
8 | 9 |
|
9 |
| - metricspb "github.com/census-instrumentation/opencensus-proto/gen-go/metrics/v1" |
| 10 | + "github.com/stretchr/testify/assert" |
10 | 11 | "github.com/stretchr/testify/require"
|
| 12 | + "go.opentelemetry.io/collector/pdata/pmetric" |
| 13 | + "go.opentelemetry.io/collector/receiver/receivertest" |
11 | 14 |
|
12 |
| - "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/k8sclusterreceiver/internal/constants" |
| 15 | + "github.com/open-telemetry/opentelemetry-collector-contrib/internal/coreinternal/golden" |
| 16 | + "github.com/open-telemetry/opentelemetry-collector-contrib/pkg/pdatatest/pmetrictest" |
13 | 17 | "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/k8sclusterreceiver/internal/testutils"
|
14 | 18 | )
|
15 | 19 |
|
16 | 20 | func TestDeploymentMetrics(t *testing.T) {
|
17 | 21 | dep := testutils.NewDeployment("1")
|
18 | 22 |
|
19 |
| - actualResourceMetrics := GetMetrics(dep) |
| 23 | + m := GetMetrics(receivertest.NewNopCreateSettings(), dep) |
20 | 24 |
|
21 |
| - require.Equal(t, 1, len(actualResourceMetrics)) |
22 |
| - require.Equal(t, 2, len(actualResourceMetrics[0].Metrics)) |
| 25 | + require.Equal(t, 1, m.ResourceMetrics().Len()) |
| 26 | + require.Equal(t, 2, m.MetricCount()) |
23 | 27 |
|
24 |
| - rm := actualResourceMetrics[0] |
25 |
| - testutils.AssertResource(t, rm.Resource, constants.K8sType, |
26 |
| - map[string]string{ |
27 |
| - "k8s.deployment.uid": "test-deployment-1-uid", |
28 |
| - "k8s.deployment.name": "test-deployment-1", |
29 |
| - "k8s.namespace.name": "test-namespace", |
| 28 | + rm := m.ResourceMetrics().At(0) |
| 29 | + assert.Equal(t, |
| 30 | + map[string]interface{}{ |
| 31 | + "k8s.deployment.uid": "test-deployment-1-uid", |
| 32 | + "k8s.deployment.name": "test-deployment-1", |
| 33 | + "k8s.namespace.name": "test-namespace", |
| 34 | + "opencensus.resourcetype": "k8s", |
30 | 35 | },
|
| 36 | + rm.Resource().Attributes().AsRaw(), |
31 | 37 | )
|
| 38 | + require.Equal(t, 1, rm.ScopeMetrics().Len()) |
| 39 | + sms := rm.ScopeMetrics().At(0) |
| 40 | + require.Equal(t, 2, sms.Metrics().Len()) |
| 41 | + sms.Metrics().Sort(func(a, b pmetric.Metric) bool { |
| 42 | + return a.Name() < b.Name() |
| 43 | + }) |
| 44 | + testutils.AssertMetricInt(t, sms.Metrics().At(0), "k8s.deployment.available", pmetric.MetricTypeGauge, int64(3)) |
| 45 | + testutils.AssertMetricInt(t, sms.Metrics().At(1), "k8s.deployment.desired", pmetric.MetricTypeGauge, int64(10)) |
| 46 | +} |
32 | 47 |
|
33 |
| - testutils.AssertMetricsInt(t, rm.Metrics[0], "k8s.deployment.desired", |
34 |
| - metricspb.MetricDescriptor_GAUGE_INT64, 10) |
35 |
| - |
36 |
| - testutils.AssertMetricsInt(t, rm.Metrics[1], "k8s.deployment.available", |
37 |
| - metricspb.MetricDescriptor_GAUGE_INT64, 3) |
| 48 | +func TestGoldenFile(t *testing.T) { |
| 49 | + dep := testutils.NewDeployment("1") |
| 50 | + m := GetMetrics(receivertest.NewNopCreateSettings(), dep) |
| 51 | + expectedFile := filepath.Join("testdata", "expected.yaml") |
| 52 | + expected, err := golden.ReadMetrics(expectedFile) |
| 53 | + require.NoError(t, err) |
| 54 | + require.NoError(t, pmetrictest.CompareMetrics(expected, m, |
| 55 | + pmetrictest.IgnoreTimestamp(), |
| 56 | + pmetrictest.IgnoreStartTimestamp(), |
| 57 | + pmetrictest.IgnoreResourceMetricsOrder(), |
| 58 | + pmetrictest.IgnoreMetricsOrder(), |
| 59 | + pmetrictest.IgnoreScopeMetricsOrder(), |
| 60 | + pmetrictest.IgnoreMetricDataPointsOrder(), |
| 61 | + ), |
| 62 | + ) |
38 | 63 | }
|
0 commit comments