public SampleFamily process(List<String> serviceKeys, List<String> serviceInstanceKeys, List<String> processKeys, String layerKey) {
        Preconditions.checkArgument(serviceKeys.size() > 0);
        Preconditions.checkArgument(serviceInstanceKeys.size() > 0);
        Preconditions.checkArgument(processKeys.size() > 0);
        ExpressionParsingContext.get().ifPresent(ctx -> {
            ctx.scopeType = ScopeType.PROCESS;
            ctx.scopeLabels.addAll(serviceKeys);
            ctx.scopeLabels.addAll(serviceInstanceKeys);
            ctx.scopeLabels.addAll(processKeys);
            ctx.scopeLabels.add(layerKey);
        });
        if (this == EMPTY) {
            return EMPTY;
        }
        return createMeterSamples(new ProcessEntityDescription(serviceKeys, serviceInstanceKeys, processKeys, layerKey, Const.POINT));
    }
Following operations are used in DSL
oap-server/analyzer/meter-analyzer/src/main/java/org/apache/skywalking/oap/meter/analyzer/dsl/SampleFamily.java