使用 influxdb 以编程方式配置 spring 启动千分尺

programmatically configuration for spring boot micrometer with influxdb

我在为我的应用程序配置 Spring Boot Micrometer 时遇到了一些挑战。 Micrometer 文档说我们可以通过 application.yml 文件配置 influxdb uri, userName, password, db 等,这对我的演示应用程序来说工作正常,但对于生产就绪的应用程序,我们使用 docker-compose 并且我们通过 docker-compose。现在我面临着 -

这样的挑战
  1. 如何强制千分尺使用 docker-compose 环境变量 influxdb uri
  2. 对于 influxdb 密码,我们的应用程序将密码存储在 AWS secret Manager 中,micrometer 如何从秘密管理器访问密码?
  3. 我能否以编程方式配置所有这些千分尺属性(Spring Bean)?怎么样?

我不确定如何利用 AWS Secret Manager,但对于第 1 点和第 3 点我可以提供一些建议。

我对 Influx 不是特别熟悉,但是基于 javadoc 它使用 management.metrics.export.influx.username 来设置密码。

1- 要通过环境变量设置应用程序 属性,请使用典型的 'SCREAMING_SNAKE_CASE' 格式设置等效项:

MANAGEMENT_METRICS_EXPORT_INFLUX_USERNAME=myInfluxUser

或者,如果您已经有一个要在 application.yml 文件中引用的环境变量,您可以将其作为 属性:

引用
management.metrics.export.influx.username: ${INFLUX_USER}

3- 要以编程方式配置 Micromerter/influx,请在类型 InfluxProperties:

上创建一个 bean
@Bean
public InfluxProperties influxProperties() {
  return new InfluxProperties(); // Programatically set any properties here.
}