我以前介绍过关于使用jprofiler(商业软件的)调用分析jprofiler 是比较强大的一个工具,对于简单来说glowroot 也是可行的(opentelemetry 也是一个好选择),以下是关于dremio 集成glowroot的一个简单说明
环境准备
基于docker-compose 运行
直接复制依赖包以及admin.json 配置(监听端口的)
- Dockerfile
说明tmp logs data 目录创建比较重要
FROM dremio/dremio-oss:21.1
USER root
COPY dremio-env-profile2 /opt/dremio/conf/dremio-env
COPY glowroot.jar /opt/glowroot.jar
COPY lib/ /opt/dremio/jars/3rdparty/
RUN mkdir /opt/tmp /opt/logs /opt/data && chown -R dremio:dremio /opt/tmp && chown -R dremio:dremio /opt/logs && chown -R dremio:dremio /opt/data
COPY admin.json /opt/admin.json
COPY --from=hengyunabc/arthas:latest /opt/arthas /opt/arthas
COPY my-mysql-19.0.0-202110270341120595-3e3e05e7.jar /opt/dremio/jars/my-mysql-19.0.0-202110270341120595-3e3e05e7.jar
COPY mysql-connector-java-5.1.47.jar /opt/dremio/jars/3rdparty/mysql-connector-java-5.1.47.jar
COPY mysql-connector-java-8.0.20.jar /opt/dremio/jars/3rdparty/mysql-connector-java-8.0.20.jar
USER dremio
dremio-env 配置(主要是添加javaagent)
DREMIO_JAVA_SERVER_EXTRA_OPTS="-javaagent:/opt/glowroot.jar"
效果
web 访问
s3 访问
db 查询
火焰图
说明
集成上没法难度,主要是一个玩法,相比jprofiler来说,从调用分析上是有不少差异,但是从<wiz_tmp_highlight_tag class="cm-searching">apm来说glowroot 基本够用了,后边可以集成下opentelemetry 更加标准的工具,signoz 是一个可以快速拿来使用的一个工具