当前位置: 首页 > 知识库问答 >
问题:

Spring Boot-执行器度量endpoint在docker映像中不工作

施旭东
2023-03-14

在我的Spring启动应用程序Yaml中,我有:

 management:
  metrics:
    export:
      simple:
        enabled: true
  endpoints:
    web:
      exposure:
        include: "*"

然而,当我击中

localhost:8080/actuator/metrics 
  FROM openjdk:11-jre-buster

RUN apt update && apt install curl -y \
        && rm -rf /var/lib/apt/lists/*


MAINTAINER  xxxxx
ARG VERSION

ENV SERVER_PORT 80
ENV JAVA_OPTS -Xmx1g

# add this to solve buster sso issue
ENV OPENSSL_CONF=/etc/ssl

ENV SPRINGPROFILES=actuator

WORKDIR /app
COPY maven/docker-package/ /app

# Tesseract installation
RUN apt-get install apt-transport-https && \
    echo "deb [trusted=yes] https://notesalexp.org/tesseract-ocr/buster/ buster main" >> /etc/apt/sources.list && \
    apt-get update -oAcquire::AllowInsecureRepositories=true && \
    apt-get install notesalexp-keyring -oAcquire::AllowInsecureRepositories=true && \
    apt-get update && \
    apt-get -y install tesseract-ocr 

EXPOSE ${SERVER_PORT}

HEALTHCHECK --interval=5s --timeout=5s --retries=3 \
      CMD curl -f http://localhost:80/actuator/health || exit 1

ENTRYPOINT ["sh", "/app/docker-entrypoint.sh"]

docker-entrypoint.sh:

java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -Dlicense.path=/app/licenses/ "-Dspring.profiles.active=${SPRINGPROFILES}" -Dlogging.config=/app/config/log4j2.xml -Dserver.port=80 -jar /app/app-executable.jar

我错过了什么?在docker中是否需要进行任何配置来公开度量?谢谢你的回复。

共有1个答案

康言
2023-03-14

您应该在运行docker时打开端口:

sudo docker run **** 8080/8080 *****
 类似资料:
  • 可以用与Spring-Boot1.5类似的方式获取hystrix度量信息? 在1.5度量endpoint中,我有如下内容: 但现在有了使用千分尺的执行器/度量endpoint,我找不到任何对术语“Hystrix”、“Netflix”等的引用。 有什么方法可以不像我以前那样使用hystrix.streamendpoint来获取这些信息?或者这应该是有效的,我做错了什么吗?

  • 我正在使用spring Boot2.0.4,并希望公开我的执行器endpoint。当向application.yml仅添加以下信息时,健康状况将被公开。 当我运行http://localhost:8080/acturet时,我会得到

  • 我有一个带有执行器和Hystrix的spring-boot-app。 Spring-boot-version:1.3.1.发行版 当我将添加到某些方法时,endpoint将显示来自Hystrix的所有度量: 问题: 如何从endpoint中完全排除hystrix-metrics? 更新1 我试图通过以下方法排除伺服测量和观众测量: 1) 但两者都没有达到预期的效果。

  • 我正在将一个旧的java Spring项目重构为springboot,并以传统的war风格部署它。出于某种原因,我必须坚持传统的web.xml来启动应用程序。多亏了Springboot遗产,我可以通过web.xml实现这一点: 此外,我添加了springboot执行器依赖项。应用程序。属性如下所示: 应用程序可以正常启动,但当我尝试从浏览器访问endpoint时,它只返回一个“401需要完全身份验

  • 我试图在与应用程序端口相同的端口上启用执行器endpoint(server.port=8080在application.properties文件中指定),但由于某种原因,它不起作用。当我运行应用程序时,我可以从应用程序返回响应,但不能从执行器endpoint返回响应。我可以看到日志中提到了暴露在基路径“/执行器”下面的endpoint,如下面的屏幕截图所示。但当我尝试点击执行器URL时,它给出了4

  • 我只能在带有docker预览版的macbook air m1中播放,并且我无法通过docker-compose文件运行8.0.22版的mysql映像。 docker-撰写集 我运行的命令是: 我怎样才能解决这个问题?