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

如何创建/自定义Spring启动执行器为我的Camunda应用程序公开应用程序健康检查和诊断?

罗华翰
2023-03-14

我被要求为我的Camunda Engine/BPMN工具创建Spring靴执行器。因此,我们可以通过SpringActuator公开各种应用程序的健康检查和诊断。

这应该扩展到公开Camunda的运行状况、配置和指标。你知道怎么做吗?

共有2个答案

裘禄
2023-03-14

我已经能够定制现有的healthcheck执行器。为希望在这些项目中进行自定义的人共享下面的代码。

@Component
public class X extends AbstractHealthIndicator {
    @Autowired
    public JobExecutor jobExecutor;

    @Override
    protected void doHealthCheck(Builder builder) throws Exception {
        boolean active = jobExecutor.isActive();
        if (active) {
            builder = builder.up();
        } else {
            builder = builder.down();
        }
        builder.withDetail("jobExecutor", healthDetails(jobExecutor));
    }

    private Details healthDetails(JobExecutor jobExecutor) {
        final DetailsBuilder builder = Details.builder().name(jobExecutor.getName())
                .lockOwner(jobExecutor.getLockOwner()).lockTimeInMillis(jobExecutor.getLockTimeInMillis())
                .maxJobsPerAcquisition(jobExecutor.getMaxJobsPerAcquisition())
                .waitTimeInMillis(jobExecutor.getWaitTimeInMillis());

        for (ProcessEngineImpl processEngineImpl : jobExecutor.getProcessEngines()) {
            builder.processEngineName(processEngineImpl.getName());
        }

        return builder.build();
    }

}
邓德惠
2023-03-14

假设您使用的是camunda spring boot启动器:启动器中包含ProcessEngine和JobExecutor的两个默认运行状况指示器,请查看:

https://github.com/camunda/camunda-bpm-spring-boot-starter/tree/master/starter/src/main/java/org/camunda/bpm/spring/boot/starter/actuator

 @Override
  protected void doHealthCheck(Builder builder) throws Exception {
    boolean active = jobExecutor.isActive();
    if (active) {
      builder = builder.up();
    } else {
      builder = builder.down();
    }
    builder.withDetail("jobExecutor", Details.from(jobExecutor));
  }

这将让您了解如何实现springsAbstractHealthIndicator,访问camunda组件并使用它们进行健康检查。

 类似资料:
  • 因此,我将Spring引导执行器添加到我的应用程序中,并在应用程序中指定。属性管理。endpoint。健康隐藏物生存时间=120秒,以缓存健康检查结果。因此,当我调用执行器/健康时,结果被缓存,效果很好。 当我调用执行器/健康/就绪或自定义创建的组时,问题开始出现。该请求结果不会被缓存。我查阅了Spring文档,只找到了主要健康终点的信息,没有找到特定人群的信息。 所以我的问题是:我错过了什么吗?

  • 我正在使用运行在非8080端口上的Spring Boot web应用程序。我需要编写一个rest API来检查应用程序以及底层数据库的健康状况。 关于同样的,我已经看了这篇文章:如何在Spring启动健康中添加自定义健康检查?,但没有找到任何具体的实现。 实际上我想做以下工作: > 所有下游API的健康检查 DB是否工作正常 那么任何人都可以帮我吗?谢谢。

  • 我对NodeJS是新手。我已经执行了以下命令。1.npm安装-g创建react应用程序2。创建react应用程序我的应用程序 在执行第二个命令时,我遇到了如下错误 安装软件包。这可能需要几分钟。正在安装react、react dom和react脚本。。。 uglifyjs-webpack-plugin@0.4.6安装后E:\Projects\HighAvenue\Dashboard\dashboa

  • 问题内容: 启动器在游戏中最常见。想想英雄联盟,星际争霸II或几乎所有的MMO。在开始实际游戏之前,您有一个小型启动器应用程序,负责更新和修补。 我想通过我正在开发的特定非游戏应用程序来朝这个方向发展。启动器的概念非常有意义:它检查更新,替换适当的二进制文件/库,运行完整性检查并启动应用程序。但是,启动器如何自我更新?这往往是罕见的事件,但是如何完成呢?启动程序实际上是否只是覆盖当前正在运行的二进

  • 我想做的事 使用Spring Boot执行器创建两个(不同)endpoint 我的环境 null 要实现健康检查特性,我想使用Spring Boot执行器是最快的方法(默认情况下,/health映射到健康检查endpoint)。我还理解我们可以通过扩展AbstractHealthIndicator来配置这个endpoint(这样它将包括DB健康检查)。 但就我所见,我无法找到一种方法来创建多个en

  • 我使用Spring执行器和Spring靴来检查我的服务的健康。我使用OpenJDK11。并使用: Spring-boot依赖关系: 执行器依赖性: