如何在eureka发现环境下正确设置spring boot admin客户端的management.context-path?

leo*_*leo 5 netflix-eureka spring-cloud-netflix spring-boot-admin

我正在使用spring cloud设置spring boot管理员.现在我已经建立了一个独立的eureka服务器和一个spring boot管理员和一些spring boot应用程序作为管理员客户端.如果我没有为所有客户端设置management.context-path,一切正常.但是现在我需要监控所有客户端(一些客户端没有management.context-path,一些客户端不同management.context-path).我知道我应该使用元数据来实现这一点,但在阅读相关文档后,我仍然可以完成这项工作.以下是我在客户端和管理员端的配置.

客户端:

spring:
  application:
    instance_id: user
    name: microservice-provider-user
management:
  context-path: '/mgmt'
eureka:
  client:
    serviceUrl:
      defaultZone: http://localhost:8761/eureka/
  instance:
    preferIpAddress: false
    statusPageUrlPath: ${management.context-path}${endpoints.info.path:/info}
    healthCheckUrlPath: ${management.context-path}${endpoints.health.path:/health}
    metadata-map:
      instanceId:
${spring.application.name}:${spring.application.instance_id:${random.value}}
Run Code Online (Sandbox Code Playgroud)

管理员方面:

spring:
  application:
    name: wahaha-admin
  boot:
    admin:
      routes:
        endpoints: env,metrics,trace,dump,jolokia,info,configprops,trace,logfile,refresh,flyway,liquibase,heapdump,hystrix.stream,turbine.stream

      url: http://${HOST_NAME:localhost}:${server.port}
      discovery:
        converter.management-context-path: '/mgmt'
Run Code Online (Sandbox Code Playgroud)

问题:

  1. 我设置spring.boot.admin.discovery.converter.management-context-path/mgmt,该值与客户端相同,这只有在我将所有客户端应用程序设置为相同值时才能正常工作,这是不可能的.我该怎么做才能支持不同的management.context-path

PS:我在本地桌面上没有在任何公共云上完成所有这些操作,并且稍后将转移到产品环境(仍然不使用公共云).

jos*_*ste 12

在客户端:

eureka:
  instance:
    metadata-map:
      management.context-path: ${management.context-path}
Run Code Online (Sandbox Code Playgroud)

文档中所述:

如果要自定义服务的默认转换,可以将health.path,management.port和/或mangament.context-path条目添加到服务元数据中.