in wasm/internal/ottlplayground.go [71:97]
func ExecuteStatements(config, ottlDataType, ottlDataPayload, executorName string) map[string]any {
executor, ok := statementsExecutorsLookup[executorName]
if !ok {
return NewErrorResult(fmt.Sprintf("unsupported evaluator %s", executorName), "")
}
start := time.Now()
var output []byte
var err error
switch ottlDataType {
case "logs":
output, err = executor.ExecuteLogStatements(config, ottlDataPayload)
case "traces":
output, err = executor.ExecuteTraceStatements(config, ottlDataPayload)
case "metrics":
output, err = executor.ExecuteMetricStatements(config, ottlDataPayload)
default:
return NewErrorResult(fmt.Sprintf("unsupported OTLP data type %s", ottlDataType), "")
}
if err != nil {
return NewErrorResult(fmt.Sprintf("unable to run %s statements. Error: %v", ottlDataType, err), takeObservedLogs(executor))
}
executionTime := time.Since(start).Milliseconds()
return newResult(string(output), "", takeObservedLogs(executor), executionTime)
}