@@ -15,6 +15,7 @@ import (
15
15
"go.opentelemetry.io/collector/pdata/plog"
16
16
"go.opentelemetry.io/collector/pdata/ptrace"
17
17
18
+ "github.com/open-telemetry/opentelemetry-collector-contrib/pkg/ottl"
18
19
"github.com/open-telemetry/opentelemetry-collector-contrib/pkg/ottl/contexts/ottllog"
19
20
"github.com/open-telemetry/opentelemetry-collector-contrib/pkg/ottl/contexts/ottlspan"
20
21
"github.com/open-telemetry/opentelemetry-collector-contrib/pkg/ottl/ottlfuncs"
@@ -302,19 +303,18 @@ func Test_e2e_editors(t *testing.T) {
302
303
303
304
for _ , tt := range tests {
304
305
t .Run (tt .statement , func (t * testing.T ) {
305
- settings := componenttest .NewNopTelemetrySettings ()
306
- logParser , err := ottllog .NewParser (ottlfuncs .StandardFuncs [ottllog.TransformContext ](), settings )
307
- assert .NoError (t , err )
308
- logStatements , err := logParser .ParseStatement (tt .statement )
306
+ logStatements , err := parseStatementWithAndWithoutPathContext (tt .statement )
309
307
assert .NoError (t , err )
310
308
311
- tCtx := constructLogTransformContextEditors ()
312
- _ , _ , _ = logStatements .Execute (context .Background (), tCtx )
309
+ for _ , statement := range logStatements {
310
+ tCtx := constructLogTransformContextEditors ()
311
+ _ , _ , _ = statement .Execute (context .Background (), tCtx )
313
312
314
- exTCtx := constructLogTransformContextEditors ()
315
- tt .want (exTCtx )
313
+ exTCtx := constructLogTransformContextEditors ()
314
+ tt .want (exTCtx )
316
315
317
- assert .NoError (t , plogtest .CompareResourceLogs (newResourceLogs (exTCtx ), newResourceLogs (tCtx )))
316
+ assert .NoError (t , plogtest .CompareResourceLogs (newResourceLogs (exTCtx ), newResourceLogs (tCtx )))
317
+ }
318
318
})
319
319
}
320
320
}
@@ -1045,24 +1045,23 @@ func Test_e2e_converters(t *testing.T) {
1045
1045
1046
1046
for _ , tt := range tests {
1047
1047
t .Run (tt .statement , func (t * testing.T ) {
1048
- settings := componenttest .NewNopTelemetrySettings ()
1049
- logParser , err := ottllog .NewParser (ottlfuncs .StandardFuncs [ottllog.TransformContext ](), settings )
1050
- assert .NoError (t , err )
1051
- logStatements , err := logParser .ParseStatement (tt .statement )
1048
+ logStatements , err := parseStatementWithAndWithoutPathContext (tt .statement )
1052
1049
assert .NoError (t , err )
1053
1050
1054
- tCtx := constructLogTransformContext ()
1055
- _ , _ , err = logStatements .Execute (context .Background (), tCtx )
1056
- if tt .errMsg == "" {
1057
- assert .NoError (t , err )
1058
- } else {
1059
- assert .Contains (t , err .Error (), tt .errMsg )
1060
- }
1051
+ for _ , statement := range logStatements {
1052
+ tCtx := constructLogTransformContext ()
1053
+ _ , _ , err = statement .Execute (context .Background (), tCtx )
1054
+ if tt .errMsg == "" {
1055
+ assert .NoError (t , err )
1056
+ } else {
1057
+ assert .Contains (t , err .Error (), tt .errMsg )
1058
+ }
1061
1059
1062
- exTCtx := constructLogTransformContext ()
1063
- tt .want (exTCtx )
1060
+ exTCtx := constructLogTransformContext ()
1061
+ tt .want (exTCtx )
1064
1062
1065
- assert .NoError (t , plogtest .CompareResourceLogs (newResourceLogs (exTCtx ), newResourceLogs (tCtx )))
1063
+ assert .NoError (t , plogtest .CompareResourceLogs (newResourceLogs (exTCtx ), newResourceLogs (tCtx )))
1064
+ }
1066
1065
})
1067
1066
}
1068
1067
}
@@ -1169,19 +1168,18 @@ func Test_e2e_ottl_features(t *testing.T) {
1169
1168
1170
1169
for _ , tt := range tests {
1171
1170
t .Run (tt .statement , func (t * testing.T ) {
1172
- settings := componenttest .NewNopTelemetrySettings ()
1173
- logParser , err := ottllog .NewParser (ottlfuncs .StandardFuncs [ottllog.TransformContext ](), settings )
1174
- assert .NoError (t , err )
1175
- logStatements , err := logParser .ParseStatement (tt .statement )
1171
+ logStatements , err := parseStatementWithAndWithoutPathContext (tt .statement )
1176
1172
assert .NoError (t , err )
1177
1173
1178
- tCtx := constructLogTransformContext ()
1179
- _ , _ , _ = logStatements .Execute (context .Background (), tCtx )
1174
+ for _ , statement := range logStatements {
1175
+ tCtx := constructLogTransformContext ()
1176
+ _ , _ , _ = statement .Execute (context .Background (), tCtx )
1180
1177
1181
- exTCtx := constructLogTransformContext ()
1182
- tt .want (exTCtx )
1178
+ exTCtx := constructLogTransformContext ()
1179
+ tt .want (exTCtx )
1183
1180
1184
- assert .NoError (t , plogtest .CompareResourceLogs (newResourceLogs (exTCtx ), newResourceLogs (tCtx )))
1181
+ assert .NoError (t , plogtest .CompareResourceLogs (newResourceLogs (exTCtx ), newResourceLogs (tCtx )))
1182
+ }
1185
1183
})
1186
1184
}
1187
1185
}
@@ -1276,6 +1274,42 @@ func Test_ProcessTraces_TraceContext(t *testing.T) {
1276
1274
}
1277
1275
}
1278
1276
1277
+ func parseStatementWithAndWithoutPathContext (statement string ) ([]* ottl.Statement [ottllog.TransformContext ], error ) {
1278
+ settings := componenttest .NewNopTelemetrySettings ()
1279
+ parserWithoutPathCtx , err := ottllog .NewParser (ottlfuncs .StandardFuncs [ottllog.TransformContext ](), settings )
1280
+ if err != nil {
1281
+ return nil , err
1282
+ }
1283
+
1284
+ withoutPathCtxResult , err := parserWithoutPathCtx .ParseStatement (statement )
1285
+ if err != nil {
1286
+ return nil , err
1287
+ }
1288
+
1289
+ parserWithPathCtx , err := ottllog .NewParser (ottlfuncs .StandardFuncs [ottllog.TransformContext ](), settings , ottllog .EnablePathContextNames ())
1290
+ if err != nil {
1291
+ return nil , err
1292
+ }
1293
+
1294
+ pc , err := ottl .NewParserCollection (settings ,
1295
+ ottl .WithParserCollectionContext [ottllog.TransformContext , * ottl.Statement [ottllog.TransformContext ]](
1296
+ ottllog .ContextName ,
1297
+ & parserWithPathCtx ,
1298
+ func (_ * ottl.ParserCollection [* ottl.Statement [ottllog.TransformContext ]], _ * ottl.Parser [ottllog.TransformContext ], _ string , _ ottl.StatementsGetter , parsedStatements []* ottl.Statement [ottllog.TransformContext ]) (* ottl.Statement [ottllog.TransformContext ], error ) {
1299
+ return parsedStatements [0 ], nil
1300
+ }))
1301
+ if err != nil {
1302
+ return nil , err
1303
+ }
1304
+
1305
+ withPathCtxResult , err := pc .ParseStatementsWithContext (ottllog .ContextName , ottl .NewStatementsGetter ([]string {statement }), true )
1306
+ if err != nil {
1307
+ return nil , err
1308
+ }
1309
+
1310
+ return []* ottl.Statement [ottllog.TransformContext ]{withoutPathCtxResult , withPathCtxResult }, nil
1311
+ }
1312
+
1279
1313
func constructLogTransformContext () ottllog.TransformContext {
1280
1314
resource := pcommon .NewResource ()
1281
1315
resource .Attributes ().PutStr ("host.name" , "localhost" )
0 commit comments