[GAL-602] feat: add docs and fix some bugs
This commit is contained in:
47
.gitlab-ci.yml
Normal file
47
.gitlab-ci.yml
Normal file
@@ -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\//
|
||||
182
pom.xml
182
pom.xml
@@ -5,9 +5,9 @@
|
||||
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<groupId>com.zdjizhi</groupId>
|
||||
<groupId>com.geedgenetworks.application</groupId>
|
||||
<artifactId>sip-rtp-correlation</artifactId>
|
||||
<version>2.0</version>
|
||||
<version>2.0-SNAPSHOT</version>
|
||||
|
||||
<name>Flink : SIP-RTP : Correlation</name>
|
||||
|
||||
@@ -25,6 +25,24 @@
|
||||
<junit.version>5.8.0</junit.version>
|
||||
</properties>
|
||||
|
||||
<distributionManagement>
|
||||
<repository>
|
||||
<id>platform-releases</id>
|
||||
<url>http://192.168.40.153:8099/content/repositories/platform-release</url>
|
||||
<uniqueVersion>true</uniqueVersion>
|
||||
</repository>
|
||||
<snapshotRepository>
|
||||
<id>platform-snapshots</id>
|
||||
<url>http://192.168.40.153:8099/content/repositories/platform-snapshot</url>
|
||||
</snapshotRepository>
|
||||
<site>
|
||||
<id>platform-site</id>
|
||||
<url>
|
||||
dav:http://192.168.40.153:8099/content/sites/platform-site/platform/application/sip-rtp-correlate-${project.version}
|
||||
</url>
|
||||
</site>
|
||||
</distributionManagement>
|
||||
|
||||
<repositories>
|
||||
<repository>
|
||||
<id>central</id>
|
||||
@@ -39,18 +57,6 @@
|
||||
</repository>
|
||||
</repositories>
|
||||
|
||||
<distributionManagement>
|
||||
<repository>
|
||||
<id>platform-releases</id>
|
||||
<url>http://192.168.40.153:8099/content/repositories/platform-release</url>
|
||||
<uniqueVersion>true</uniqueVersion>
|
||||
</repository>
|
||||
<snapshotRepository>
|
||||
<id>platform-snapshots</id>
|
||||
<url>http://192.168.40.153:8099/content/repositories/platform-snapshot</url>
|
||||
</snapshotRepository>
|
||||
</distributionManagement>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.slf4j</groupId>
|
||||
@@ -131,6 +137,11 @@
|
||||
<artifactId>easy-stream-socket-connector</artifactId>
|
||||
<version>${easy.stream.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.geedgenetworks.flink</groupId>
|
||||
<artifactId>easy-stream-console-connector</artifactId>
|
||||
<version>${easy.stream.version}</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.geedgenetworks.flink</groupId>
|
||||
@@ -178,6 +189,12 @@
|
||||
<groupId>org.apache.flink</groupId>
|
||||
<artifactId>flink-table-runtime-blink_${scala.binary.version}</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.junit.jupiter</groupId>
|
||||
<artifactId>junit-jupiter-api</artifactId>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<dependencyManagement>
|
||||
@@ -444,6 +461,39 @@
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-enforcer-plugin</artifactId>
|
||||
<version>3.0.0-M3</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>release-version-check</id>
|
||||
<goals>
|
||||
<goal>enforce</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<rules>
|
||||
<requireReleaseVersion>
|
||||
<message>SNAPSHOT versions ${project.version} are not allowed.</message>
|
||||
</requireReleaseVersion>
|
||||
</rules>
|
||||
</configuration>
|
||||
</execution>
|
||||
<execution>
|
||||
<id>snapshot-version-check</id>
|
||||
<goals>
|
||||
<goal>enforce</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<rules>
|
||||
<requireSnapshotVersion>
|
||||
<message>Non-SNAPSHOT versions ${project.version} are not allowed.</message>
|
||||
</requireSnapshotVersion>
|
||||
</rules>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-compiler-plugin</artifactId>
|
||||
@@ -486,11 +536,115 @@
|
||||
</excludes>
|
||||
</filter>
|
||||
</filters>
|
||||
<transformers>
|
||||
<transformer
|
||||
implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer"/>
|
||||
</transformers>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-resources-plugin</artifactId>
|
||||
<version>3.0.0</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>jobs-copy-resources</id>
|
||||
<phase>pre-site</phase>
|
||||
<goals>
|
||||
<goal>copy-resources</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<outputDirectory>${project.build.directory}/site/jobs</outputDirectory>
|
||||
<resources>
|
||||
<resource>
|
||||
<directory>src/main/resources/jobs</directory>
|
||||
<includes>
|
||||
<include>*.yml</include>
|
||||
</includes>
|
||||
</resource>
|
||||
</resources>
|
||||
</configuration>
|
||||
</execution>
|
||||
<execution>
|
||||
<id>site-resources</id>
|
||||
<phase>pre-site</phase>
|
||||
<goals>
|
||||
<goal>resources</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<resources>
|
||||
<resource>
|
||||
<directory>src/site</directory>
|
||||
<filtering>true</filtering>
|
||||
<includes>
|
||||
<include>**</include>
|
||||
</includes>
|
||||
</resource>
|
||||
</resources>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-site-plugin</artifactId>
|
||||
<configuration>
|
||||
<skip>false</skip>
|
||||
</configuration>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>default-site</id>
|
||||
<goals>
|
||||
<goal>site</goal>
|
||||
</goals>
|
||||
<phase>site</phase>
|
||||
<configuration>
|
||||
<siteDirectory>${project.build.outputDirectory}</siteDirectory>
|
||||
</configuration>
|
||||
</execution>
|
||||
<execution>
|
||||
<id>site-deploy</id>
|
||||
<goals>
|
||||
<goal>stage-deploy</goal>
|
||||
</goals>
|
||||
<phase>deploy</phase>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
|
||||
<pluginManagement>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-site-plugin</artifactId>
|
||||
<version>3.9.1</version>
|
||||
<configuration>
|
||||
<outputDirectory>${project.build.directory}/site</outputDirectory>
|
||||
<relativizeDecorationLinks>false</relativizeDecorationLinks>
|
||||
</configuration>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.apache.maven.wagon</groupId>
|
||||
<artifactId>wagon-webdav-jackrabbit</artifactId>
|
||||
<version>2.8</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.maven.doxia</groupId>
|
||||
<artifactId>doxia-module-markdown</artifactId>
|
||||
<version>1.9.1</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-deploy-plugin</artifactId>
|
||||
<version>3.1.1</version>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</pluginManagement>
|
||||
</build>
|
||||
|
||||
</project>
|
||||
@@ -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");
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
@@ -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:
|
||||
- |-
|
||||
@@ -1,5 +1,5 @@
|
||||
# Changelog
|
||||
## Changelog
|
||||
|
||||
### Feature
|
||||
### 2.0
|
||||
|
||||
- [GAL-602](https://jira.geedge.net/browse/GAL-602) 基于 Easy Stream 框架的配置化改造。
|
||||
13
src/site/markdown/deploy.md
Normal file
13
src/site/markdown/deploy.md
Normal file
@@ -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-<version>.jar job.yml`
|
||||
|
||||
- 您将在控制台看到启动日志,同时您可以在 `http://<you-host>:8081` 看到任务 UI。
|
||||
8
src/site/markdown/download.md
Normal file
8
src/site/markdown/download.md
Normal file
@@ -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) |
|
||||
|
||||
10
src/site/markdown/index.md
Normal file
10
src/site/markdown/index.md
Normal file
@@ -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 通话数据,提取关键指标,以及进行实时报警和诊断。
|
||||
|
||||
<br/>
|
||||
|
||||
|
||||
You can download the latest release from [Job Yml](./jobs/job.yml). And you can changelog from [CHANGELOG.md](./changelogs.html).
|
||||
13
src/site/resources/css/site.css
Normal file
13
src/site/resources/css/site.css
Normal file
@@ -0,0 +1,13 @@
|
||||
#banner {
|
||||
height: 108px;
|
||||
background: none;
|
||||
}
|
||||
|
||||
#bannerLeft img {
|
||||
margin-left: 18px;
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
div.well {
|
||||
display: none;
|
||||
}
|
||||
BIN
src/site/resources/images/logo.png
Normal file
BIN
src/site/resources/images/logo.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 4.8 KiB |
56
src/site/site.xml
Normal file
56
src/site/site.xml
Normal file
@@ -0,0 +1,56 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
Licensed to the Apache Software Foundation (ASF) under one or more
|
||||
contributor license agreements. See the NOTICE file distributed with
|
||||
this work for additional information regarding copyright ownership.
|
||||
The ASF licenses this file to You under the Apache License, Version 2.0
|
||||
(the "License"); you may not use this file except in compliance with
|
||||
the License. You may obtain maven-site.vm copy of the License at
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
-->
|
||||
<project name="SIP RTP Correlate">
|
||||
<bannerLeft>
|
||||
<name>Easy Stream</name>
|
||||
<src>images/logo.png</src>
|
||||
<href>#</href>
|
||||
</bannerLeft>
|
||||
|
||||
<publishDate position="right"/>
|
||||
<version position="right"/>
|
||||
|
||||
<skin>
|
||||
<groupId>org.apache.maven.skins</groupId>
|
||||
<artifactId>maven-fluido-skin</artifactId>
|
||||
<version>1.10.0</version>
|
||||
</skin>
|
||||
|
||||
<custom>
|
||||
<fluidoSkin>
|
||||
<sourceLineNumbersEnabled>true</sourceLineNumbersEnabled>
|
||||
</fluidoSkin>
|
||||
</custom>
|
||||
|
||||
<body>
|
||||
<breadcrumbs position="left">
|
||||
<item name="Galaxy" href="#"/>
|
||||
<item name="Platform" href="#"/>
|
||||
<item name="Easy Stream" href="#"/>
|
||||
<item name="Application" href="#"/>
|
||||
</breadcrumbs>
|
||||
|
||||
<menu name="OVERVIEW" inherit="top">
|
||||
<item name="Introduction" href="index.html"/>
|
||||
<item name="Deploy" href="deploy.html"/>
|
||||
<item name="Download" href="download.html"/>
|
||||
</menu>
|
||||
|
||||
<footer>
|
||||
<![CDATA[ Copyright ©2022 <a href="#">Galaxy Platform</a>. All rights reserved.]]>
|
||||
</footer>
|
||||
</body>
|
||||
</project>
|
||||
@@ -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"));
|
||||
}
|
||||
}
|
||||
4
src/test/resources/data/session-records.txt
Normal file
4
src/test/resources/data/session-records.txt
Normal file
@@ -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\"<sip:lina@192.0.2.1>;tag=1837055d","sip_responder_description":"\"1075\"<sip:1075@192.0.2.1>","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\"<sip:lina@192.0.2.1>;tag=1837055d","sip_responder_description":"\"1075\"<sip:1075@192.0.2.1>","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}
|
||||
43
src/test/resources/data/session.json
Normal file
43
src/test/resources/data/session.json
Normal file
@@ -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
|
||||
}
|
||||
@@ -143,10 +143,6 @@ page at http://checkstyle.sourceforge.net/config.html.
|
||||
<property name="illegalPkgs" value="io.netty"/>
|
||||
<message key="import.illegal" value="{0}; Use flink-shaded-netty instead."/>
|
||||
</module>
|
||||
<module name="IllegalImport">
|
||||
<property name="illegalPkgs" value="com.google.common"/>
|
||||
<message key="import.illegal" value="{0}; Use flink-shaded-guava instead."/>
|
||||
</module>
|
||||
|
||||
<module name="RedundantModifier">
|
||||
<!-- Checks for redundant modifiers on various symbol definitions.
|
||||
|
||||
Reference in New Issue
Block a user