From e5a5331464d6116538bb3e32bc94703c6ce83d0a Mon Sep 17 00:00:00 2001 From: chaochaoc <13051077615@126.com> Date: Fri, 28 Jun 2024 18:45:53 +0800 Subject: [PATCH] [GAL-602] feat: add docs and fix some bugs --- .gitlab-ci.yml | 47 +++++ pom.xml | 182 ++++++++++++++++-- src/main/java/Application.java | 9 - src/main/resources/application.properties | 7 - src/main/resources/{ => jobs}/job.yml | 13 +- .../site/markdown/changelogs.md | 4 +- src/site/markdown/deploy.md | 13 ++ src/site/markdown/download.md | 8 + src/site/markdown/index.md | 10 + src/site/resources/css/site.css | 13 ++ src/site/resources/images/logo.png | Bin 0 -> 4877 bytes src/site/site.xml | 56 ++++++ .../easy/application/ApplicationTest.java | 33 ++++ src/test/resources/data/session-records.txt | 4 + src/test/resources/data/session.json | 43 +++++ tools/maven/checkstyle.xml | 4 - 16 files changed, 402 insertions(+), 44 deletions(-) create mode 100644 .gitlab-ci.yml delete mode 100644 src/main/java/Application.java delete mode 100644 src/main/resources/application.properties rename src/main/resources/{ => jobs}/job.yml (99%) rename CHANGELOG.md => src/site/markdown/changelogs.md (80%) create mode 100644 src/site/markdown/deploy.md create mode 100644 src/site/markdown/download.md create mode 100644 src/site/markdown/index.md create mode 100644 src/site/resources/css/site.css create mode 100644 src/site/resources/images/logo.png create mode 100644 src/site/site.xml create mode 100644 src/test/java/com/geedgenetworks/flink/easy/application/ApplicationTest.java create mode 100644 src/test/resources/data/session-records.txt create mode 100644 src/test/resources/data/session.json diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000..2959ffc --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,47 @@ +image: 192.168.40.153:9080/common/maven:3.8.1-openjdk-11-slim-with-git + +variables: + MAVEN_CLI_OPTS: "--batch-mode --errors --show-version" + +stages: + - check + - test + - build + +snapshot-version: + stage: check + script: + - mvn $MAVEN_CLI_OPTS enforcer:enforce@snapshot-version-check + rules: + - if: $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "develop" && $CI_PIPELINE_SOURCE == "merge_request_event" + +non-snapshot-version: + stage: check + script: + - mvn $MAVEN_CLI_OPTS enforcer:enforce@release-version-check + - |- + if `mvn $MAVEN_CLI_OPTS dependency:get@release-deploy-check > /dev/null 2>&1`; then + echo "The current version has been deployed." + exit 1 + else + echo "The current version has not been deployed." + fi + rules: + - if: $CI_MERGE_REQUEST_TARGET_BRANCH_NAME =~ /(^master$|^release\/)/ && $CI_PIPELINE_SOURCE == "merge_request_event" + +test: + stage: test + script: + - mvn $MAVEN_CLI_OPTS clean test + only: + - merge_requests + +# Used for building snapshot versions on the develop branch. +build: + stage: build + script: + - echo "$MAVEN_SETTINGS_XML" > /usr/share/maven/conf/settings.xml + - mvn clean site deploy -DskipTests + only: + - master + - /^release\// \ No newline at end of file diff --git a/pom.xml b/pom.xml index 04639d7..c922d1e 100644 --- a/pom.xml +++ b/pom.xml @@ -5,9 +5,9 @@ 4.0.0 - com.zdjizhi + com.geedgenetworks.application sip-rtp-correlation - 2.0 + 2.0-SNAPSHOT Flink : SIP-RTP : Correlation @@ -25,6 +25,24 @@ 5.8.0 + + + platform-releases + http://192.168.40.153:8099/content/repositories/platform-release + true + + + platform-snapshots + http://192.168.40.153:8099/content/repositories/platform-snapshot + + + platform-site + + dav:http://192.168.40.153:8099/content/sites/platform-site/platform/application/sip-rtp-correlate-${project.version} + + + + central @@ -39,18 +57,6 @@ - - - platform-releases - http://192.168.40.153:8099/content/repositories/platform-release - true - - - platform-snapshots - http://192.168.40.153:8099/content/repositories/platform-snapshot - - - org.slf4j @@ -131,6 +137,11 @@ easy-stream-socket-connector ${easy.stream.version} + + com.geedgenetworks.flink + easy-stream-console-connector + ${easy.stream.version} + com.geedgenetworks.flink @@ -178,6 +189,12 @@ org.apache.flink flink-table-runtime-blink_${scala.binary.version} + + + org.junit.jupiter + junit-jupiter-api + test + @@ -444,6 +461,39 @@ + + org.apache.maven.plugins + maven-enforcer-plugin + 3.0.0-M3 + + + release-version-check + + enforce + + + + + SNAPSHOT versions ${project.version} are not allowed. + + + + + + snapshot-version-check + + enforce + + + + + Non-SNAPSHOT versions ${project.version} are not allowed. + + + + + + org.apache.maven.plugins maven-compiler-plugin @@ -486,11 +536,115 @@ + + + + + org.apache.maven.plugins + maven-resources-plugin + 3.0.0 + + + jobs-copy-resources + pre-site + + copy-resources + + + ${project.build.directory}/site/jobs + + + src/main/resources/jobs + + *.yml + + + + + + + site-resources + pre-site + + resources + + + + + src/site + true + + ** + + + + + + + + + org.apache.maven.plugins + maven-site-plugin + + false + + + + default-site + + site + + site + + ${project.build.outputDirectory} + + + + site-deploy + + stage-deploy + + deploy + + + + + + + + org.apache.maven.plugins + maven-site-plugin + 3.9.1 + + ${project.build.directory}/site + false + + + + org.apache.maven.wagon + wagon-webdav-jackrabbit + 2.8 + + + org.apache.maven.doxia + doxia-module-markdown + 1.9.1 + + + + + org.apache.maven.plugins + maven-deploy-plugin + 3.1.1 + + + \ No newline at end of file diff --git a/src/main/java/Application.java b/src/main/java/Application.java deleted file mode 100644 index 237c2b7..0000000 --- a/src/main/java/Application.java +++ /dev/null @@ -1,9 +0,0 @@ -import com.geedgenetworks.flink.easy.core.Runners; - -public class Application { - - public static void main(String[] args) throws Exception { - - Runners.run("E:\\java-workspace\\sip-rtp-correlation\\feature\\easy-refactor\\src\\main\\resources\\job.yml"); - } -} diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties deleted file mode 100644 index 7cc9d25..0000000 --- a/src/main/resources/application.properties +++ /dev/null @@ -1,7 +0,0 @@ -sink.kafka.topic=VOIP-CONVERSATION-RECORD -sink.kafka.props.bootstrap.servers=localhost:9292 - - -source.kafka.topic=VOIP-RECORD -source.kafka.props.bootstrap.servers=localhost:9292 -source.kafka.props.group.id=flink-voip-fusion \ No newline at end of file diff --git a/src/main/resources/job.yml b/src/main/resources/jobs/job.yml similarity index 99% rename from src/main/resources/job.yml rename to src/main/resources/jobs/job.yml index e777f17..52aba5e 100644 --- a/src/main/resources/job.yml +++ b/src/main/resources/jobs/job.yml @@ -1,6 +1,6 @@ job: name: correlation_sip_rtp_session - parallelism: 10 + parallelism: 1 active-pipeline: - only-voip-records - fusion-fail-records @@ -1077,6 +1077,7 @@ pipeline: data-type: INT - name: rtp type: LIST + ttl: 6 minute schema: ## General - name: recv_time @@ -1350,10 +1351,8 @@ pipeline: key-by: vsys_id, SORT_ADDRESS( sip_originator_sdp_connect_ip, sip_originator_sdp_media_port, sip_responder_sdp_connect_ip, sip_responder_sdp_media_port ) # SIP process: - - if: '@sip.isNull' - then: - - SET sip FROM withColumns(recv_time to rtp_originator_dir) - - if: '@sip.isNotNull && @rtp.isNotNull && @rtp.cardinality() > 0' + - SET sip FROM withColumns(recv_time to rtp_originator_dir) + - if: '@rtp.isNotNull' then: - |- FLAT OUTPUT ok FOR i IN rtp FROM @@ -1436,9 +1435,7 @@ pipeline: - on: rtp-records key-by: vsys_id, SORT_ADDRESS( client_ip, client_port, server_ip, server_port ) process: - - if: '@sip.isNull' - then: - - APPEND rtp FROM withColumns(recv_time to rtp_originator_dir) + - APPEND rtp FROM withColumns(recv_time to rtp_originator_dir) - if: '@sip.isNotNull' then: - |- diff --git a/CHANGELOG.md b/src/site/markdown/changelogs.md similarity index 80% rename from CHANGELOG.md rename to src/site/markdown/changelogs.md index 73e84e8..aab7b60 100644 --- a/CHANGELOG.md +++ b/src/site/markdown/changelogs.md @@ -1,5 +1,5 @@ -# Changelog +## Changelog -### Feature +### 2.0 - [GAL-602](https://jira.geedge.net/browse/GAL-602) 基于 Easy Stream 框架的配置化改造。 \ No newline at end of file diff --git a/src/site/markdown/deploy.md b/src/site/markdown/deploy.md new file mode 100644 index 0000000..5114e9e --- /dev/null +++ b/src/site/markdown/deploy.md @@ -0,0 +1,13 @@ +## Deploy + +- 准备 JDK ${java.version} 的环境 + +- 准备 Flink ${flink.version} 的环境 + +- [下载](./download.html) 对应版本 UDF 依赖 Jar + +- [下载](./download.html) 对应版本 Job 配置 (一个 yml 文件) + +- 执行命令 `flink run -Dflink.rest.bind-port=8081 -c com.geedgenetworks.flink.easy.core.Runner path/to/sip-rtp-correlation-.jar job.yml` + +- 您将在控制台看到启动日志,同时您可以在 `http://:8081` 看到任务 UI。 \ No newline at end of file diff --git a/src/site/markdown/download.md b/src/site/markdown/download.md new file mode 100644 index 0000000..d85bc18 --- /dev/null +++ b/src/site/markdown/download.md @@ -0,0 +1,8 @@ +## Download + +### Easy Stream ${project.version} + +| UDF Jar | Job | +|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| --------------- | +| [JAR](${project.distributionManagement.repository.url}/com/geedgenetworks/application/sip-rtp-correlation/${project.version}/${project.artifactId}-${project.version}.jar) ( [MD5](${project.distributionManagement.repository.url}/com/geedgenetworks/application/sip-rtp-correlation/${project.version}/${project.artifactId}-${project.version}.jar.md5) [SHA1](${project.distributionManagement.repository.url}/com/geedgenetworks/application/sip-rtp-correlation/${project.version}/${project.artifactId}-${project.version}.jar.sha1) ) | [YAML](./jobs/job.yml) | + diff --git a/src/site/markdown/index.md b/src/site/markdown/index.md new file mode 100644 index 0000000..2bf785c --- /dev/null +++ b/src/site/markdown/index.md @@ -0,0 +1,10 @@ +## SIP RTP Correlation + +SIP RTP Correlation 项目是一个使用 Apache Flink 实现的实时数据处理项目,旨在从 Kafka 中读取 SIP(Session Initiation Protocol)和 RTP(Real-time Transport Protocol)数据,将它们融合成完整的 VoIP(Voice over Internet Protocol)通话数据。 + +SIP RTP Correlation 项目可以用于实时监控和分析 VoIP 通话数据,提取关键指标,以及进行实时报警和诊断。 + +
+ + +You can download the latest release from [Job Yml](./jobs/job.yml). And you can changelog from [CHANGELOG.md](./changelogs.html). \ No newline at end of file diff --git a/src/site/resources/css/site.css b/src/site/resources/css/site.css new file mode 100644 index 0000000..11a3d99 --- /dev/null +++ b/src/site/resources/css/site.css @@ -0,0 +1,13 @@ +#banner { + height: 108px; + background: none; +} + +#bannerLeft img { + margin-left: 18px; + margin-top: 10px; +} + +div.well { + display: none; +} \ No newline at end of file diff --git a/src/site/resources/images/logo.png b/src/site/resources/images/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..da2277a5a9f0f0af9d778ee4973b1b061f39406b GIT binary patch literal 4877 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 LwQ;SXPxAi&tj$b? literal 0 HcmV?d00001 diff --git a/src/site/site.xml b/src/site/site.xml new file mode 100644 index 0000000..497fe49 --- /dev/null +++ b/src/site/site.xml @@ -0,0 +1,56 @@ + + + + + Easy Stream + images/logo.png + # + + + + + + + org.apache.maven.skins + maven-fluido-skin + 1.10.0 + + + + + true + + + + + + + + + + + + + + + + + +
+ Galaxy Platform. All rights reserved.]]> +
+ +
diff --git a/src/test/java/com/geedgenetworks/flink/easy/application/ApplicationTest.java b/src/test/java/com/geedgenetworks/flink/easy/application/ApplicationTest.java new file mode 100644 index 0000000..c9eac46 --- /dev/null +++ b/src/test/java/com/geedgenetworks/flink/easy/application/ApplicationTest.java @@ -0,0 +1,33 @@ +package com.geedgenetworks.flink.easy.application; + +import com.geedgenetworks.flink.easy.core.Runners; +import org.junit.jupiter.api.Test; + +public class ApplicationTest { + + static { +// System.setProperty("easy.execute.mode", "validate"); + System.setProperty("flink.rest.bind-port", "8081"); +// System.setProperty("flink.rest.flamegraph.enabled", "true"); + System.setProperty("flink.heartbeat.timeout", "1800000"); + } + + public static String discoverConfiguration(final String name) throws Exception { + var path = String.format("/jobs/%s.yml", name); + var resource = ApplicationTest.class.getResource(path); + if (resource == null) { + // maven + resource = ApplicationTest.class.getResource(String.format("../classes/%s", path)); + } + if (resource == null) { + throw new IllegalArgumentException( + String.format("Not found job '%s' in path [%s].", name, path)); + } + return resource.getPath(); + } + + @Test + public void testJob() throws Exception { + Runners.run(discoverConfiguration("job")); + } +} diff --git a/src/test/resources/data/session-records.txt b/src/test/resources/data/session-records.txt new file mode 100644 index 0000000..821e859 --- /dev/null +++ b/src/test/resources/data/session-records.txt @@ -0,0 +1,4 @@ +{"log_id": 438322402985248769,"recv_time":946681200,"__inputid":"tsg_olap","session_id":10240001,"decoded_as":"RTP","ip_protocol":"udp","address_type":4,"client_ip":"192.168.64.8","server_ip":"192.168.39.62","client_port":25524,"server_port":4580,"t_vsys_id":0,"vsys_id":1024,"data_center":"tsg_olap","device_group":"tsg_olap","device_id":"0000000000000000","sled_ip":"127.0.0.1","app":"unknown","app_transition":"","client_geolocation":"unknown","server_geolocation":"unknown","decoded_path":"ETHERNET.IPv4.UDP.rtp","server_fqdn":"","out_src_mac":"00:1A:2B:3C:4D:5E","out_dest_mac":"5E:4D:3C:2B:1A:00","start_timestamp_ms":1715830004000,"end_timestamp_ms":946681200000,"tcp_rtt_ms":0,"tcp_client_isn":0,"tcp_server_isn":0,"tcp_handshake_latency_ms":0,"in_link_id":0,"out_link_id":0,"duration_ms":0,"sent_pkts":0,"sent_bytes":0,"received_pkts":0,"received_bytes":0,"tcp_c2s_ip_fragments":0,"tcp_s2c_ip_fragments":0,"tcp_c2s_rtx_pkts":0,"tcp_c2s_rtx_bytes":0,"tcp_s2c_rtx_pkts":0,"tcp_s2c_rtx_bytes":0,"tcp_c2s_o3_pkts":0,"tcp_s2c_o3_pkts":0,"tcp_c2s_lost_bytes":0,"tcp_s2c_lost_bytes":0,"flags":57620,"flags_identify_info":[1,1],"fqdn_category_list":[0],"monitor_rule_list":[0],"security_rule_list":[0],"sc_rule_list":[0],"shaping_rule_list":[0],"proxy_rule_list":[0],"statistics_rule_list":[0],"monitor_mirrored_pkts":0,"monitor_mirrored_bytes":0,"client_os_desc":"Windows","server_os_desc":"Linux","device_tag":"{\"tags\":[{\"tag\":\"data_center\",\"value\":\"tsg_olap\"},{\"tag\":\"device_group\",\"value\":\"tsg_olap\"}]}","dup_traffic_flag":0,"sc_rsp_raw":[0],"encapsulation":"[{\"tunnels_schema_type\":\"ETHERNET\",\"source_mac\":\"00:1A:2B:3C:4D:5E\",\"destination_mac\":\"5E:4D:3C:2B:1A:00\"}]","rtp_pcap_path":"123e4567-e89b-12d3-a456-426614174005"} +{"log_id": 438322402985248769,"recv_time":946681200,"__inputid":"tsg_olap","session_id":10240002,"decoded_as":"SIP","ip_protocol":"udp","address_type":4,"client_ip":"10.0.0.1","server_ip":"192.0.2.1","client_port":1000,"server_port":60000,"t_vsys_id":0,"vsys_id":1025,"data_center":"tsg_olap","device_group":"tsg_olap","device_id":"0000000000000000","sled_ip":"127.0.0.1","app":"unknown","app_transition":"","client_geolocation":"unknown","server_geolocation":"unknown","decoded_path":"ETHERNET.IPv4.UDP.sip","server_fqdn":"","out_src_mac":"00:1A:2B:3C:4D:5E","out_dest_mac":"5E:4D:3C:2B:1A:00","start_timestamp_ms":1715830000100,"end_timestamp_ms":946681200000,"tcp_rtt_ms":0,"tcp_client_isn":0,"tcp_server_isn":0,"tcp_handshake_latency_ms":0,"in_link_id":0,"out_link_id":0,"duration_ms":0,"sent_pkts":0,"sent_bytes":0,"received_pkts":0,"received_bytes":0,"tcp_c2s_ip_fragments":0,"tcp_s2c_ip_fragments":0,"tcp_c2s_rtx_pkts":0,"tcp_c2s_rtx_bytes":0,"tcp_s2c_rtx_pkts":0,"tcp_s2c_rtx_bytes":0,"tcp_c2s_o3_pkts":0,"tcp_s2c_o3_pkts":0,"tcp_c2s_lost_bytes":0,"tcp_s2c_lost_bytes":0,"flags":8192,"flags_identify_info":[1,1],"fqdn_category_list":[0],"monitor_rule_list":[0],"security_rule_list":[0],"sc_rule_list":[0],"shaping_rule_list":[0],"proxy_rule_list":[0],"statistics_rule_list":[0],"monitor_mirrored_pkts":0,"monitor_mirrored_bytes":0,"client_os_desc":"Windows","server_os_desc":"Linux","device_tag":"{\"tags\":[{\"tag\":\"data_center\",\"value\":\"tsg_olap\"},{\"tag\":\"device_group\",\"value\":\"tsg_olap\"}]}","dup_traffic_flag":0,"sc_rsp_raw":[0],"encapsulation":"[{\"tunnels_schema_type\":\"ETHERNET\",\"source_mac\":\"00:1A:2B:3C:4D:5E\",\"destination_mac\":\"5E:4D:3C:2B:1A:00\"}]","sip_call_id":"NGMxZWY3Y2NmMzNlNGE3NzJhODgyZDAwM2YyMzQ4NGI.","sip_originator_description":"\"lina\";tag=1837055d","sip_responder_description":"\"1075\"","sip_originator_sdp_connect_ip":"192.168.64.85","sip_originator_sdp_media_port":25524,"sip_originator_sdp_media_type":"application/sdp","sip_server":"OpenSIPS (2.4.11 (x86_64/linux))","sip_responder_sdp_connect_ip":"192.168.39.62","sip_responder_sdp_media_port":4580,"sip_responder_sdp_media_type":"application/sdp","sip_duration_s":590,"sip_bye":"responder","sip_cseq":"2 BYE","sip_via":"SIP/2.0/UDP 192.0.2.1:5060;branch=z9hG4bKbe7c.392190f1.0","sip_user_agent":"eyeBeam release 1011d stamp 40820","sip_is_request":0} +{"log_id": 438322402985248769,"recv_time":946681200,"__inputid":"tsg_olap","session_id":10240003,"decoded_as":"RTP","ip_protocol":"udp","address_type":4,"client_ip":"192.168.164.18","server_ip":"192.168.39.162","client_port":65121,"server_port":4670,"t_vsys_id":0,"vsys_id":1024,"data_center":"tsg_olap","device_group":"tsg_olap","device_id":"0000000000000000","sled_ip":"127.0.0.1","app":"unknown","app_transition":"","client_geolocation":"unknown","server_geolocation":"unknown","decoded_path":"ETHERNET.IPv4.UDP.rtp","server_fqdn":"","out_src_mac":"00:1A:2B:3C:4D:5E","out_dest_mac":"5E:4D:3C:2B:1A:00","start_timestamp_ms":1715830000000,"end_timestamp_ms":946681200000,"tcp_rtt_ms":0,"tcp_client_isn":0,"tcp_server_isn":0,"tcp_handshake_latency_ms":0,"in_link_id":0,"out_link_id":0,"duration_ms":0,"sent_pkts":0,"sent_bytes":0,"received_pkts":0,"received_bytes":0,"tcp_c2s_ip_fragments":0,"tcp_s2c_ip_fragments":0,"tcp_c2s_rtx_pkts":0,"tcp_c2s_rtx_bytes":0,"tcp_s2c_rtx_pkts":0,"tcp_s2c_rtx_bytes":0,"tcp_c2s_o3_pkts":0,"tcp_s2c_o3_pkts":0,"tcp_c2s_lost_bytes":0,"tcp_s2c_lost_bytes":0,"flags":57620,"flags_identify_info":[1,1],"fqdn_category_list":[0],"monitor_rule_list":[0],"security_rule_list":[0],"sc_rule_list":[0],"shaping_rule_list":[0],"proxy_rule_list":[0],"statistics_rule_list":[0],"monitor_mirrored_pkts":0,"monitor_mirrored_bytes":0,"client_os_desc":"Windows","server_os_desc":"Linux","device_tag":"{\"tags\":[{\"tag\":\"data_center\",\"value\":\"tsg_olap\"},{\"tag\":\"device_group\",\"value\":\"tsg_olap\"}]}","dup_traffic_flag":0,"sc_rsp_raw":[0],"encapsulation":"[{\"tunnels_schema_type\":\"ETHERNET\",\"source_mac\":\"00:1A:2B:3C:4D:5E\",\"destination_mac\":\"5E:4D:3C:2B:1A:00\"}]","rtp_pcap_path":"123e4567-e89b-12d3-a456-426614174005"} +{"log_id": 438322402985248769,"recv_time":946681200,"__inputid":"tsg_olap","session_id":10240004,"decoded_as":"SIP","ip_protocol":"udp","address_type":4,"client_ip":"10.0.0.2","server_ip":"192.0.2.2","client_port":1000,"server_port":60000,"t_vsys_id":0,"vsys_id":1024,"data_center":"tsg_olap","device_group":"tsg_olap","device_id":"0000000000000000","sled_ip":"127.0.0.1","app":"unknown","app_transition":"","client_geolocation":"unknown","server_geolocation":"unknown","decoded_path":"ETHERNET.IPv4.UDP.sip","server_fqdn":"","out_src_mac":"00:1A:2B:3C:4D:5E","out_dest_mac":"5E:4D:3C:2B:1A:00","start_timestamp_ms":1715830000000,"end_timestamp_ms":946681200000,"tcp_rtt_ms":0,"tcp_client_isn":0,"tcp_server_isn":0,"tcp_handshake_latency_ms":0,"in_link_id":0,"out_link_id":0,"duration_ms":0,"sent_pkts":0,"sent_bytes":0,"received_pkts":0,"received_bytes":0,"tcp_c2s_ip_fragments":0,"tcp_s2c_ip_fragments":0,"tcp_c2s_rtx_pkts":0,"tcp_c2s_rtx_bytes":0,"tcp_s2c_rtx_pkts":0,"tcp_s2c_rtx_bytes":0,"tcp_c2s_o3_pkts":0,"tcp_s2c_o3_pkts":0,"tcp_c2s_lost_bytes":0,"tcp_s2c_lost_bytes":0,"flags":24584,"flags_identify_info":[1,1],"fqdn_category_list":[0],"monitor_rule_list":[0],"security_rule_list":[0],"sc_rule_list":[0],"shaping_rule_list":[0],"proxy_rule_list":[0],"statistics_rule_list":[0],"monitor_mirrored_pkts":0,"monitor_mirrored_bytes":0,"client_os_desc":"Windows","server_os_desc":"Linux","device_tag":"{\"tags\":[{\"tag\":\"data_center\",\"value\":\"tsg_olap\"},{\"tag\":\"device_group\",\"value\":\"tsg_olap\"}]}","dup_traffic_flag":0,"sc_rsp_raw":[0],"encapsulation":"[{\"tunnels_schema_type\":\"ETHERNET\",\"source_mac\":\"00:1A:2B:3C:4D:5E\",\"destination_mac\":\"5E:4D:3C:2B:1A:00\"}]","sip_call_id":"IUMxZWY3Y2NmMzNlNGE3NzJhODgyZDAwM2YyMzQ4NGI.","sip_originator_description":"\"lina\";tag=1837055d","sip_responder_description":"\"1075\"","sip_originator_sdp_connect_ip":"192.68.64.8","sip_originator_sdp_media_port":25524,"sip_originator_sdp_media_type":"application/sdp","sip_server":"OpenSIPS (2.4.11 (x86_64/linux))","sip_responder_sdp_connect_ip":"192.18.39.62","sip_responder_sdp_media_port":4580,"sip_responder_sdp_media_type":"application/sdp","sip_duration_s":590,"sip_bye":"responder","sip_cseq":"2 BYE","sip_via":"SIP/2.0/UDP 192.0.2.1:5060;branch=z9hG4bKbe7c.392190f1.0","sip_user_agent":"eyeBeam release 1011d stamp 40820","sip_is_request":0} \ No newline at end of file diff --git a/src/test/resources/data/session.json b/src/test/resources/data/session.json new file mode 100644 index 0000000..683609c --- /dev/null +++ b/src/test/resources/data/session.json @@ -0,0 +1,43 @@ +{ + "device_id": "9800165603247024", + "sled_ip": "92.168.40.26", + "tcp_handshake_latency_ms": 1034, + "out_link_id": 41612, + "in_link_id": 60995, + "address_type": 4, + "vsys_id": 2048, + "flags": 91784, + "device_group": "OLAP-MOCK-DG-3", + "data_center": "OLAP-MOCK-DC-2", + "direction": "Inbound", + "client_ip": "16.176.21.112", + "server_ip": "103.144.108.239", + "c2s_ttl": 46, + "s2c_ttl": 128, + "client_port": 57690, + "server_port": 443, + "subscriber_id": "Abdul Kunze", + "phone_number": "+1 424-760-9979 x1322", + "decoded_as": "SSL", + "ssl_sni": "schumm.name", + "app": "ssl", + "ip_protocol": "udp", + "sent_pkts": 101, + "received_pkts": 18, + "sent_bytes": 2838, + "received_bytes": 23465, + "start_timestamp_ms": 1719400532424, + "end_timestamp_ms": 1719400532424, + "duration_ms": 5624, + "tcp_rtt_ms": 12, + "log_id": 438322402985248769, + "recv_time": 1719400532, + "session_id": 438322402985773057, + "ingestion_time": 1719400532, + "server_domain": "schumm.name", + "server_asn": "139742", + "client_administrative_area": "Unknown", + "client_country": "United States", + "client_super_administrative_area": "Unknown", + "processing_time": 1719400532 +} \ No newline at end of file diff --git a/tools/maven/checkstyle.xml b/tools/maven/checkstyle.xml index ae5a148..78f2137 100644 --- a/tools/maven/checkstyle.xml +++ b/tools/maven/checkstyle.xml @@ -143,10 +143,6 @@ page at http://checkstyle.sourceforge.net/config.html. - - - -