Поделиться через


Использование Azure Monitor Application Insights с Spring Boot

Примечание.

С помощью собственных приложений образов Spring Boot можно использовать этот проект.

Существует два варианта включения Java Application Insights с помощью Spring Boot: аргумента виртуальной машины Java (JVM) и программно.

Включение с помощью аргумента JVM

Добавьте аргумент виртуальной машины Java -javaagent:"path/to/applicationinsights-agent-3.6.2.jar" в какое-то место перед -jar, например:

java -javaagent:"path/to/applicationinsights-agent-3.6.2.jar" -jar <myapp.jar>

Spring Boot через точку входа DOCKER

См. документацию, связанную с контейнерами.

Настройка

См . параметры конфигурации.

Включение программно

Чтобы включить Java Application Insights программным способом, необходимо добавить следующую зависимость:

<dependency>
    <groupId>com.microsoft.azure</groupId>
    <artifactId>applicationinsights-runtime-attach</artifactId>
    <version></version>
</dependency>

И вызовите attach() метод com.microsoft.applicationinsights.attach.ApplicationInsights класса, который находится в начале строки main() метода.

Предупреждение

Вызов должен находиться в начале main метода.

Предупреждение

JRE не поддерживается.

Предупреждение

Временный каталог операционной системы должен быть записываемым.

Пример:

@SpringBootApplication
public class SpringBootApp {

  public static void main(String[] args) {
    ApplicationInsights.attach();
    SpringApplication.run(SpringBootApp.class, args);
  }
}

Настройка

Программное включение поддерживает все те же параметры конфигурации, что и включение аргумента JVM, с различиями, описанными в следующих разделах.

Расположение файла конфигурации

По умолчанию при включении Application Insights Java программным способом файл applicationinsights.json конфигурации считывается из классаpath (src/main/resources, src/test/resources).

В версии 3.4.3 можно настроить имя JSON-файла в пути класса с помощью системного applicationinsights.runtime-attach.configuration.classpath.file свойства. Например, в -Dapplicationinsights.runtime-attach.configuration.classpath.file=applicationinsights-dev.jsonApplication Insights используется applicationinsights-dev.json файл для настройки. Чтобы программно настроить другой файл в 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);
}

Примечание.

Spring или application.properties application.yaml файлы не поддерживаются в качестве источников для конфигурации Java Application Insights.

См . параметры конфигурации пути к файлу конфигурации, чтобы изменить расположение файла за пределами класса.

Чтобы программно настроить файл за пределами classpath, выполните следующие действия.

public static void main(String[] args) {
    System.setProperty("applicationinsights.configuration.file", "{path}/applicationinsights-dev.json");
    ApplicationInsights.attach();
    SpringApplication.run(PetClinicApplication.class, args);
}

Программное настройка строка подключения

Сначала добавьте applicationinsights-core зависимость:

<dependency>
    <groupId>com.microsoft.azure</groupId>
    <artifactId>applicationinsights-core</artifactId>
    <version></version>
</dependency>

Затем вызовите ConnectionString.configure метод после ApplicationInsights.attach():

public static void main(String[] args) {
    System.setProperty("applicationinsights.configuration.file", "{path}/applicationinsights-dev.json");
    ApplicationInsights.attach();
    SpringApplication.run(PetClinicApplication.class, args);
}

Кроме того, вызовите ConnectionString.configure метод из компонента Spring.

Включите строка подключения, настроенные во время выполнения:

{
  "connectionStringConfiguredAtRuntime": true
}

Расположение файла журнала самостоятельной диагностики

По умолчанию при включении Java Application Insights файл, содержащий журналы агента, applicationinsights.log находится в каталоге, из которого запускается JVM (каталог пользователя).

Чтобы узнать, как изменить это расположение, ознакомьтесь с параметрами конфигурации самостоятельной диагностики.