@@ -1286,3 +1286,74 @@ func TestNeedsCalculateRate(t *testing.T) {
1286
1286
metric .DoubleSum ().SetAggregationTemporality (pdata .AggregationTemporalityDelta )
1287
1287
assert .False (t , needsCalculateRate (& metric ))
1288
1288
}
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