如何启动 ShardingSphere-Agent 附加到 ShardingSphere-JDBC 应用并启用 Prometheus 指标插件

发布时间:2026/9/13 15:09:09
如何启动 ShardingSphere-Agent 附加到 ShardingSphere-JDBC 应用并启用 Prometheus 指标插件 如何启动 ShardingSphere-Agent 附加到 ShardingSphere-JDBC 应用并启用 Prometheus 指标插件【免费下载链接】shardingsphereEmpowering Data Intelligence with Distributed SQL for Sharding, Scalability, and Security Across All Databases.项目地址: https://gitcode.com/GitHub_Trending/sh/shardingsphere如果你的应用已经集成了 ShardingSphere-JDBC希望在不改业务代码的前提下获得 SQL 解析、路由、语句执行等可观测性指标可以用 ShardingSphere-Agent 以-javaagent方式附加到应用进程并启用内置的 Prometheus 指标插件把指标通过 HTTP 服务暴露给 Prometheus 抓取。官方文档对该场景的说明见 ShardingSphere-Agent 用户手册、使用方式 与 配置说明。适用前提目标应用是一个已集成 ShardingSphere-JDBC 的 SpringBoot 项目且能打包成可直接运行的可执行 jar文档示例使用test-project.jar。准备 Agent 制品文档给出的获取方式是源码编译。以下命令需要访问 GitHub 克隆源码Maven 还会下载依赖整个项目编译耗时较长属于一次性操作git clone --depth 1 https://github.com/apache/shardingsphere.git cd shardingsphere mvn clean install -DskipITs -DskipTests -P-dev,release,all编译完成后Agent 二进制包位于distribution/agent/target/apache-shardingsphere-${latest.release.version}-shardingsphere-agent-bin.tar.gz这里的${latest.release.version}是文档中的版本号占位符实际文件名以你编译所用的 ShardingSphere 版本为准。将二进制包解压到 agent 目录mkdir agent tar -zxvf apache-shardingsphere-${latest.release.version}-shardingsphere-agent-bin.tar.gz -C agent cd agent解压后确认目录中包含以下关键文件文档中的目录说明├── conf │ └── agent.yaml ├── plugins │ ├── lib │ ├── logging │ ├── metrics │ │ └── shardingsphere-agent-metrics-prometheus-${latest.release.version}.jar │ └── tracing └── shardingsphere-agent-${latest.release.version}.jar其中shardingsphere-agent-${latest.release.version}.jar是启动 Agent 用的 jarplugins/metrics下的 Prometheus jar 是指标插件conf/agent.yaml是插件配置文件。在 agent.yaml 中启用 Prometheus 插件conf/agent.yaml用于管理 Agent 插件配置内置插件包括 File、Prometheus、OpenTelemetry。文档中该配置默认全部处于注释状态启用 Prometheus 时把metrics段取消注释plugins: metrics: Prometheus: host: localhost port: 9090 props: jvm-information-collector-enabled: true文档示例中使用host: localhost、port: 9090。端口启动前会经过校验必须为正数否则日志会输出Port端口of Prometheus must be a positive number.并导致插件启动失败校验逻辑见 PluginConfigurationValidator。props中的jvm-information-collector-enabled置为true时Agent 会额外注册 JVM 信息指标基于 Prometheus 客户端的 JVM 指标导出。附加 Agent 并启动应用按文档的 JDBC 场景使用方式在启动命令中加入-javaagent参数指向 Agent 的启动 jarjava -javaagent:/agent/shardingsphere-agent-${latest.release.version}.jar -jar test-project.jar其中/agent/...是文档示例中的绝对路径替换为第 1 步实际解压目录中shardingsphere-agent-${latest.release.version}.jar的真实路径test-project.jar替换为你自己的应用可执行 jar。注意-javaagent指向的必须与agent.yaml及plugins目录位于同一个 Agent 根目录下否则插件配置无法被加载。验证插件是否生效文档给出的验证顺序是启动项目后访问启动的服务再查看对应的插件是否生效。具体可以按下面两步检查检查 Agent 启动日志。Prometheus 插件启动成功时日志输出Prometheus metrics HTTP server localhost:9090 start success.启动失败时输出Prometheus metrics HTTP server start fail.并附带异常信息此时优先检查 9090 端口是否被占用、agent.yaml中端口是否为正数。日志格式与异常分支见 PrometheusPluginLifecycleService。访问你的业务服务产生一些 SQL 流量然后访问指标端点。Agent 在配置的host:port上启动了一个 HTTP 服务基于 Prometheus 官方 Java 客户端的HTTPServer其默认暴露路径为/metrics可用下面命令查看原始指标curl http://localhost:9090/metrics文档中列出的 JDBC 场景指标名称如下来源Metrics 指标说明指标名称指标类型指标描述build_infoGAUGE构建信息parsed_sql_totalCOUNTER按类型INSERT、UPDATE、DELETE、SELECT、DDL、DCL、DAL、TCL、RQL、RDL、RAL、RUL分类的解析总数routed_sql_totalCOUNTER按数据库和 SQL 类型INSERT、UPDATE、DELETE、SELECT分类的路由总数routed_storage_unit_totalCOUNTER数据库中存储单元路由结果总数routed_table_totalCOUNTER数据库中表路由结果总数jdbc_stateGAUGEShardingSphere-JDBC 状态信息。0 表示正常状态1 表示熔断状态2 锁定状态jdbc_meta_data_infoGAUGEShardingSphere-JDBC 元数据信息jdbc_statement_execute_totalCOUNTER语句执行总数jdbc_statement_execute_errors_totalCOUNTER语句执行错误总数jdbc_statement_execute_latency_millisHISTOGRAM语句执行耗时jdbc_transactions_totalCOUNTER事务总数按 commitrollback 分类在/metrics输出中能看到上述指标名且执行过 SQL 后对应计数类指标有变化即可确认 Prometheus 插件已生效。之后让 Prometheus 服务端对该地址配置抓取任务就可以基于这些指标做监控了。限制说明该使用方式面向 ShardingSphere-JDBC 场景若应用是 ShardingSphere-Proxy附加方式不同Proxy 通过start.sh -g启动 Agent见 agent/README.md。Agent 内置指标插件只有文档列出的 File日志、Prometheus、OpenTelemetry链路追踪三类指标名称以文档表格为准文档未列出的指标不应假定存在。文档未提供端口冲突或启动失败之外的故障排查内容遇到start fail日志以外的异常时建议先确认解压目录完整、-javaagent路径与agent.yaml配置无误。【免费下载链接】shardingsphereEmpowering Data Intelligence with Distributed SQL for Sharding, Scalability, and Security Across All Databases.项目地址: https://gitcode.com/GitHub_Trending/sh/shardingsphere创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考