in plugins/forwarder/grpc/nativeebpfprofiling/forwarder.go [112:134]
func (f *Forwarder) SyncForward(e *v1.SniffData) (*v1.SniffData, grpc.ClientStream, error) {
switch data := e.GetData().(type) {
case *v1.SniffData_EBPFProfilingTaskQuery:
commands, err := f.profilingClient.QueryTasks(context.Background(), data.EBPFProfilingTaskQuery)
if err != nil {
return nil, nil, err
}
return &v1.SniffData{Data: &v1.SniffData_Commands{Commands: commands}}, nil, nil
case *v1.SniffData_ContinuousProfilingPolicyQuery:
commands, err := f.continuousClient.QueryPolicies(context.Background(), data.ContinuousProfilingPolicyQuery)
if err != nil {
return nil, nil, err
}
return &v1.SniffData{Data: &v1.SniffData_Commands{Commands: commands}}, nil, nil
case *v1.SniffData_ContinuousProfilingReport:
commands, err := f.continuousClient.ReportProfilingTask(context.Background(), data.ContinuousProfilingReport)
if err != nil {
return nil, nil, err
}
return &v1.SniffData{Data: &v1.SniffData_Commands{Commands: commands}}, nil, nil
}
return nil, nil, fmt.Errorf("unsupported data type %T", e.GetData())
}