Micrometer StackdriverMeterRegistry 仅向 GCP Monitoring 发布自定义指标,而不是自动检测指标?
Micrometer StackdriverMeterRegistry only publishes custom metrics to GCP Monitoring, not automatic instrumentation metrics?
我有这个例子https://quarkus.io/guides/micrometer(micrometer quickstart 目录)运行,它同时使用了 Quarkus 和 Micrometer。该示例使用 Prometheus 作为 MeterRegistry,但我将其更改为使用 StackdriverMeterRegistry,希望 Prometheus 中显示的相同自动检测将显示在 Google 云监控中。
但是,我只看到我制作的自定义指标出现在 Google 云监控中,而不是 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 注册表。
我已经使用 Micrometer Quarkus 文档页面上的基本示例上传了一个结合使用 Quarkus StackDriver 和 Micrometer 的基本示例。
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 但还有其他方法可以做到这一点。
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
主要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;
我有这个例子https://quarkus.io/guides/micrometer(micrometer quickstart 目录)运行,它同时使用了 Quarkus 和 Micrometer。该示例使用 Prometheus 作为 MeterRegistry,但我将其更改为使用 StackdriverMeterRegistry,希望 Prometheus 中显示的相同自动检测将显示在 Google 云监控中。
但是,我只看到我制作的自定义指标出现在 Google 云监控中,而不是 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 注册表。
我已经使用 Micrometer Quarkus 文档页面上的基本示例上传了一个结合使用 Quarkus StackDriver 和 Micrometer 的基本示例。
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 但还有其他方法可以做到这一点。
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
主要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;