Usar o Application Insights do Azure Monitor com o Spring Boot
Observação
Com os aplicativos de imagem nativa do Spring Boot, você pode usar esse projeto.
Há duas opções para habilitar o Java do Application Insights com o Spring Boot: argumento JVM (Máquina Virtual Java) e programaticamente.
Habilitando com o argumento JVM
Adicione o ARG da JVM em -javaagent:"path/to/applicationinsights-agent-3.6.0.jar"
algum lugar antes de -jar
, como:
java -javaagent:"path/to/applicationinsights-agent-3.6.0.jar" -jar <myapp.jar>
Spring Boot por meio do ponto de entrada do Docker
Consulte a documentação relacionada a contêineres.
Configuração
Veja Opções de configuração.
Habilitando programaticamente
Para habilitar o Java do Application Insights programaticamente, adicione a seguinte dependência:
<dependency>
<groupId>com.microsoft.azure</groupId>
<artifactId>applicationinsights-runtime-attach</artifactId>
<version>3.6.0</version>
</dependency>
E invoque o método attach()
da classe com.microsoft.applicationinsights.attach.ApplicationInsights
na primeira linha do seu método main()
.
Aviso
A invocação deve estar no início do método main
.
Aviso
Não há suporte para JRE.
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 habilitação programática dá suporte a todas as mesmas opções de configuração que a habilitação do argumento JVM, com as diferenças descritas nas próximas seções.
Local do arquivo de configuração
Por padrão, ao habilitar o Java do Application Insights programaticamente, o arquivo de configuração applicationinsights.json
será lido do classpath (src/main/resources
, src/test/resources
).
Da versão 3.4.3, você pode configurar o nome de um arquivo JSON no classpath com a propriedade do sistema applicationinsights.runtime-attach.configuration.classpath.file
.
Por exemplo, com -Dapplicationinsights.runtime-attach.configuration.classpath.file=applicationinsights-dev.json
, o Application Insights usará o arquivo applicationinsights-dev.json
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);
}
Observação
Não há suporte para os arquivos application.properties
ou application.yaml
do Spring como fontes para a configuração Java do Application Insights.
Configura 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 dependência applicationinsights-core
:
<dependency>
<groupId>com.microsoft.azure</groupId>
<artifactId>applicationinsights-core</artifactId>
<version>3.6.0</version>
</dependency>
Em seguida, chame o método ConnectionString.configure
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 método ConnectionString.configure
de um componente Spring.
Habilita a cadeia de conexão configurada no runtime:
{
"connectionStringConfiguredAtRuntime": true
}
Localização do arquivo de log de autodiagnóstico
Por padrão, ao habilitar o Application Insights Java programaticamente, o arquivo applicationinsights.log
que contém os logs do agente estará 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.