Configuración de Application Insights de Azure Monitor para Spring Boot
Nota:
Con las aplicaciones de imágenes nativas de Spring Boot, puede usar este proyecto.
Hay dos opciones para habilitar Application Insights Java con Spring Boot: con un argumento de Java Virtual Machine (JVM) y mediante programación.
Habilitación con el argumento JVM
Agregue el argumento de JVM -javaagent:"path/to/applicationinsights-agent-3.6.2.jar"
en alguna parte antes de -jar
, por ejemplo:
java -javaagent:"path/to/applicationinsights-agent-3.6.2.jar" -jar <myapp.jar>
Spring Boot mediante el punto de entrada de Docker
Vea la documentación relacionada con los contenedores.
Configuración
Ver opciones de configuración.
Habilitación mediante programación
Para habilitar Application Insights Java mediante programación, debe agregar la siguiente dependencia:
<dependency>
<groupId>com.microsoft.azure</groupId>
<artifactId>applicationinsights-runtime-attach</artifactId>
<version></version>
</dependency>
E invoque el método attach()
de la clase com.microsoft.applicationinsights.attach.ApplicationInsights
que está en la línea inicial del método main()
.
Advertencia
La invocación debe estar al principio del método main
.
Advertencia
No se admite JRE .
Advertencia
El directorio temporal del sistema operativo debe ser grabable.
Ejemplo:
@SpringBootApplication
public class SpringBootApp {
public static void main(String[] args) {
ApplicationInsights.attach();
SpringApplication.run(SpringBootApp.class, args);
}
}
Configuración
La habilitación mediante programación admite las mismas opciones de configuración que la habilitación del argumento de JVM, con las diferencias que se describen en las siguientes secciones.
Ubicación del archivo de configuración
De manera predeterminada, al habilitar Application Insights Java mediante programación, el archivo de configuración applicationinsights.json
se lee desde la ruta de clase (src/main/resources
, src/test/resources
).
Desde la versión 3.4.3, puede configurar el nombre de un archivo JSON en la ruta de clase con la propiedad del sistema applicationinsights.runtime-attach.configuration.classpath.file
.
Por ejemplo, con -Dapplicationinsights.runtime-attach.configuration.classpath.file=applicationinsights-dev.json
, Application Insights usa el archivo applicationinsights-dev.json
para la configuración. Para configurar mediante programación otro archivo en la ruta de clase:
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:
Los archivos application.properties
o application.yaml
de Spring no se admiten como orígenes para la configuración de Java de Application Insights.
Consulte opciones de configuración de ruta de acceso del archivo de configuración para cambiar la ubicación de un archivo fuera de la ruta de acceso de clase.
Para configurar mediante programación un archivo fuera de la ruta de clase:
public static void main(String[] args) {
System.setProperty("applicationinsights.configuration.file", "{path}/applicationinsights-dev.json");
ApplicationInsights.attach();
SpringApplication.run(PetClinicApplication.class, args);
}
Configuración mediante programación de la cadena de conexión
En primer lugar, agregue la dependencia applicationinsights-core
:
<dependency>
<groupId>com.microsoft.azure</groupId>
<artifactId>applicationinsights-core</artifactId>
<version></version>
</dependency>
A continuación, llame al método ConnectionString.configure
después de 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, llame al método ConnectionString.configure
desde un componente de Spring.
Habilite la cadena de conexión configurada en el entorno de ejecución:
{
"connectionStringConfiguredAtRuntime": true
}
Ubicación del archivo de registro de autodiagnóstico
De forma predeterminada, al habilitar Application Insights Java mediante programación, el archivo applicationinsights.log
que contiene los registros del agente se ubica en el directorio desde el que se inicia JVM (directorio de usuario).
Para obtener información sobre cómo cambiar esta ubicación, consulte las opciones de configuración de autodiagnóstico.