Skip to content

Commit

Permalink
fixed
Browse files Browse the repository at this point in the history
  • Loading branch information
guoyuanlu committed Sep 27, 2023
1 parent 5a6e4a4 commit 26f9cbd
Show file tree
Hide file tree
Showing 19 changed files with 464 additions and 883 deletions.
8 changes: 5 additions & 3 deletions .github/workflows/maven-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -48,9 +48,11 @@ jobs:
- name: Publish to Docker Hub
run: |
docker login -u $DOCKER_USERNAME -p $DOCKER_PASSWORD
docker build -f docker/Dockerfile -t $DOCKER_IMAGE .
docker push $DOCKER_IMAGE
docker build -f docker/Dockerfile -t $DOCKER_IMAGE:$DOCKER_VERSION -t $DOCKER_IMAGE:latest .
docker push $DOCKER_IMAGE:$DOCKER_VERSION
docker push $DOCKER_IMAGE:latest
env:
DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }}
DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}
DOCKER_IMAGE: shiyindaxiaojie/cat-home:3.3.1
DOCKER_IMAGE: shiyindaxiaojie/cat-home
DOCKER_VERSION: v3.3.1
24 changes: 19 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,13 @@ CAT 是美团点评开源的实时应用监控平台,提供了 `Tracsaction`

![](https://cdn.jsdelivr.net/gh/shiyindaxiaojie/images/cat/dashboard.png)

![](https://cdn.jsdelivr.net/gh/shiyindaxiaojie/images/cat/dashboard-app.png)
![](https://cdn.jsdelivr.net/gh/shiyindaxiaojie/images/cat/app-dashboard.png)

![](https://cdn.jsdelivr.net/gh/shiyindaxiaojie/images/cat/database-dashboard.png)

![](https://cdn.jsdelivr.net/gh/shiyindaxiaojie/images/cat/cache-dashboard.png)

![](https://cdn.jsdelivr.net/gh/shiyindaxiaojie/images/cat/rpc-dashboard.png)

#### Tracing

Expand Down Expand Up @@ -74,18 +80,24 @@ public Response listAsset(Cust cust) {

可以搜索某个 RPC 接口被调用的情况

![](https://cdn.jsdelivr.net/gh/shiyindaxiaojie/images/cat/cross.png)
![](https://cdn.jsdelivr.net/gh/shiyindaxiaojie/images/cat/rpc.png)

#### Heart Beat

![](https://cdn.jsdelivr.net/gh/shiyindaxiaojie/images/cat/heartbeat.png)

#### Dependency

相对 Zipkin 较为简陋,后续有空可以优化下

![](https://cdn.jsdelivr.net/gh/shiyindaxiaojie/images/cat/dependency.png)

#### Browser

![](https://cdn.jsdelivr.net/gh/shiyindaxiaojie/images/cat/browser.png)

#### Mobile

![](https://cdn.jsdelivr.net/gh/shiyindaxiaojie/images/cat/mobile.png)

#### State

查看当前 CAT 和应用节点的状态
Expand Down Expand Up @@ -116,11 +128,13 @@ public Response listAsset(Cust cust) {
本项目已发布到 [Docker Hub](https://hub.docker.com/repository/docker/shiyindaxiaojie/cat-home),请参考以下命令运行。

```bash
docker run -e JAVA_OPTS="-Xmx2g -Xms2g -Xmn1g" -e MYSQL_URL="127.0.0.1" -e MYSQL_PORT="3306" -e MYSQL_SCHEMA="cat" -e MYSQL_USERNAME="" -e MYSQL_PASSWD="" -e SERVER_URL="127.0.0.1" -p 8090:8090 --name=cat-home -d shiyindaxiaojie/cat-home
docker run -e MYSQL_URL="127.0.0.1" -e MYSQL_PORT="3306" -e MYSQL_SCHEMA="cat" -e MYSQL_USERNAME="" -e MYSQL_PASSWD="" -p 8080:8080 --name=cat-home -d shiyindaxiaojie/cat-home
```

## 如何部署

> 注意:除了 Helm 部署,在停止 CAT 进程之前最好调用 `curl http://localhost:8080/cat/r/home?op=checkpoint` ,将内存数据持久化磁盘,避免重启后丢失。

### Tomcat 部署

拷贝本项目的 `docs/config` 到用户目录 `~/.cat/appdatas/cat` 中,按需调整数据库配置。执行 `mvn clean package` 打包成cat-home.war,部署在目标 Tomcat 的 `webapps` 目录下,启动 Tomcat 即可。
Expand Down
19 changes: 14 additions & 5 deletions docker/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,13 +1,20 @@
FROM tomcat:8.5.78-jdk8

MAINTAINER gyl "[email protected]"
LABEL maintainer="梦想歌 <[email protected]>"
LABEL version="3.3.1"

ENV TZ="Asia/Shanghai" \
JAVA_OPTS='-Xmx1024m -Xms1024m -Xmn512m' \
WORKDIR='/usr/local/tomcat/bin' \
JVM_DEBUG='n' \
JVM_XMS='1g' \
JVM_XMX='1g' \
JVM_XMN='512m' \
JVM_MS='128m' \
JVM_MMS='320m' \
MYSQL_URL='' \
MYSQL_PORT='3306' \
MYSQL_USERNAME='' \
MYSQL_PASSWD='' \
MYSQL_PASSWORD='' \
MYSQL_SCHEMA='cat' \
SERVER_URL='127.0.0.1'

Expand All @@ -17,8 +24,10 @@ COPY docker/datasources.xml /data/appdatas/cat/datasources.xml
COPY docker/datasources.sh datasources.sh
COPY docker/client.xml /data/appdatas/cat/client.xml
COPY docker/client.sh client.sh
COPY docker/env.sh env.sh

RUN chmod +x datasources.sh \
&& chmod +x client.sh
&& chmod +x client.sh \
&& chmod +x env.sh

CMD ["/bin/sh", "-c", "./datasources.sh && ./client.sh && catalina.sh run"]
CMD ["/bin/sh", "-c", "./env.sh && ./datasources.sh && ./client.sh && catalina.sh run"]
2 changes: 1 addition & 1 deletion docker/datasources.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,5 @@ echo "initialize datasources.xml"
sed -i "s/MYSQL_URL/${MYSQL_URL}/g" /data/appdatas/cat/datasources.xml;
sed -i "s/MYSQL_PORT/${MYSQL_PORT}/g" /data/appdatas/cat/datasources.xml;
sed -i "s/MYSQL_USERNAME/${MYSQL_USERNAME}/g" /data/appdatas/cat/datasources.xml;
sed -i "s/MYSQL_PASSWD/${MYSQL_PASSWD}/g" /data/appdatas/cat/datasources.xml;
sed -i "s/MYSQL_PASSWORD/${MYSQL_PASSWORD}/g" /data/appdatas/cat/datasources.xml;
sed -i "s/MYSQL_SCHEMA/${MYSQL_SCHEMA}/g" /data/appdatas/cat/datasources.xml;
12 changes: 6 additions & 6 deletions docker/datasources.xml
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@
<driver>com.mysql.jdbc.Driver</driver>
<url><![CDATA[jdbc:mysql://MYSQL_URL:MYSQL_PORT/MYSQL_SCHEMA]]></url>
<user>MYSQL_USERNAME</user>
<password>MYSQL_PASSWD</password>
<connectionProperties><![CDATA[useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&socketTimeout=120000]]></connectionProperties>
<password>MYSQL_PASSWORD</password>
<connectionProperties><![CDATA[useUnicode=true&autoReconnect=true&socketTimeout=120000]]></connectionProperties>
</properties>
</data-source>
<data-source id="app">
Expand All @@ -23,8 +23,8 @@
<driver>com.mysql.jdbc.Driver</driver>
<url><![CDATA[jdbc:mysql://MYSQL_URL:MYSQL_PORT/MYSQL_SCHEMA]]></url>
<user>MYSQL_USERNAME</user>
<password>MYSQL_PASSWD</password>
<connectionProperties><![CDATA[useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&socketTimeout=120000]]></connectionProperties>
<password>MYSQL_PASSWORD</password>
<connectionProperties><![CDATA[useUnicode=true&autoReconnect=true&socketTimeout=120000]]></connectionProperties>
</properties>
</data-source>
<data-source id="web">
Expand All @@ -36,8 +36,8 @@
<driver>com.mysql.jdbc.Driver</driver>
<url><![CDATA[jdbc:mysql://MYSQL_URL:MYSQL_PORT/MYSQL_SCHEMA]]></url>
<user>MYSQL_USERNAME</user>
<password>MYSQL_PASSWD</password>
<connectionProperties><![CDATA[useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&socketTimeout=120000]]></connectionProperties>
<password>MYSQL_PASSWORD</password>
<connectionProperties><![CDATA[useUnicode=true&autoReconnect=true&socketTimeout=120000]]></connectionProperties>
</properties>
</data-source>
</data-sources>
9 changes: 9 additions & 0 deletions docker/env.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
#!/bin/bash

JAVA_OPTS="${JAVA_OPTS} -XX:+UseG1GC"
JAVA_OPTS="${JAVA_OPTS} -server -Xms${JVM_XMS} -Xmx${JVM_XMX} -Xmn${JVM_XMN} -XX:MetaspaceSize=${JVM_MS} -XX:MaxMetaspaceSize=${JVM_MMS}"
JAVA_OPTS="${JAVA_OPTS} -XX:-OmitStackTraceInFastThrow -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=${WORKDIR}/logs/java_heapdump.hprof"
JAVA_OPTS="${JAVA_OPTS} -XX:-UseLargePages"
if [[ "${JVM_DEBUG}" == "y" ]]; then
JAVA_OPTS="${JAVA_OPTS} -Xdebug -Xrunjdwp:transport=dt_socket,address=5005,server=y,suspend=n"
fi
Loading

0 comments on commit 26f9cbd

Please sign in to comment.