Skip to content

Commit 7b6806f

Browse files
authored
Add benchmark tests (#5) (#1399)
This CR adds benchmarking tests for the AWS EMF Exporter. Testing: The new benchmarking tests were run locally.
1 parent 1af2a41 commit 7b6806f

File tree

1 file changed

+71
-0
lines changed

1 file changed

+71
-0
lines changed

exporter/awsemfexporter/metric_translator_test.go

+71
Original file line numberDiff line numberDiff line change
@@ -1286,3 +1286,74 @@ func TestNeedsCalculateRate(t *testing.T) {
12861286
metric.DoubleSum().SetAggregationTemporality(pdata.AggregationTemporalityDelta)
12871287
assert.False(t, needsCalculateRate(&metric))
12881288
}
1289+
1290+
func BenchmarkTranslateOtToCWMetricWithInstrLibrary(b *testing.B) {
1291+
md := createMetricTestData()
1292+
rm := internaldata.OCToMetrics(md).ResourceMetrics().At(0)
1293+
ilms := rm.InstrumentationLibraryMetrics()
1294+
ilm := ilms.At(0)
1295+
ilm.InstrumentationLibrary().InitEmpty()
1296+
ilm.InstrumentationLibrary().SetName("cloudwatch-lib")
1297+
1298+
b.ResetTimer()
1299+
for n := 0; n < b.N; n++ {
1300+
TranslateOtToCWMetric(&rm, ZeroAndSingleDimensionRollup, "")
1301+
}
1302+
}
1303+
1304+
func BenchmarkTranslateOtToCWMetricWithoutInstrLibrary(b *testing.B) {
1305+
md := createMetricTestData()
1306+
rm := internaldata.OCToMetrics(md).ResourceMetrics().At(0)
1307+
1308+
b.ResetTimer()
1309+
for n := 0; n < b.N; n++ {
1310+
TranslateOtToCWMetric(&rm, ZeroAndSingleDimensionRollup, "")
1311+
}
1312+
}
1313+
1314+
func BenchmarkTranslateOtToCWMetricWithNamespace(b *testing.B) {
1315+
md := consumerdata.MetricsData{
1316+
Node: &commonpb.Node{
1317+
LibraryInfo: &commonpb.LibraryInfo{ExporterVersion: "SomeVersion"},
1318+
},
1319+
Resource: &resourcepb.Resource{
1320+
Labels: map[string]string{
1321+
conventions.AttributeServiceName: "myServiceName",
1322+
},
1323+
},
1324+
Metrics: []*metricspb.Metric{},
1325+
}
1326+
rm := internaldata.OCToMetrics(md).ResourceMetrics().At(0)
1327+
1328+
b.ResetTimer()
1329+
for n := 0; n < b.N; n++ {
1330+
TranslateOtToCWMetric(&rm, ZeroAndSingleDimensionRollup, "")
1331+
}
1332+
}
1333+
1334+
func BenchmarkTranslateCWMetricToEMF(b *testing.B) {
1335+
cwMeasurement := CwMeasurement{
1336+
Namespace: "test-emf",
1337+
Dimensions: [][]string{{"OTelLib"}, {"OTelLib", "spanName"}},
1338+
Metrics: []map[string]string{{
1339+
"Name": "spanCounter",
1340+
"Unit": "Count",
1341+
}},
1342+
}
1343+
timestamp := int64(1596151098037)
1344+
fields := make(map[string]interface{})
1345+
fields["OTelLib"] = "cloudwatch-otel"
1346+
fields["spanName"] = "test"
1347+
fields["spanCounter"] = 0
1348+
1349+
met := &CWMetrics{
1350+
Timestamp: timestamp,
1351+
Fields: fields,
1352+
Measurements: []CwMeasurement{cwMeasurement},
1353+
}
1354+
1355+
b.ResetTimer()
1356+
for n := 0; n < b.N; n++ {
1357+
TranslateCWMetricToEMF([]*CWMetrics{met})
1358+
}
1359+
}

0 commit comments

Comments
 (0)