Micrometer StackdriverMeterRegistry只向GCP Monitoring发布自定义指标,而



我有这个例子https://quarkus.io/guides/micrometer (micrometer快速启动目录)运行,它使用Quarkus和micrometer一起。本例使用Prometheus作为MeterRegistry,但我将其更改为使用StackdriverMeterRegistry,希望Prometheus中显示的自动检测工具也会显示在Google Cloud Monitoring中。

然而,我只看到我制作的自定义指标出现在Google Cloud Monitoring中,而不是micrometer提供的自动仪表。

我不确定我是否应该认为这只是Micrometer StackdriverMeterRegistry库本身的问题,或者如果我做错了什么。如有任何指导,不胜感激。

代码更改:

// Update the constructor to create the gauge
ExampleResource(MeterRegistry registry) {
/* Code for micrometer */
StackdriverConfig stackdriverConfig = new StackdriverConfig() {
@Override
public String projectId() {
return "projectId";
}
@Override
public String get(String key) {
return null;
}
};
this.registry = StackdriverMeterRegistry.builder(stackdriverConfig).build();
registry.config().commonTags("application", "projectId");
registry.gaugeCollectionSize("example.list.size", Tags.empty(), list);
}

添加到pom.xml

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

在修补和直接与Micrometer团队交谈后,我发现了这个问题。文档有点混乱,但是我导入了错误的StackDriver扩展,并且用于quarkus项目的默认注册表获得了所有的自动检测,而不是StackDriver。所以这个默认注册表需要更改为StackDriver。

我上传了一个使用Quarkus StackDriver和Micrometer的基本示例,使用Micrometer Quarkus文档页面上的基本示例。

https://github.com/jayleenli/quarkus-micrometer-stackdriver-quickstart

更改:

添加到pom.xml


<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-micrometer</artifactId>
</dependency>
<dependency>
<groupId>io.quarkiverse.micrometer.registry</groupId>
<artifactId>quarkus-micrometer-registry-stackdriver</artifactId>
<version>2.2.2</version>
</dependency>
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-core</artifactId>
<version>1.7.3</version>
</dependency>

然后添加一些Quarkus属性,我使用应用程序。属性,但是还有其他方法可以做到这一点。

application.properties

quarkus.micrometer.export.stackdriver.enabled=true
quarkus.micrometer.export.stackdriver.default-registry=true
quarkus.micrometer.export.stackdriver.project-id=fake-id
quarkus.micrometer.export.stackdriver.publish=true
quarkus.micrometer.export.stackdriver.resource-type=global
quarkus.micrometer.export.stackdriver.step=1m

In main class

@Path("/")
public class ExampleResource {
@ConfigProperty(name = "quarkus.micrometer.export.stackdriver.enabled")
boolean enabled;
@ConfigProperty(name = "quarkus.micrometer.export.stackdriver.default-registry")
boolean export;
@ConfigProperty(name="quarkus.micrometer.export.stackdriver.project-id")
String projectId;
@ConfigProperty(name="quarkus.micrometer.export.stackdriver.publish")
boolean publish;
@ConfigProperty(name="quarkus.micrometer.export.stackdriver.resource-type")
String resourceType;
@ConfigProperty(name="quarkus.micrometer.export.stackdriver.step")
String step;

最新更新