Partilhar via


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.5.3.jar" da JVM em algum lugar antes , -jarpor exemplo:

java -javaagent:"path/to/applicationinsights-agent-3.5.3.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>3.5.3</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.jsono , 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>3.5.3</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.