普罗米修斯执行器的自定义路径

custom path for prometheus actuator

我目前正在尝试将我们的 prometheus 库迁移到 spring boot 2.0.3.RELEASE。 我们为 prometheus 使用自定义路径,到目前为止,我们使用变通方法来确保这一点。由于信息端点和健康端点可以使用自定义路径,因此使用 management.endpoint.<health/info>.path。 我试图指定 management.endpoint.prometheus.path,但它仍然只能在 /actuator/prometheus.

下访问

如何使用自定义路径或 prometheus?

我们使用以下库启用 prometheus(build.gradle 的片段)

compile "org.springframework.boot:spring-boot-starter-actuator:2.0.3.RELEASE"
compile "io.micrometer:micrometer-core:2.0.5"
compile "io.micrometer:micrometer-registry-prometheus:2.0.5"

我们还使用了 class PrometheusMetricsExportAutoConfiguration

的导入

非常感谢您的帮助:)

来自reference documentation

By default, endpoints are exposed over HTTP under the /actuator path by using the ID of the endpoint. For example, the beans endpoint is exposed under /actuator/beans. If you want to map endpoints to a different path, you can use the management.endpoints.web.path-mapping property. Also, if you want change the base path, you can use management.endpoints.web.base-path.

The following example remaps /actuator/health to /healthcheck:

application.properties:

management.endpoints.web.base-path=/
management.endpoints.web.path-mapping.health=healthcheck

因此,要将 prometheus 端点重新映射到 /actuator 下的不同路径,您可以使用以下 属性:

management.endpoints.web.path-mapping.prometheus=whatever-you-want

以上内容将使 Prometheus 端点在 /actuator/whatever-you-want

可用

如果您希望 Prometheus 端点在根目录下可用,您必须将所有端点移到那里并重新映射它:

management.endpoints.web.base-path=/
management.endpoints.web.path-mapping.prometheus=whatever-you-want

以上内容将使 Prometheus 端点在 /whatever-you-want 可用,但副作用是将任何其他启用的端点也移动到 / 而不是低于 /actuator

我想补充一点,将 management.endpoints.web.base-path 更改为 root 会产生一个副作用——您将无法通过指向所有端点的链接查询执行器 'discovery page' /actuator

When the management context path is set to /, the discovery page is disabled to prevent the possibility of a clash with other mappings.

来自 reference documentation