You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Micrometer StackdriverMeterRegistry仅上报自定义指标不上报自动埋点指标

问题根因
  • 你手动初始化了独立的StackdriverMeterRegistry实例,Quarkus框架自动生成的JVM、HTTP、数据源等通用埋点指标,默认只会绑定到Quarkus生命周期托管的MeterRegistry实例上。你自行创建的实例没有接入Quarkus的MeterBinder自动绑定体系,因此只有你手动给该实例添加的自定义指标能成功上报。
  • 你直接引入了原生micrometer-registry-stackdriver依赖,缺少Quarkus针对该Registry的适配逻辑,也是自动埋点无法同步上报的原因之一。
修复步骤

1. 替换依赖

将pom.xml中手动添加的micrometer-registry-stackdriver依赖,替换为Quarkus官方适配的Stackdriver Registry扩展:

<dependency>
    <groupId>io.quarkus</groupId>
    <artifactId>quarkus-micrometer-registry-stackdriver</artifactId>
</dependency>

2. 删除手动实例化逻辑

移除你代码中自行创建StackdriverConfig、StackdriverMeterRegistry的相关代码,Quarkus会自动完成Registry的初始化、配置加载、生命周期管理,所有官方自动埋点会默认绑定到该托管实例上。

3. 新增配置项

在application.properties配置文件中添加Stackdriver上报相关配置:

# 替换为你的GCP项目ID
quarkus.micrometer.export.stackdriver.project-id=your_project_id
# 开启Stackdriver指标上报
quarkus.micrometer.export.stackdriver.enabled=true
# 配置全局通用标签
quarkus.micrometer.export.stackdriver.common-tags.application=your_application_name

注意:如果服务运行在GCP外部环境,需要额外配置GOOGLE_APPLICATION_CREDENTIALS环境变量指向服务账号密钥文件,确保服务账号拥有monitoring.metricDescriptors.create、monitoring.timeSeries.create权限。

4. 调整自定义指标逻辑

保留自定义指标的上报逻辑,直接注入Quarkus托管的MeterRegistry即可:

ExampleResource(MeterRegistry registry) {
    this.registry = registry;
    registry.gaugeCollectionSize("example.list.size", Tags.empty(), list);
}
验证方式

启动项目后触发几次HTTP请求、接口调用等操作,等待1~2分钟(Google Cloud Monitoring指标上报有延迟),即可在GCP控制台Monitoring模块的指标资源管理器中,搜索到custom.googleapis.com开头的自动埋点指标(HTTP请求耗时、JVM内存、GC次数等)和你的自定义指标。

内容的提问来源于stack exchange,提问作者Jayleen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 14:27:04