可观测性

此篇文章是介绍 Apache ShenYu Agent 模块。

Java agent

Apache ShenYu 利用 java agent字节码增强 技术实现了无痕埋点,使得用户无需引入依赖即可接入第三方可观测性系统,获取 Traces、Metrics 和 Logging 。

Tracing

链路跟踪,通过探针收集调用链数据,第三方系统(Jaeger,Zipkin)来拉取数据后展示。

Metrics

系统统计指标,通过探针收集,写入prometheus等第三方时序数据库,然后展示。

Logging

将网关日志信息,写入elasticSearch(或者发送到消息中间件),然后展示。

下载并编译代码

  • 下载代码
  1. > git clone https://github.com/apache/incubator-shenyu.git
  • 使用Maven编译代码
  1. > cd incubator-shenyu
  2. > mvn clean install -Dmaven.javadoc.skip=true -B -Drat.skip=true -Djacoco.skip=true -DskipITs -DskipTests

编译成功后,在 ~/shenyu/shenyu-dist/shenyu-agent-dist/target/shenyu-agent 目录下,可以看见 shenyu-agent 模块编译后的jar包和相关配置文件。

  1. .
  2. ├── conf
  3. ├── logback.xml
  4. ├── shenyu-agent.yaml
  5. └── tracing-point.yaml
  6. ├── plugins
  7. ├── shenyu-agent-plugin-xxxxx.jar
  8. └── shenyu-agent.jar

shenyu-agent.yaml 数据结构

  1. appName: shenyu-agent
  2. supports:
  3. tracing:
  4. - pluginName
  5. metrics:
  6. - pluginName
  7. logging:
  8. - pluginName
  9. plugins:
  10. tracing:
  11. pluginName:
  12. host:
  13. port:
  14. props:
  15. metrics:
  16. pluginName:
  17. host:
  18. port:
  19. props:
  20. logging:
  21. pluginName:
  22. host:
  23. port:
  24. props:
  • 在 supports 中选择要使用的插件
  • 在 plugins 中配置插件的参数,其中各插件props参数的具体使用见下面几个表格:

使用

部署请参考 二进制包部署Docker部署

开发者可将-javaagent参数添加到IDE启动配置的JVM参数中,请参考 本地调试运行agent模块