1// Copyright The OpenTelemetry Authors 2// 3// Licensed under the Apache License, Version 2.0 (the "License"); 4// you may not use this file except in compliance with the License. 5// You may obtain a copy of the License at 6// 7// http://www.apache.org/licenses/LICENSE-2.0 8// 9// Unless required by applicable law or agreed to in writing, software 10// distributed under the License is distributed on an "AS IS" BASIS, 11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12// See the License for the specific language governing permissions and 13// limitations under the License. 14package exporterhelper 15 16import ( 17 "testing" 18 19 "github.com/stretchr/testify/assert" 20 21 "go.opentelemetry.io/collector/internal/testdata" 22) 23 24func TestConvertResourceToLabels(t *testing.T) { 25 md := testdata.GenerateMetricsOneSumMetric() 26 assert.NotNil(t, md) 27 28 // Before converting resource to labels 29 assert.Equal(t, 1, md.ResourceMetrics().At(0).Resource().Attributes().Len()) 30 assert.Equal(t, 1, md.ResourceMetrics().At(0).InstrumentationLibraryMetrics().At(0).Metrics().At(0).Sum().DataPoints().At(0).LabelsMap().Len()) 31 32 cloneMd := convertResourceToLabels(md) 33 34 // After converting resource to labels 35 assert.Equal(t, 1, cloneMd.ResourceMetrics().At(0).Resource().Attributes().Len()) 36 assert.Equal(t, 2, cloneMd.ResourceMetrics().At(0).InstrumentationLibraryMetrics().At(0).Metrics().At(0).Sum().DataPoints().At(0).LabelsMap().Len()) 37 38 assert.Equal(t, 1, md.ResourceMetrics().At(0).Resource().Attributes().Len()) 39 assert.Equal(t, 1, md.ResourceMetrics().At(0).InstrumentationLibraryMetrics().At(0).Metrics().At(0).Sum().DataPoints().At(0).LabelsMap().Len()) 40 41} 42 43func TestConvertResourceToLabelsAllDataTypesEmptyDataPoint(t *testing.T) { 44 md := testdata.GenerateMetricsAllTypesEmptyDataPoint() 45 assert.NotNil(t, md) 46 47 // Before converting resource to labels 48 assert.Equal(t, 1, md.ResourceMetrics().At(0).Resource().Attributes().Len()) 49 assert.Equal(t, 0, md.ResourceMetrics().At(0).InstrumentationLibraryMetrics().At(0).Metrics().At(0).Gauge().DataPoints().At(0).LabelsMap().Len()) 50 assert.Equal(t, 0, md.ResourceMetrics().At(0).InstrumentationLibraryMetrics().At(0).Metrics().At(1).Gauge().DataPoints().At(0).LabelsMap().Len()) 51 assert.Equal(t, 0, md.ResourceMetrics().At(0).InstrumentationLibraryMetrics().At(0).Metrics().At(2).Sum().DataPoints().At(0).LabelsMap().Len()) 52 assert.Equal(t, 0, md.ResourceMetrics().At(0).InstrumentationLibraryMetrics().At(0).Metrics().At(3).Sum().DataPoints().At(0).LabelsMap().Len()) 53 assert.Equal(t, 0, md.ResourceMetrics().At(0).InstrumentationLibraryMetrics().At(0).Metrics().At(4).Histogram().DataPoints().At(0).LabelsMap().Len()) 54 55 cloneMd := convertResourceToLabels(md) 56 57 // After converting resource to labels 58 assert.Equal(t, 1, cloneMd.ResourceMetrics().At(0).Resource().Attributes().Len()) 59 assert.Equal(t, 1, cloneMd.ResourceMetrics().At(0).InstrumentationLibraryMetrics().At(0).Metrics().At(0).Gauge().DataPoints().At(0).LabelsMap().Len()) 60 assert.Equal(t, 1, cloneMd.ResourceMetrics().At(0).InstrumentationLibraryMetrics().At(0).Metrics().At(1).Gauge().DataPoints().At(0).LabelsMap().Len()) 61 assert.Equal(t, 1, cloneMd.ResourceMetrics().At(0).InstrumentationLibraryMetrics().At(0).Metrics().At(2).Sum().DataPoints().At(0).LabelsMap().Len()) 62 assert.Equal(t, 1, cloneMd.ResourceMetrics().At(0).InstrumentationLibraryMetrics().At(0).Metrics().At(3).Sum().DataPoints().At(0).LabelsMap().Len()) 63 assert.Equal(t, 1, cloneMd.ResourceMetrics().At(0).InstrumentationLibraryMetrics().At(0).Metrics().At(4).Histogram().DataPoints().At(0).LabelsMap().Len()) 64 65 assert.Equal(t, 1, md.ResourceMetrics().At(0).Resource().Attributes().Len()) 66 assert.Equal(t, 0, md.ResourceMetrics().At(0).InstrumentationLibraryMetrics().At(0).Metrics().At(0).Gauge().DataPoints().At(0).LabelsMap().Len()) 67 assert.Equal(t, 0, md.ResourceMetrics().At(0).InstrumentationLibraryMetrics().At(0).Metrics().At(1).Gauge().DataPoints().At(0).LabelsMap().Len()) 68 assert.Equal(t, 0, md.ResourceMetrics().At(0).InstrumentationLibraryMetrics().At(0).Metrics().At(2).Sum().DataPoints().At(0).LabelsMap().Len()) 69 assert.Equal(t, 0, md.ResourceMetrics().At(0).InstrumentationLibraryMetrics().At(0).Metrics().At(3).Sum().DataPoints().At(0).LabelsMap().Len()) 70 assert.Equal(t, 0, md.ResourceMetrics().At(0).InstrumentationLibraryMetrics().At(0).Metrics().At(4).Histogram().DataPoints().At(0).LabelsMap().Len()) 71 72} 73