spring - 如何在Spring应用程序中附加Elastic APM

标签 spring elasticsearch apm elastic-apm

我目前正在执行PoC,以将Elastic APM集成到我的spring应用程序中。我正在关注此页面:-https://www.elastic.co/guide/en/apm/agent/java/1.x/setup-attach-api.html
以编程方式连接 flex APM jar 。

我已经将所需的jar添加到pom.xml中,但是我没有得到如何将Elastic Apm(ElasticApmAttacher.attach())附加到我的常规spring代码中。给出的示例是针对SpringBoot的。但是我的应用程序是在Spring核心(spring-core,spring-web ..)上,其余的服务使用Jax-R公开。

最佳答案

您可以在Spring Application主类中附加ElasticApmAttacher.attach()

对于打包为war文件并部署到Tomcat服务器的SpringBootApplication,可以将其添加到configure方法中

下面的代码可能会有所帮助:

package com.test.main

import co.elastic.apm.attach.ElasticApmAttacher
import org.springframework.boot.Banner
import org.springframework.boot.SpringApplication
import org.springframework.boot.autoconfigure.SpringBootApplication
import org.springframework.boot.builder.SpringApplicationBuilder
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer


@SpringBootApplication(scanBasePackages = [ "com.test" ])
class Application extends SpringBootServletInitializer{

    static void main(String[] args) {
        SpringApplication app = new SpringApplication(Application.class)
        app.setBannerMode(Banner.Mode.OFF)
        ElasticApmAttacher.attach();
        app.run(args)
    }

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        ElasticApmAttacher.attach();
        return application.sources(Application.class)
    }
}

关于spring - 如何在Spring应用程序中附加Elastic APM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58780229/

相关文章:

java - 如何从 spring 批处理器 process() 方法向 Spring 批处理作业启动方法抛出异常?

java - Spring Data Jpa - ManyToMany - 删除连接表的实体

node.js - 未在Node JS代理中记录APM服务器事务(快速)

java - Spring Boot 验证消息未解决

java - 通过elasticsearch和spring进行联合搜索

django - IndexMissingException - 带 Elasticsearch 的 django haystack

elasticsearch - 获取匹配类型1而不是类型2的文档

elasticsearch - 跨集群的ElasticSearch快照

.net - Application Insights 交易明细图

java - 检测 Spring Boot 应用程序时的类路径问题