【问题标题】:How to Attach Elastic APM in Spring Application如何在 Spring 应用程序中附加 Elastic APM
【发布时间】:2019-11-09 14:29:21
【问题描述】:
【问题讨论】:
标签:
spring
elasticsearch
apm
elastic-apm
【解决方案1】:
您可以在 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)
}
}
【解决方案2】:
Map<String, String> apmConfiguration = new HashMap<>();
apmConfiguration.put("server_urls", "http://localhost:8200");
apmConfiguration.put("service_name", "SpringBootApp");
ElasticApmAttacher.attach(apmConfiguration);