trace-etl/trace-etl-extensions/trace-etl-es-extension/src/main/java/org/apache/ozhera/trace/etl/extension/es/WriteEsService.java [164:195]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    private List<JaegerAttribute> buildAttributes(TAttributes attributes) {
        List<JaegerAttribute> list = new ArrayList<>();
        if (attributes != null && attributes.getKeys() != null && attributes.getKeys().size() > 0) {
            List<TAttributeKey> keys = attributes.getKeys();
            List<TValue> values = attributes.getValues();
            for (int i = 0; i < keys.size(); i++) {
                JaegerAttribute attr = new JaegerAttribute();
                TAttributeKey tAttributeKey = keys.get(i);
                attr.setKey(tAttributeKey.getValue());
                switch (tAttributeKey.getType()) {
                    case STRING:
                        attr.setType(JaegerAttrType.STRING);
                        attr.setValue(decodeLineBreak(values.get(i).getStringValue()));
                        break;
                    case LONG:
                        attr.setType(JaegerAttrType.LONG);
                        attr.setValue(String.valueOf(values.get(i).getLongValue()));
                        break;
                    case BOOLEAN:
                        attr.setType(JaegerAttrType.BOOLEAN);
                        attr.setValue(String.valueOf(values.get(i).isBoolValue()));
                        break;
                    case DOUBLE:
                        attr.setType(JaegerAttrType.DOUBLE);
                        attr.setValue(String.valueOf(values.get(i).getDoubleValue()));
                        break;
                }
                list.add(attr);
            }
        }
        return list;
    }
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



trace-etl/trace-etl-extensions/trace-etl-doris-extension/src/main/java/org/apache/ozhera/trace/etl/extension/doris/WriteDorisService.java [204:235]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    private List<JaegerAttribute> buildAttributes(TAttributes attributes) {
        List<JaegerAttribute> list = new ArrayList<>();
        if (attributes != null && attributes.getKeys() != null && attributes.getKeys().size() > 0) {
            List<TAttributeKey> keys = attributes.getKeys();
            List<TValue> values = attributes.getValues();
            for (int i = 0; i < keys.size(); i++) {
                JaegerAttribute attr = new JaegerAttribute();
                TAttributeKey tAttributeKey = keys.get(i);
                attr.setKey(tAttributeKey.getValue());
                switch (tAttributeKey.getType()) {
                    case STRING:
                        attr.setType(JaegerAttrType.STRING);
                        attr.setValue(decodeLineBreak(values.get(i).getStringValue()));
                        break;
                    case LONG:
                        attr.setType(JaegerAttrType.LONG);
                        attr.setValue(String.valueOf(values.get(i).getLongValue()));
                        break;
                    case BOOLEAN:
                        attr.setType(JaegerAttrType.BOOLEAN);
                        attr.setValue(String.valueOf(values.get(i).isBoolValue()));
                        break;
                    case DOUBLE:
                        attr.setType(JaegerAttrType.DOUBLE);
                        attr.setValue(String.valueOf(values.get(i).getDoubleValue()));
                        break;
                }
                list.add(attr);
            }
        }
        return list;
    }
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



