@Override
    public Command.Builder serialize() {
        final Command.Builder builder = commandBuilder();
        builder.addArgs(KeyStringValuePair.newBuilder().setKey("TaskId").setValue(taskId))
                .addArgs(KeyStringValuePair.newBuilder().setKey("ProcessId").setValue(Joiner.on(",").join(processIdList)))
                .addArgs(KeyStringValuePair.newBuilder().setKey("TaskUpdateTime").setValue(String.valueOf(taskUpdateTime)))
                .addArgs(KeyStringValuePair.newBuilder().setKey("TriggerType").setValue(triggerType))
                .addArgs(KeyStringValuePair.newBuilder().setKey("TargetType").setValue(targetType))
                .addArgs(KeyStringValuePair.newBuilder().setKey("TaskStartTime").setValue(String.valueOf(taskStartTime)))
                .addArgs(KeyStringValuePair.newBuilder().setKey("ExtensionConfigJSON").setValue(GSON.toJson(extensionConfig)));

        if (fixedTrigger != null) {
            builder.addArgs(KeyStringValuePair.newBuilder().setKey("FixedTriggerDuration").setValue(String.valueOf(fixedTrigger.duration)));
        }
        return builder;
    }
eBPF profiling task command, OAP uses this to send a task to the ebpf agent side
apm-protocol/apm-network/src/main/java/org/apache/skywalking/oap/server/network/trace/component/command/EBPFProfilingTaskCommand.java