Строка подключения не указана (Azure Application Insights)

Я новичок в Azure App Insights. Я пытаюсь настроить его в своем приложении Spring Boot + Kotlin. Пока, после прочтения гайдов. Я добавил зависимость:

<!-- https://mvnrepository.com/artifact/com.microsoft.azure/applicationinsights-runtime-attach -->
<dependency>
    <groupId>com.microsoft.azure</groupId>
    <artifactId>applicationinsights-runtime-attach</artifactId>
    <version>3.4.9</version>
</dependency>

и в моем файле application.yaml я добавил:

applicationinsights:
  runtime-attach:
    configuration:
      classpath:
        file: my_app_insights.json

Мой my_app_insights.json (находится в src/main/resources) содержит:

{
  "connectionString":"A_VERY_LONG_CONNECTION_STRING",
  "sampling":{
    "requestsPerSecond":100
  },
  "instrumentation":{
    "logging":{
      "level":"INFO"
    },
    "jdbc":{
      "masking":{
        "enabled":true
      }
    }
  }
}

И в моем основном классе Spring Boot я сделал это:

fun main(args: Array<String>) {

    // Attach Azure Application Insights here.
    ApplicationInsights.attach()

    runApplication<MyDownloadApplication>(*args)
}

Но когда я запускаю свое весеннее загрузочное приложение обычным способом, используя mvn spring-boot:run...

Я получаю следующую ошибку:

2023-02-21 18:41:11.152+05:30 ERROR c.m.applicationinsights.agent - 
*************************
Application Insights Java Agent 3.4.9 startup failed (PID 18436)
*************************

Description:
No connection string provided

Action:
Please provide connection string.

18:41:11.582 [Thread-0] DEBUG org.springframework.boot.devtools.restart.classloader.RestartClassLoader - Created RestartClassLoader org.springframework.boot.devtools.restart.classloader.RestartClassLoader@306e2a0a
Feb 21, 2023 6:41:11 PM com.microsoft.applicationinsights.attach.ApplicationInsights attach
WARNING: Application Insights is already attached. It is not attached a second time.

Не могли бы вы сказать мне, что я делаю неправильно здесь? Нужно ли добавлять какие-либо другие зависимости? Или это имя файла?

Любые указатели будут полезны.

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Версия Java на основе версии загрузки
Версия Java на основе версии загрузки
Если вы зайдете на официальный сайт Spring Boot , там представлен start.spring.io , который упрощает создание проектов Spring Boot, как показано ниже.
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
0
0
67
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

applicationinsights.runtime-attach.configuration.classpath.file свойство не может быть определено в application.properties или application.yaml. Вместо этого он должен быть определен с помощью -D, например -Dapplicationinsights.runtime-attach.configuration.classpath.file=applicationinsights-dev.json.

Другой вариант бесполезен -Dapplicationinsights.runtime-attach.configuration.classpath.file. В этом случае Application Insights будет искать файл applicationinsights.json в пути к классам (src/main/resources, src/test/resources).

Для JSON-файла Application Insights существуют и другие параметры конфигурации, которые приведены здесь.

К сожалению, я попробовал это, и я все еще получаю сообщение об ошибке. Я использовал mvn spring-boot:run -Dspring-boot.run.arguments = "--spring.secret.key=XXXXXX --spring.user.password=XXXXX" -Dapplicationinsights.runtime-attach.configuration.classpath‌​.file=applicationins‌​ights.json

hell_storm2004 22.02.2023 12:33

Извинения. Я заставил его работать так, как вы упомянули. Спасибо за помощь. Это была проблема, потому что тег resources моего файла pom не перетаскивал файлы json в путь к классам. Честно говоря, проблема как раз и заключалась в другом!

hell_storm2004 22.02.2023 16:43

Вы должны добавить -Dspring-boot.run.jvmArguments с spring-boot:run. Например, если у вас есть файл applicationinsights-dev.json в вашем пути к классам (src/main/resources, src/test/resources), вы должны выполнить

mvn spring-boot:run -Dspring-boot.run.jvmArguments = "-Dapplicationinsights.runtime-attach.configuration.classpath.file=applicationinsights-dev.json"

Другие вопросы по теме