我目前正在执行PoC以便将Elastic APM集成到我的spring应用程序中。我正在关注此页面:-https://futurestud.io/tutorials/gson-advanced-custom-serialization-part-1 以编程方式连接弹性APM罐。
我已将所需的jar添加到pom.xml中,但我没有得到如何将Elastic Apm(ElasticApmAttacher.attach())附加到我的常规spring代码中。给出的示例是针对SpringBoot的。但是我的应用程序是在Spring核心(spring-core,spring-web ..)上,其余的服务使用Jax-R公开。
答案 0 :(得分:0)
您可以在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)
}
}
答案 1 :(得分:0)
Map<String, String> apmConfiguration = new HashMap<>();
apmConfiguration.put("server_urls", "http://localhost:8200");
apmConfiguration.put("service_name", "SpringBootApp");
ElasticApmAttacher.attach(apmConfiguration);