我正在第一次尝试 Influxdb,我想用它来保存和获取我的应用程序的指标。我安装了 v2.7.5 版本,创建了一个组织、存储桶并生成了一个具有 Influx UI 上所有访问权限的 API 令牌。在我的应用程序中,我设置了 MicrometerMetricsOptions、InfluxMeterRegistry 和 Metrics 控制器,但是当我调用端点时,我收到一条错误消息 i.micrometer.influx.InfluxMeterRegistry : 无法创建数据库 'mydb': {"code":"未经授权的","消息":"未经授权的访问"}。在用户界面上没有地方可以创建数据库,即使我在配置上使用 setDb 方法,它仍然是同样的问题。以下是我的配置
@Configuration
public class VertxConfig {
@Value("${influxdb.api.token}")
public String authToken;
@Bean
@Autowired
public Vertx vertx(VerticleFactory verticleFactory) {
MicrometerMetricsOptions metricsOptions = new MicrometerMetricsOptions()
.setInfluxDbOptions(new VertxInfluxDbOptions()
.setUri("http://localhost:8086")
.setOrg("Technologies")
.setDb("life")
.setUserName("life")
.setPassword("1234")
.setBucket("life")
.setToken(authToken)
.setEnabled(true))
.setEnabled(true);
VertxOptions vertxOptions = new VertxOptions()
.setMetricsOptions(metricsOptions)
.setWorkerPoolSize(35);
Vertx vertx = Vertx.vertx(vertxOptions);
vertx.registerVerticleFactory(verticleFactory);
return vertx;
}
}
@SpringBootApplication
public class MetricsApplication {
public static void main(String[] args) {
SpringApplication springApplication = new SpringApplication(MetricsApplication.class);
springApplication.setWebApplicationType(WebApplicationType.NONE);
springApplication.setAdditionalProfiles("prod");
springApplication.run(args);
InfluxConfig config = new InfluxConfig() {
@Override
public String get(String key) {
return switch (key) {
case "influxdb.uri" -> "http://localhost:8086";
// case "influxdb.db" -> "life";
case "influxdb.userName" -> "life";
case "influxdb.password" -> "1234";
default -> null;
};
}
};
InfluxMeterRegistry registry = InfluxMeterRegistry.builder(config)
.clock(Clock.SYSTEM)
.build();
registry.config().meterFilter(new MeterFilter() {
@Override
public DistributionStatisticConfig configure(Meter.Id id, DistributionStatisticConfig config) {
return DistributionStatisticConfig.builder()
.percentilesHistogram(true)
.build()
.merge(config);
}
});
}
}
我认为问题出在我在 main 方法中实现的 InfluxMeterRegistry 。那是 Influxdb v1,一旦我删除它,错误就消失了。 InfluxMeterRegistry 在 v2 中配置。 Influxdb V2 配置需要的是 Uri、organization 或organizationId、bucket 和 token。然后,您可以使用 Grafana 等工具可视化存储在 Influxdb 中的指标