Обновление с Application Insights Java 2.x SDK
Обычно при обновлении до версии 3.x изменения кода не требуются. Зависимости пакета SDK 3.x — это версии API no-op зависимостей пакета SDK 2.x. Однако при использовании с агентом Java 3.x агент Java 3.x предоставляет для них реализацию. В результате настраиваемое инструментирование сопоставляется со всеми новыми автоматическими средствами, предоставляемыми агентом Java 3.x.
Шаг 1. Обновление зависимостей
Зависимость 2.x | Действие | Замечания |
---|---|---|
applicationinsights-core |
Обновление версии до 3.4.3 или более поздней |
|
applicationinsights-web |
Обновите версию до 3.4.3 или более поздней и удалите веб-фильтр Application Insights файла web.xml . |
|
applicationinsights-web-auto |
Замена на 3.4.3 или более позднюю версию applicationinsights-web |
|
applicationinsights-logging-log4j1_2 |
Удалите зависимость и удалите приложение Application Insights из конфигурации Log4j. | Больше не требуется, так как Log4j 1.2 автоматически используется в агенте Java 3.x. |
applicationinsights-logging-log4j2 |
Удалите зависимость и удалите приложение Application Insights из конфигурации Log4j. | Больше не требуется, так как Log4j 2 автоматически используется в агенте Java 3.x. |
applicationinsights-logging-logback |
Удалите зависимость и удалите добавление Application Insights из конфигурации logback. | Больше не требуется, так как функция logback автоматически используется в агенте Java 3.x. |
applicationinsights-spring-boot-starter |
Замена на 3.4.3 или более позднюю версию applicationinsights-web |
Имя облачной роли больше не используется spring.application.name по умолчанию. Сведения о настройке имени облачной роли см. в документации по конфигурации 3.x. |
Шаг 2. Добавление агента Java 3.x
Добавьте агент Java 3.x в командную строку Java Virtual Machine (JVM), например:
-javaagent:path/to/applicationinsights-agent-3.6.2.jar
Если вы используете агент Java Application Insights 2.x, просто замените существующий -javaagent:...
на предыдущий пример.
Примечание.
Если вы использовали spring-boot-starter, существует альтернатива агента Java. См. 3.x Spring Boot.
Шаг 3. Настройка строки подключения Application Insights
См. сведения о настройке строки подключения.
Другие примечания
В остальной части этого документа описываются ограничения и изменения, которые могут возникнуть при обновлении с версии 2.x до 3.x, а также некоторые обходные пути, которые могут оказаться полезными.
TelemetryInitializers
2.x TelemetryInitializers не выполняются при использовании агента 3.x.
Многие из вариантов использования, которые ранее требовались написанием TelemetryInitializer
, можно решить в Application Insights Java 3.x, настроив пользовательские измерения.
Или использование унаследованных атрибутов.
TelemetryProcessors
2.x TelemetryProcessors не выполняются при использовании агента 3.x.
Многие из вариантов использования, которые ранее требовались для записи TelemetryProcessor
, можно решить в Application Insights Java 3.x, настроив переопределения выборки.
Несколько приложений в одной виртуальной машине Java
Этот вариант использования поддерживается в Application Insights Java 3.x с помощью переопределения имен ролей облака (предварительная версия) и (или) переопределения строк подключения (предварительная версия).
Имена операций
В пакете SDK Для Java 2.x Application Insights в некоторых случаях имена операций содержат полный путь, например:
Имена операций в Application Insights Java 3.x изменились, чтобы обеспечить лучшее агрегированное представление на портале Application Insights U/X, например:
Однако для некоторых приложений можно по-прежнему предпочесть агрегированное представление в U/X, предоставленное предыдущими именами операций. В этом случае можно использовать функцию обработчиков телеметрии (предварительная версия) в 3.x для репликации предыдущего поведения.
Следующий фрагмент кода настраивает три процессора телеметрии, которые объединяются для репликации предыдущего поведения. Обработчики данных телеметрии выполняют следующие действия (по порядку):
Первый обработчик данных телеметрии является обработчиком атрибутов (имеет тип
attribute
). Это означает, что он применяется ко всем данным телеметрии, имеющим атрибуты (в настоящее время этоrequests
иdependencies
, но вскоре также иtraces
).Он соответствует любой телеметрии, которая имеет атрибуты с именем
http.request.method
иurl.path
.Затем он извлекает
url.path
атрибут в новый атрибут с именемtempName
.Второй обработчик данных телеметрии является обработчиком диапазонов (имеет тип
span
). Это означает, что он применяется кrequests
иdependencies
.Он соответствует любому диапазону с именем
tempPath
атрибута.Затем он обновляет имя диапазона из атрибута
tempPath
.Последний обработчик данных телеметрии — это обработчик атрибутов, имеющий тот же тип, что и первый обработчик данных телеметрии.
Он соответствует любой телеметрии с именем
tempPath
атрибута.Затем он удаляет именованный
tempPath
атрибут, а атрибут отображается как настраиваемое измерение.
{
"preview": {
"processors": [
{
"type": "attribute",
"include": {
"matchType": "strict",
"attributes": [
{ "key": "http.request.method" },
{ "key": "url.path" }
]
},
"actions": [
{
"key": "url.path",
"pattern": "https?://[^/]+(?<tempPath>/[^?]*)",
"action": "extract"
}
]
},
{
"type": "span",
"include": {
"matchType": "strict",
"attributes": [
{ "key": "tempPath" }
]
},
"name": {
"fromAttributes": [ "http.request.method", "tempPath" ],
"separator": " "
}
},
{
"type": "attribute",
"include": {
"matchType": "strict",
"attributes": [
{ "key": "tempPath" }
]
},
"actions": [
{ "key": "tempPath", "action": "delete" }
]
}
]
}
}
Пример проекта
Этот проект пакета SDK java 2.x переносится в новый проект с помощью агента Java 3.x.