Skip to content

Commit 6338890

Browse files
committed
merge
2 parents d00df5d + 3fe31a2 commit 6338890

File tree

111 files changed

+1827
-362
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

111 files changed

+1827
-362
lines changed

.gitignore

-1
Original file line numberDiff line numberDiff line change
@@ -22,4 +22,3 @@ disconf/
2222
.DS_Store
2323
/.DS_Store
2424
/out/
25-

README.md

+21-20
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,16 @@
4141
修改根目录gradle文件中的私服地址(这样才能打包deploy到自己的本地私服)
4242
打包:gradle clean install upload -x test
4343

44+
## 容器部署
45+
46+
需要自己修改每个项目下的image下的Dockerfile文件
47+
48+
PS: rancher一键部署skyeye后期出教程,基本符合持续交付的场景。
49+
50+
```shell
51+
sudo bash build.sh 1.3.0 master
52+
```
53+
4454
## skyeye-base
4555

4656
本项目没有具体的业务逻辑,主要是各个模块通用的类定义,如:常量、dto、dapper相关、公用util,所以该项目无需部署,只需要打包。
@@ -79,12 +89,12 @@
7989

8090
### dubbox
8191

82-
由于使用dubbox,为了能够采集到dubbox里面的rpc数据,需要修改dubbox的源码,见我修改的dubbox项目:[dubbox](https://github.com/JThink/dubbox/tree/skyeye-trace-1.2.0),该项目主要实现了rpc跟踪的具体实现,需要单独打包。
92+
由于使用dubbox,为了能够采集到dubbox里面的rpc数据,需要修改dubbox的源码,见我修改的dubbox项目:[dubbox](https://github.com/JThink/dubbox/tree/skyeye-trace-1.3.0),该项目主要实现了rpc跟踪的具体实现,需要单独打包。
8393

8494
```shell
8595
git clone https://github.com/JThink/dubbox.git
8696
cd dubbox
87-
git checkout skyeye-trace-1.2.0
97+
git checkout skyeye-trace-1.3.0
8898
修改相关pom中的私服地址
8999
mvn clean install deploy -Dmaven.test.skip=true
90100
```
@@ -493,15 +503,8 @@ rabbit.request.exchange=direct.log
493503
rabbit.request.routingKey=log.key
494504

495505
# monitor
496-
monitor.es.window=*/10 * * * * ? # 监控代码执行的周期,建议不修改
506+
monitor.es.interval=0 */1 * * * ? # 监控代码执行的周期,建议不修改
497507
498-
monitor.es.interval=10 # 采集多久之前的数据进行分析(单位:分钟),建议按需修改
499-
monitor.es.middlewareResponseTime=1000 # 中间件操作耗时大于多少(毫秒),建议根据实际报警情况来定,防止出现报警风暴(比如大于5秒,这个值就要设置5000)
500-
monitor.es.middlewareThreshold=0.1 # 中间件的报警阈值(耗时大于 monitor.es.middlewareResponseTime 该值的比例大于该值),该值需要按照实际运行过程的情况不断得调节,防止出现报警风暴
501-
monitor.es.apiResponseTime=1000
502-
monitor.es.apiThreshold=0.1
503-
monitor.es.thirdResponseTime=1000
504-
monitor.es.thirdThreshold=0.1
505508

506509
# hbase config
507510
hbase.quorum=panda-01,panda-01,panda-03
@@ -532,7 +535,7 @@ nohup bin/skyeye-web &
532535
gradle或者pom中加入skyeye-client的依赖
533536
534537
``` xml
535-
compile "skyeye:skyeye-client-logback:1.2.0"
538+
compile "skyeye:skyeye-client-logback:1.3.0"
536539
```
537540
### 配置
538541
在logback.xml中加入一个kafkaAppender,并在properties中配置好相关的值,如下(rpc这个项目前支持none和dubbo,所以如果项目中有dubbo服务的配置成dubbo,没有dubbo服务的配置成none,以后会支持其他的rpc框架,如:thrift、spring cloud等):
@@ -543,7 +546,7 @@ compile "skyeye:skyeye-client-logback:1.2.0"
543546
<appender name="kafkaAppender" class="com.jthink.skyeye.client.logback.appender.KafkaAppender">
544547
<encoder class="com.jthink.skyeye.client.logback.encoder.KafkaLayoutEncoder">
545548
<layout class="ch.qos.logback.classic.PatternLayout">
546-
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS};${CONTEXT_NAME};${HOSTNAME};%thread;%-5level;%logger{96};%line;%msg%n</pattern>
549+
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS};${CONTEXT_NAME};HOSTNAME;%thread;%-5level;%logger{96};%line;%msg%n</pattern>
547550
</layout>
548551
</encoder>
549552
<topic>app-log</topic>
@@ -556,15 +559,14 @@ compile "skyeye:skyeye-client-logback:1.2.0"
556559
<config>acks=0</config>
557560
<config>linger.ms=100</config>
558561
<config>max.block.ms=5000</config>
559-
<config>client.id=${CONTEXT_NAME}-${HOSTNAME}-logback</config>
560562
</appender>
561563
```
562564
## log4j
563565
### 依赖
564566
gradle或者pom中加入skyeye-client的依赖
565567
566568
``` xml
567-
compile "skyeye:skyeye-client-log4j:1.2.0"
569+
compile "skyeye:skyeye-client-log4j:1.3.0"
568570
```
569571
### 配置
570572
在log4j.xml中加入一个kafkaAppender,并在properties中配置好相关的值,如下(rpc这个项目前支持none和dubbo,所以如果项目中有dubbo服务的配置成dubbo,没有dubbo服务的配置成none,以后会支持其他的rpc框架,如:thrift、spring cloud等):
@@ -593,7 +595,7 @@ compile "skyeye:skyeye-client-log4j:1.2.0"
593595
gradle或者pom中加入skyeye-client的依赖
594596
595597
``` xml
596-
compile "skyeye:skyeye-client-log4j2:1.2.0"
598+
compile "skyeye:skyeye-client-log4j2:1.3.0"
597599
```
598600
599601
### 配置
@@ -602,13 +604,12 @@ compile "skyeye:skyeye-client-log4j2:1.2.0"
602604
603605
```xml
604606
<KafkaCustomize name="KafkaCustomize" topic="app-log" zkServers="riot01.jthink.com:2181,riot02.jthink.com:2181,riot03.jthink.com:2181"
605-
mail="[email protected]" rpc="none" app="${APP_NAME}" host="${hostName}">
607+
mail="[email protected]" rpc="none" app="${APP_NAME}">
606608
<ThresholdFilter level="info" onMatch="ACCEPT" onMismatch="DENY"/>
607-
<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS};${APP_NAME};${hostName};%t;%-5level;%logger{96};%line;%msg%n"/>
609+
<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS};${APP_NAME};HOSTNAME;%t;%-5level;%logger{96};%line;%msg%n"/>
608610
<Property name="bootstrap.servers">riot01.jthink.com:9092,riot02.jthink.com:9092,riot03.jthink.com:9092</Property>
609611
<Property name="acks">0</Property>
610612
<Property name="linger.ms">100</Property>
611-
<Property name="client.id">${APP_NAME}-${hostName}-log4j2</Property>
612613
</KafkaCustomize>
613614
```
614615
@@ -620,11 +621,11 @@ compile "skyeye:skyeye-client-log4j2:1.2.0"
620621
### log4j
621622
由于log4j本身的appender比较复杂难写,所以在稳定性和性能上没有logback支持得好,应用能使用logback请尽量使用logback
622623
### rpc trace
623-
使用自己打包的dubbox([dubbox](https://github.com/JThink/dubbox/tree/skyeye-trace-1.2.0)),在soa中间件dubbox中封装了rpc的跟踪
624+
使用自己打包的dubbox([dubbox](https://github.com/JThink/dubbox/tree/skyeye-trace-1.3.0)),在soa中间件dubbox中封装了rpc的跟踪
624625
625626
``` shell
626627
compile "com.101tec:zkclient:0.10"
627-
compile ("com.alibaba:dubbo:2.8.4-skyeye-trace-1.2.0") {
628+
compile ("com.alibaba:dubbo:2.8.4-skyeye-trace-1.3.0") {
628629
exclude group: 'org.springframework', module: 'spring'
629630
}
630631
```

build.gradle

+5-5
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,8 @@ allprojects {
44
apply plugin: 'eclipse'
55

66
group = 'skyeye'
7-
version = '1.2.2'
8-
9-
sourceCompatibility = 1.8
7+
version = '1.3.0'
8+
109
targetCompatibility = 1.8
1110
[compileJava, compileTestJava]*.options*.encoding = 'UTF-8'
1211
buildDir = 'target'
@@ -36,7 +35,8 @@ subprojects {
3635
zkclientVersion = '0.10'
3736
slf4jVersion = '1.7.25'
3837
fastJsonVersion = '1.2.40'
39-
dubboVersion = '2.8.4-skyeye-trace-1.2.1'
38+
dubboVersion = '2.5.8'
39+
dubboxVersion = '2.8.4-skyeye-trace-1.3.0'
4040
springBootVersion = '1.5.6.RELEASE'
4141
springVersion = '4.3.10.RELEASE'
4242
hbaseVersion = '1.0.0-cdh5.4.4'
@@ -49,7 +49,7 @@ subprojects {
4949
springBootVersion = '1.5.6.RELEASE'
5050
gradlePluginVersion = '1.0.3.RELEASE'
5151
esVersion = '2.3.3'
52-
hadoopVersion = '2.6.0-cdh5.4.0'
52+
hadoopVersion = '2.6.0-cdh5.4.4'
5353
}
5454

5555
dependencies {

build.sh

+46
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
#!/bin/bash
2+
3+
version=$1
4+
branch=$2
5+
6+
pwd=`pwd`
7+
8+
echo "start build skyeye-agent"
9+
cd $pwd/skyeye-agent/image
10+
sudo bash build.sh $version
11+
echo "finished build skyeye-agent"
12+
13+
echo "start build skyeye-alarm"
14+
cd $pwd/skyeye-alarm/image
15+
sudo bash build.sh $version $branch
16+
echo "finished build skyeye-alarm"
17+
18+
echo "start build skyeye-monitor"
19+
cd $pwd/skyeye-monitor/image
20+
sudo bash build.sh $version $branch
21+
echo "finished build skyeye-monitor"
22+
23+
echo "start build skyeye-web"
24+
cd $pwd/skyeye-web/image
25+
sudo bash build.sh $version $branch
26+
echo "finished build skyeye-web"
27+
28+
echo "start build skyeye-collector-backup"
29+
cd $pwd/skyeye-collector/skyeye-collector-backup/image
30+
sudo bash build.sh $version $branch
31+
echo "finished build skyeye-collector-backup"
32+
33+
echo "start build skyeye-collector-indexer"
34+
cd $pwd/skyeye-collector/skyeye-collector-indexer/image
35+
sudo bash build.sh $version $branch
36+
echo "finished build skyeye-collector-indexer"
37+
38+
echo "start build skyeye-collector-metrics"
39+
cd $pwd/skyeye-collector/skyeye-collector-metrics/image
40+
sudo bash build.sh $version $branch
41+
echo "finished build skyeye-collector-metrics"
42+
43+
echo "start build skyeye-collector-trace"
44+
cd $pwd/skyeye-collector/skyeye-collector-trace/image
45+
sudo bash build.sh $version $branch
46+
echo "finished build skyeye-collector-trace"

docker-compose.yml

+58
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
version: '2'
2+
services:
3+
skyeye-alarm:
4+
image: 192.168.88.73:8888/skyeye/skyeye-alarm:1.3.0
5+
container_name: skyeye-alarm
6+
restart: always
7+
mem_limit: 1g
8+
volumes:
9+
- /home/upsmart/deploy/skyeye/logs/alarm:/home/deploy/logs
10+
skyeye-monitor:
11+
image: 192.168.88.73:8888/skyeye/skyeye-monitor:1.3.0
12+
container_name: skyeye-monitor
13+
restart: always
14+
mem_limit: 1g
15+
volumes:
16+
- /home/upsmart/deploy/skyeye/logs/monitor:/home/deploy/logs
17+
skyeye-collector-backup:
18+
image: 192.168.88.73:8888/skyeye/skyeye-collector-backup:1.3.0
19+
container_name: skyeye-collector-backup
20+
scale: 3
21+
restart: always
22+
mem_limit: 2g
23+
volumes:
24+
- /home/upsmart/deploy/skyeye/logs/collector/backup:/home/deploy/logs
25+
- /tmp/monitor-center:/tmp/monitor-center
26+
skyeye-collector-indexer:
27+
image: 192.168.88.73:8888/skyeye/skyeye-collector-indexer:1.3.0
28+
container_name: skyeye-collector-indexer
29+
scale: 3
30+
restart: always
31+
mem_limit: 4g
32+
volumes:
33+
- /home/upsmart/deploy/skyeye/logs/collector/indexer:/home/deploy/logs
34+
skyeye-collector-metrics:
35+
image: 192.168.88.73:8888/skyeye/skyeye-collector-metrics:1.3.0
36+
container_name: skyeye-collector-metrics
37+
scale: 3
38+
restart: always
39+
mem_limit: 2g
40+
volumes:
41+
- /home/upsmart/deploy/skyeye/logs/collector/metrics:/home/deploy/logs
42+
skyeye-collector-trace:
43+
image: 192.168.88.73:8888/skyeye/skyeye-collector-trace:1.3.0
44+
container_name: skyeye-collector-trace
45+
scale: 3
46+
restart: always
47+
mem_limit: 3g
48+
volumes:
49+
- /home/upsmart/deploy/skyeye/logs/collector/trace:/home/deploy/logs
50+
skyeye-web:
51+
image: 192.168.88.73:8888/skyeye/skyeye-web:1.3.0
52+
container_name: skyeye-web
53+
restart: always
54+
mem_limit: 4g
55+
volumes:
56+
- /home/upsmart/deploy/skyeye/logs/web:/home/deploy/logs
57+
ports:
58+
- "18090:8090"

settings.gradle

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
1+
include 'skyeye-agent'
12
include 'skyeye-base'
23
include 'skyeye-client:skyeye-client-core', 'skyeye-client:skyeye-client-log4j', 'skyeye-client:skyeye-client-logback', 'skyeye-client:skyeye-client-log4j2'
34
include 'skyeye-trace:skyeye-trace-core', 'skyeye-trace:skyeye-trace-sc'
4-
include 'skyeye-data:skyeye-data-dubbox', 'skyeye-data:skyeye-data-hbase', 'skyeye-data:skyeye-data-http', 'skyeye-data:skyeye-data-jpa', 'skyeye-data:skyeye-data-rabbitmq'
5+
include 'skyeye-data:skyeye-data-dubbo', 'skyeye-data:skyeye-data-dubbox', 'skyeye-data:skyeye-data-hbase', 'skyeye-data:skyeye-data-http', 'skyeye-data:skyeye-data-jpa', 'skyeye-data:skyeye-data-rabbitmq'
56
include 'skyeye-collector:skyeye-collector-core', 'skyeye-collector:skyeye-collector-backup', 'skyeye-collector:skyeye-collector-indexer', 'skyeye-collector:skyeye-collector-metrics', 'skyeye-collector:skyeye-collector-trace'
67
include 'skyeye-alarm'
78
include 'skyeye-web'

skyeye-agent/.gitignore

+23
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
bin/
2+
target/
3+
file/
4+
logs/
5+
gen-java/
6+
.externalToolBuilders/
7+
.settings/
8+
.gradle/
9+
.classpath
10+
.gradletasknamecache
11+
.buildpath
12+
.project
13+
.springBeans
14+
dependency-reduced-pom.xml
15+
*.iml
16+
nohup.out
17+
/tmp
18+
/.apt_generated/
19+
.idea/
20+
disconf/
21+
/target/
22+
/build/
23+
/out/

skyeye-agent/README.md

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
# 项目介绍
2+
rancher容器部署的agent,提供宿主机的host给对接app的容器使用,改项目只需在每个机器上启动下然后停止(网络模式需要是host)

skyeye-agent/build.gradle

+32
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
apply plugin: 'application'
2+
3+
dependencies {
4+
compile project(':skyeye-base')
5+
}
6+
7+
configurations {
8+
compile.exclude group: "log4j", module: "log4j"
9+
compile.exclude group: "org.slf4j", module: "slf4j-log4j12"
10+
compile.exclude group: "org.springframework", module: "spring-web"
11+
}
12+
13+
mainClassName = 'com.jthink.skyeye.agent.launcher.Launcher'
14+
15+
buildscript {
16+
17+
repositories {
18+
mavenLocal()
19+
maven { url mavenPublicUrl }
20+
mavenCentral()
21+
}
22+
23+
dependencies {
24+
classpath("io.spring.gradle:dependency-management-plugin:$gradlePluginVersion")
25+
}
26+
}
27+
28+
startScripts {
29+
doLast {
30+
unixScript.text = unixScript.text.replaceAll("lib/(.*)\n", "lib/\\*")
31+
}
32+
}

skyeye-agent/image/Dockerfile

+25
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
# build the base image: jdk
2+
# this is the docker file, use the jdk 8u144-ubuntu16.04
3+
# VERSION 1
4+
# Author: leviqian
5+
6+
# the basic image
7+
FROM 192.168.88.73:8888/common/jdk:8u144-ubuntu16.04
8+
9+
# maintainer
10+
MAINTAINER leviqian [email protected]
11+
12+
# get the args
13+
ARG version
14+
15+
# set env
16+
ENV VERSION $version
17+
18+
# copy the file
19+
RUN mkdir -p /home/deploy
20+
ADD skyeye-agent-$version.tar /home/deploy
21+
COPY run.sh /run.sh
22+
RUN chmod +x /run.sh
23+
24+
# CMD to start
25+
CMD ["/run.sh"]

skyeye-agent/image/build.sh

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
#!/bin/bash
2+
3+
version=$1
4+
cp ../target/distributions/*.tar .
5+
6+
sudo docker build --build-arg version=$version -t 192.168.88.73:8888/skyeye/skyeye-agent:$version .
7+
sudo docker push 192.168.88.73:8888/skyeye/skyeye-agent:$version

skyeye-agent/image/run.sh

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
#!/bin/bash
2+
3+
source /etc/profile.d/java.sh
4+
5+
cd /home/deploy/skyeye-agent-$VERSION
6+
nohup bin/skyeye-agent &
7+
tail -f /opt/jthink/jthink-config/README.md

skyeye-agent/settings.gradle

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
rootProject.name = 'skyeye-agent'

0 commit comments

Comments
 (0)