summaryrefslogtreecommitdiff
path: root/src/test/java/com/zdjizhi/LegacyFieldTest.java
blob: 5b66e203e06a5dd19cc7db33f4e74e973401a195 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
package com.zdjizhi;

import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONObject;
import com.zdjizhi.common.pojo.Fields;
import com.zdjizhi.common.pojo.Tags;
import org.junit.Test;

/**
 * @author qidaijie
 * @Package com.zdjizhi
 * @Description:
 * @date 2024/3/2614:14
 */
public class LegacyFieldTest {
    @Deprecated
    private static final String LEGACY_PROTOCOL_KEY_NAME = "protocol_label";

    @Deprecated
    private static final String LEGACY_APP_KEY_NAME = "app_full_path";

    @Test
    public void test() {
        //23.07 version data
        String message = "{\"fields\":{\"s2c_tcp_retransmitted_pkts\":0,\"sessions\":0},\"name\":\"application_protocol_stat\",\"tags\":{\"data_center\":\"center-xxg-tsgx\",\"device_group\":\"group-xxg-tsgx\",\"device_id\":\"9800165603191151\",\"protocol_label\":\"ETHERNET.IPv4.UDP\",\"app_full_path\":\"google\",\"vsys_id\":1},\"timestamp_ms\":1705907560000}";
        //24.02 version data
        //String message = "{\"fields\":{\"s2c_tcp_retransmitted_pkts\":0,\"sessions\":0},\"name\":\"application_protocol_stat\",\"tags\":{\"data_center\":\"center-xxg-tsgx\",\"device_group\":\"group-xxg-tsgx\",\"device_id\":\"9800165603191151\",\"decoded_path\":\"ETHERNET.IPv4.UDP\","app":"google",\"vsys_id\":1},\"timestamp_ms\":1705907560000}";
        JSONObject originalLog = JSON.parseObject(message);
        supportingLegacyField(originalLog);
        Fields fields = JSONObject.parseObject(originalLog.getString("fields"), Fields.class);
        Tags tags = JSONObject.parseObject(originalLog.getString("tags"), Tags.class);

        JSONObject from = JSONObject.from(tags);
        System.out.println(from.toJSONString());
    }


    private static void supportingLegacyField(JSONObject originalLog) {
        JSONObject tags = originalLog.getJSONObject("tags");
        System.out.println("解析前tags数据:" + tags.toJSONString() + "\n");

        if (tags.containsKey(LEGACY_PROTOCOL_KEY_NAME)) {
            tags.put("decoded_path", tags.remove(LEGACY_PROTOCOL_KEY_NAME));

            tags.put("app", tags.remove(LEGACY_APP_KEY_NAME));

            originalLog.put("tags", originalLog.remove("tags"));
            System.out.println("转换后tags数据:" + tags.toJSONString() + "\n");
        }
    }
}