我有一个简单的spring引导应用程序,只有一个端点返回hello。pom.xml中的依赖关系如下所示
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-registry-prometheus</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>具有如下的应用程序属性
spring:
application:
name: app1
server:
port: 9091
management:
endpoints:
web:
base-path: /actuator
exposure:
include: health,prometheus,info,metrics
endpoint:
health:
show-details: always
metrics:
enabled: true
prometheus:
enabled: true
logging:
level:
org.springframework.web.filter.CommonsRequestLoggingFilter: DEBUG当在本地运行时,执行器端点正确地公开了prometheus度量标准。

但是,当我在docker容器中运行相同的应用程序时,prometheus指标不会公开。
以下是我的码头文件
FROM eclipse-temurin:17-jdk-jammy as builder
WORKDIR /opt/app
COPY .mvn/ .mvn
COPY mvnw pom.xml ./
RUN ./mvnw dependency:go-offline
COPY ./src ./src
RUN ./mvnw clean install
FROM eclipse-temurin:17-jre-jammy
WORKDIR /opt/app
EXPOSE 9091
COPY --from=builder /opt/app/target/*.jar /opt/app/*.jar
ENTRYPOINT ["java", "-jar", "/opt/app/*.jar" ]运行命令docker run -p 9091:9091 app1:latest生成

为什么在码头内运行时,prometheus子端点没有暴露在执行器端点上?有人能帮帮我吗?我错过了什么?
发布于 2022-11-21 11:28:03
结果表明,执行机构的配置文件需要在spring引导中显式地设置,以便dockr公开它们。
https://stackoverflow.com/questions/74517475
复制相似问题