Usando o Azure Monitor Application Insights com o Spring Boot
Nota
Com aplicativos de imagem nativos do Spring Boot, você pode usar este projeto.
Há duas opções para habilitar o Application Insights Java com Spring Boot: o argumento Java Virtual Machine (JVM) e programaticamente.
Habilitando com o argumento JVM
Adicione o arg -javaagent:"path/to/applicationinsights-agent-3.6.2.jar"
da JVM em algum lugar antes , -jar
por exemplo:
java -javaagent:"path/to/applicationinsights-agent-3.6.2.jar" -jar <myapp.jar>
Spring Boot através do ponto de entrada do Docker
Consulte a documentação relacionada com contentores.
Configuração
Consulte as opções de configuração.
Ativando programaticamente
Para habilitar o Application Insights Java programaticamente, você deve adicionar a seguinte dependência:
<dependency>
<groupId>com.microsoft.azure</groupId>
<artifactId>applicationinsights-runtime-attach</artifactId>
<version></version>
</dependency>
E invoque o attach()
com.microsoft.applicationinsights.attach.ApplicationInsights
método da classe que está na linha inicial do seu main()
método.
Aviso
A invocação deve estar no início do main
método.
Aviso
O JRE não é suportado.
Aviso
O diretório temporário do sistema operacional deve ser gravável.
Exemplo:
@SpringBootApplication
public class SpringBootApp {
public static void main(String[] args) {
ApplicationInsights.attach();
SpringApplication.run(SpringBootApp.class, args);
}
}
Configuração
A ativação programática suporta todas as mesmas opções de configuração que a ativação de argumento da JVM, com as diferenças descritas nas próximas seções.
Local do arquivo de configuração
Por padrão, ao habilitar o Application Insights Java programaticamente, o arquivo applicationinsights.json
de configuração é lido do classpath (src/main/resources
, src/test/resources
).
A partir da versão 3.4.3, você pode configurar o nome de um arquivo JSON no classpath com a applicationinsights.runtime-attach.configuration.classpath.file
propriedade system.
Por exemplo, com -Dapplicationinsights.runtime-attach.configuration.classpath.file=applicationinsights-dev.json
o , o Application Insights usa o applicationinsights-dev.json
arquivo para configuração. Para configurar programaticamente outro arquivo no classpath:
public static void main(String[] args) {
System.setProperty("applicationinsights.runtime-attach.configuration.classpath.file", "applicationinsights-dev.json");
ApplicationInsights.attach();
SpringApplication.run(PetClinicApplication.class, args);
}
Nota
Os arquivos ou application.yaml
do Spring não são suportados como fontes para a configuração Java do Application Insightsapplication.properties
.
Consulte as opções de configuração do caminho do arquivo de configuração para alterar o local de um arquivo fora do classpath.
Para configurar programaticamente um arquivo fora do classpath:
public static void main(String[] args) {
System.setProperty("applicationinsights.configuration.file", "{path}/applicationinsights-dev.json");
ApplicationInsights.attach();
SpringApplication.run(PetClinicApplication.class, args);
}
Configurar programaticamente a cadeia de conexão
Primeiro, adicione a applicationinsights-core
dependência:
<dependency>
<groupId>com.microsoft.azure</groupId>
<artifactId>applicationinsights-core</artifactId>
<version></version>
</dependency>
Em seguida, chame o ConnectionString.configure
método após ApplicationInsights.attach()
:
public static void main(String[] args) {
System.setProperty("applicationinsights.configuration.file", "{path}/applicationinsights-dev.json");
ApplicationInsights.attach();
SpringApplication.run(PetClinicApplication.class, args);
}
Como alternativa, chame o ConnectionString.configure
método de um componente Spring.
Habilite a cadeia de conexão configurada em tempo de execução:
{
"connectionStringConfiguredAtRuntime": true
}
Local do arquivo de log de autodiagnóstico
Por padrão, ao habilitar o Application Insights Java programaticamente, o applicationinsights.log
arquivo que contém os logs do agente está localizado no diretório de onde a JVM é iniciada (diretório do usuário).
Para saber como alterar esse local, consulte as opções de configuração de autodiagnóstico.