Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье показано, как настроить Azure Monitor Application Insights для Java.
Дополнительные сведения см. в разделе "Начало работы с OpenTelemetry ", включающее примеры приложений.
Строка подключения и имя роли
Строка подключения и имя роли — это наиболее распространенные параметры, необходимые чтобы начать работу.
{
"connectionString": "...",
"role": {
"name": "my cloud role name"
}
}
Требуется строка подключения. Имя роли важно в любой момент, когда вы отправляете данные из разных приложений в один ресурс Application Insights.
Дополнительные сведения и параметры конфигурации приведены в следующих разделах.
Настройка конфигурации JSON
Конфигурация по умолчанию
По умолчанию Application Insights Java 3 ожидает, что файл конфигурации будет называться applicationinsights.json и расположен в том же каталоге, что и applicationinsights-agent-3.7.5.jar.
Альтернативные конфигурации
Пользовательский файл конфигурации
Можно указать пользовательский файл конфигурации с помощью
- переменная среды APPLICATIONINSIGHTS_CONFIGURATION_FILE или
- системное свойство applicationinsights.configuration.file
Если указать относительный путь, он будет определяться относительно каталога, в котором находится applicationinsights-agent-3.7.5.jar.
Конфигурация в формате JSON
Вместо использования файла конфигурации можно задать всю конфигурацию JSON следующим образом:
- переменная среды APPLICATIONINSIGHTS_CONFIGURATION_CONTENT или
- свойство системы applicationinsights.configuration.content
Строка подключения
Требуется строка подключения. Вы можете найти строку подключения в ресурсе Application Insights.
{
"connectionString": "..."
}
Вы также можете задать строку подключения с помощью переменной среды APPLICATIONINSIGHTS_CONNECTION_STRING. Затем он имеет приоритет над строкой подключения, указанной в конфигурации JSON.
Или можно задать строку подключения с помощью системного свойства Java applicationinsights.connection.string. Он также имеет приоритет над строкой подключения, указанной в конфигурации JSON.
Чтобы задать строку подключения, можно также указать файл, из которого ее нужно загрузить.
Если указать относительный путь, он определяется относительно каталога, где находится applicationinsights-agent-3.7.5.jar.
{
"connectionString": "${file:connection-string-file.txt}"
}
Файл должен содержать только строка подключения и ничего другого.
Не установка строки подключения, отключает агент Java.
Если у вас несколько приложений, развёрнутых на одной виртуальной машине Java (JVM), и вы хотите, чтобы они отправляли данные телеметрии в разные строки подключения, см. Переопределения строк подключения (предварительная версия).
Имя облачной роли
Имя облачной роли используется для метки компонента на карте приложения.
Если вы хотите задать имя облачной роли:
{
"role": {
"name": "my cloud role name"
}
}
Если имя облачной роли не задано, имя ресурса Application Insights используется для метки компонента на карте приложения.
Также можно задать имя облачной роли с помощью переменной среды APPLICATIONINSIGHTS_ROLE_NAME. Затем он имеет приоритет над именем облачной роли, указанным в конфигурации JSON.
Вы также можете задать имя облачной роли с помощью системного свойства applicationinsights.role.nameJava. Он также имеет приоритет над именем облачной роли, указанным в конфигурации JSON.
Если в одной виртуальной машине JVM развернуто несколько приложений и вы хотите, чтобы они отправляли данные телеметрии в разные имена облачных ролей, см. раздел Переопределения имен облачных ролей (предварительная версия).
Экземпляр облачной роли
Экземпляр облачной роли по умолчанию использует имя компьютера.
Если вы хотите задать для экземпляра облачной роли другое имя вместо имени компьютера:
{
"role": {
"name": "my cloud role name",
"instance": "my cloud role instance"
}
}
Можно также задать инстанцию облачной роли с помощью переменной APPLICATIONINSIGHTS_ROLE_INSTANCE среды. Затем он имеет приоритет над экземпляром облачной роли, указанным в конфигурации JSON.
Или можно задать экземпляр облачной роли, используя системное свойство Java applicationinsights.role.instance.
Он также имеет приоритет над экземпляром облачной роли, указанным в конфигурации JSON.
Образец
Примечание.
Выборка может быть отличным способом снижения затрат на Application Insights. Убедитесь, что конфигурация выборки настроена согласно вашего варианта использования.
Выборка основана на запросе, что означает, что если запрос отбирается (выборка), то отбираются также его зависимости, журналы и исключения.
Выборка также осуществляется на основе идентификатора трассировки, чтобы обеспечить согласованность решений по выборке в различных службах.
Взятие проб применяется только к логам внутри запроса. Журналы, не находящиеся внутри запроса (например, журналы запуска), всегда собираются по умолчанию. Если вы хотите протестировать эти журналы, можно использовать переопределения выборки.
Выборка с ограничением скорости
Начиная с версии 3.4.0 доступна ограниченная скорость выборки и теперь используется по умолчанию.
Если выборка не настроена, по умолчанию выборка ограничена скоростью, настроенной для записи не более пяти запросов в секунду, а также всех зависимостей и журналов для этих запросов.
Эта конфигурация заменяет предыдущий параметр по умолчанию, который был для записи всех запросов. Если вы по-прежнему хотите записать все запросы, используйте выборку с фиксированным процентом и задайте процент выборки 100.
Примечание.
Выборка с ограниченной скоростью представляет собой приближение, поскольку внутренне она вынуждена адаптировать "фиксированный" процент выборки с течением времени, чтобы получать точные счета количества элементов для каждой записи телеметрии. Внутри системы выборка с ограниченной скоростью настраивается для быстрой адаптации (0,1 секунд) к новым нагрузкам приложений. По этой причине вы не должны видеть, что он превышает настроенную скорость на много или очень долго.
В этом примере показано, как задать выборку для записи по крайней мере (приблизительно) по одному запросу в секунду:
{
"sampling": {
"requestsPerSecond": 1.0
}
}
Это requestsPerSecond может быть десятичное значение, поэтому его можно настроить для записи меньше одного запроса в секунду, если вы хотите. Например, значение 0.5 означает, что фиксируется не более одного запроса каждые 2 секунды.
Вы также можете задать процент выборки с помощью переменной APPLICATIONINSIGHTS_SAMPLING_REQUESTS_PER_SECONDсреды. Затем он имеет приоритет над ограничением скорости, указанным в конфигурации JSON.
Выборка с фиксированным процентом
В этом примере показано, как настроить выборку примерно на треть всех запросов:
{
"sampling": {
"percentage": 33.333
}
}
Вы также можете задать процент выборки с помощью переменной APPLICATIONINSIGHTS_SAMPLING_PERCENTAGEсреды. Затем он имеет приоритет над процентом выборки, указанным в конфигурации JSON.
Примечание.
Для процента выборки выберите процент, близкий к 100/N, где N является целым числом. В настоящее время выборка не поддерживает другие значения.
Переопределение параметров выборки
Переопределения выборки позволяют переопределить процент выборки по умолчанию. Например, доступны следующие возможности:
- Установите процент выборки на 0 или небольшое значение для шумных проверок состояния.
- Для шумных вызовов зависимостей задайте процент выборки равным 0 или небольшому значению.
- Задайте процент выборки 100 для важного типа запроса. Например, можно использовать
/login, даже если выборка по умолчанию настроена на что-то меньшее.
Дополнительные сведения см. в документации по переопределениям выборки .
Метрики расширений управления Java
Если вы хотите собрать некоторые другие метрики расширений управления Java (JMX):
{
"jmxMetrics": [
{
"name": "JVM uptime (millis)",
"objectName": "java.lang:type=Runtime",
"attribute": "Uptime"
},
{
"name": "MetaSpace Used",
"objectName": "java.lang:type=MemoryPool,name=Metaspace",
"attribute": "Usage.used"
}
]
}
В предыдущем примере конфигурации:
-
name— это имя метрики, назначенное этой метрикой JMX (может быть любым). -
objectName— это имяJMX MBeanобъекта, который требуется собрать. Символ подстановочного знака (*) поддерживается. -
attribute— это имя атрибута внутриJMX MBean, которое вы хотите собрать.
Поддерживаются числовые и логические значения метрик JMX. Логические метрики JMX сопоставляются со значением 0 для false и 1 для true.
Дополнительные сведения см. в документации по метрикам JMX.
Пользовательские размеры
Если вы хотите добавить пользовательские измерения ко всем вашим данным телеметрии:
{
"customDimensions": {
"mytag": "my value",
"anothertag": "${ANOTHER_VALUE}"
}
}
Вы можете использовать ${...} для считывания значения из указанной переменной среды при запуске.
Примечание.
Начиная с версии 3.0.2, если вы добавляете пользовательское измерение с именем service.version, значение хранится в application_Version столбце таблицы Application Insights Logs вместо пользовательского измерения.
Наследуемый атрибут (предварительная версия)
Начиная с версии 3.2.0, можно программно задать настраиваемое измерение в телеметрии запроса. Он гарантирует наследование через зависимости и ведение журналов телеметрии. Все они учитываются в контексте этого запроса.
{
"preview": {
"inheritedAttributes": [
{
"key": "mycustomer",
"type": "string"
}
]
}
}
А затем в начале каждого запроса вызов:
Span.current().setAttribute("mycustomer", "xyz");
См. также: Добавить настраиваемое свойство в Span.
Переопределения строк подключения (предварительный просмотр)
Эта функция предоставляется в предварительной версии, начиная с 3.4.0.
Переопределения строки подключения позволяют переопределить строку подключения по умолчанию. Например, доступны следующие возможности:
- Задайте одна строка подключения для одного префикса
/myapp1пути HTTP. - Задайте другую строку подключения для другого префикса пути HTTP
/myapp2/.
{
"preview": {
"connectionStringOverrides": [
{
"httpPathPrefix": "/myapp1",
"connectionString": "..."
},
{
"httpPathPrefix": "/myapp2",
"connectionString": "..."
}
]
}
}
Переопределения названий облачных ролей (предварительный просмотр)
Эта функция предоставляется в предварительной версии начиная с 3.3.0.
Переопределения имен ролей облака позволяют переопределить имя облачной роли по умолчанию. Например, доступны следующие возможности:
- Задайте одно имя облачной роли для одного префикса пути HTTP
/myapp1. - Задайте другое имя облачной роли для другого префикса пути HTTP
/myapp2/.
{
"preview": {
"roleNameOverrides": [
{
"httpPathPrefix": "/myapp1",
"roleName": "Role A"
},
{
"httpPathPrefix": "/myapp2",
"roleName": "Role B"
}
]
}
}
Строка подключения, настроенная во время выполнения
Начиная с версии 3.4.8, если вам нужна возможность настроить строку подключения во время выполнения, добавьте это свойство в конфигурацию JSON:
{
"connectionStringConfiguredAtRuntime": true
}
Добавьте applicationinsights-core в свое приложение:
<dependency>
<groupId>com.microsoft.azure</groupId>
<artifactId>applicationinsights-core</artifactId>
<version>3.7.5</version>
</dependency>
Используйте статический configure(String) метод в классе com.microsoft.applicationinsights.connectionstring.ConnectionString.
Примечание.
Все данные телеметрии, которые записываются до настройки строки подключения, будут удалены, поэтому рекомендуется настроить ее как можно раньше при запуске приложения.
Автоматическая сборка внутрипроцессных зависимостей (предварительная версия)
Начиная с версии 3.2.0, если вы хотите записать зависимости контроллера InProc, используйте следующую конфигурацию:
{
"preview": {
"captureControllerSpans": true
}
}
Загрузчик пакета SDK для браузера (предварительная версия)
Эта функция автоматически внедряет загрузчик SDK для браузера в HTML-страницы приложения, а также настраивает соответствующую строку подключения.
Например, когда приложение Java возвращает ответ, например:
<!DOCTYPE html>
<html lang="en">
<head>
<title>Title</title>
</head>
<body>
</body>
</html>
Он автоматически изменяет возвращаемое значение:
<!DOCTYPE html>
<html lang="en">
<head>
<script type="text/javascript">
!function(v,y,T){var S=v.location,k="script"
<!-- Removed for brevity -->
connectionString: "YOUR_CONNECTION_STRING"
<!-- Removed for brevity --> }});
</script>
<title>Title</title>
</head>
<body>
</body>
</html>
Сценарий направлен на помощь клиентам в отслеживании данных пользователей сети и отправке собранной серверной телеметрии обратно в портал Azure пользователей. Подробные сведения можно найти в ApplicationInsights-JS.
Если вы хотите включить эту функцию, добавьте следующий параметр конфигурации:
{
"preview": {
"browserSdkLoader": {
"enabled": true
}
}
}
Обработчики данных телеметрии (предварительная версия)
Обработчики телеметрии можно использовать для настройки правил, применяемых к запросам, зависимостям и телеметрии трассировки. Например, доступны следующие возможности:
- Маскирование конфиденциальных данных.
- Добавляйте пользовательские измерения при условии.
- Обновление имени диапазона, который используется для агрегирования сходных данных телеметрии на портале Azure.
- Удалите атрибуты диапазона, чтобы контролировать затраты на обработку данных.
Дополнительные сведения см. в документации по обработчику телеметрии.
Примечание.
Если вы хотите исключить определенные (целые) диапазоны для управления стоимостью поглощения данных, см. переопределение выборки.
Настраиваемое инструментирование (предварительная версия)
Начиная с версии 3.3.1, можно записать диапазоны для метода в приложении:
{
"preview": {
"customInstrumentation": [
{
"className": "my.package.MyClass",
"methodName": "myMethod"
}
]
}
}
Локальное отключение выборки при обработке данных (версия для предварительного просмотра)
По умолчанию, если процент эффективной выборки в агенте Java составляет 100% и на вашем ресурсе Application Insights настроена выборка приема, то будет применяться процент этой выборки.
Обратите внимание, что это поведение применяется как к выборке фиксированной частоты 100 %, так и к ограниченной частоте выборки, если скорость запроса не превышает предел скорости (эффективно захватывая 100 % во время непрерывного скользящего периода времени).
Начиная с версии 3.5.3 вы можете отключить это поведение (и сохранить 100% телеметрии в этих случаях, даже если в ресурсе Application Insights настроена выборка данных для сбора):
{
"preview": {
"sampling": {
"ingestionSamplingEnabled": false
}
}
}
Автоматически собранное логирование
Log4j, Logback, JBoss Log и java.util.log автоматически используются. Ведение журнала с помощью этих платформ ведения журнала выполняется автоматически.
Ведение журнала осуществляется только в случае, если:
- Соответствует заданному уровню для платформы ведения журнала.
- Также соответствует настроенному уровню для Application Insights.
Например, если платформа ведения журнала настроена для записи WARN (и вы настроили ее, как описано выше) из пакета com.example, а Application Insights настроена для захвата INFO (и вы настроили, как описано), Application Insights записывает только WARN (и более серьезные) из пакета com.example.
Уровень по умолчанию, настроенный для Application Insights, — INFO. Если вы хотите изменить этот уровень:
{
"instrumentation": {
"logging": {
"level": "WARN"
}
}
}
Вы также можете задать уровень с помощью переменной APPLICATIONINSIGHTS_INSTRUMENTATION_LOGGING_LEVELсреды. Затем он имеет приоритет над уровнем, указанным в конфигурации JSON.
Эти допустимые level значения можно использовать для указания в applicationinsights.json файле. В таблице показано, как они соответствуют уровням ведения журнала в разных платформах ведения журнала.
| Уровень | Log4j | Обратный вход | JBoss | ИЮЛ |
|---|---|---|---|---|
| ВЫКЛ. | ВЫКЛ. | ВЫКЛ. | ВЫКЛ. | ВЫКЛ. |
| Фатальный | Фатальный | ОШИБКА | Фатальный | СЕРЬЕЗНЫЙ |
| ОШИБКА (или КРИТИЧЕСКАЯ) | ОШИБКА | ОШИБКА | ОШИБКА | СЕРЬЕЗНЫЙ |
| ПРЕДУПРЕЖДЕНИЕ | ПРЕДУПРЕЖДЕНИЕ | ПРЕДУПРЕЖДЕНИЕ | ПРЕДУПРЕЖДЕНИЕ | ПРЕДУПРЕЖДЕНИЕ |
| ИНФО | ИНФО | ИНФО | ИНФО | ИНФО |
| конфигурация | ОТЛАДКА | ОТЛАДКА | ОТЛАДКА | конфигурация |
| DEBUG (или FINE) | ОТЛАДКА | ОТЛАДКА | ОТЛАДКА | Хорошо |
| ЛУЧШЕ | ОТЛАДКА | ОТЛАДКА | ОТЛАДКА | ЛУЧШЕ |
| TRACE (или FINEST) | ТРАССИРОВКА | ТРАССИРОВКА | ТРАССИРОВКА | Лучший |
| ВСЕ | ВСЕ | ВСЕ | ВСЕ | ВСЕ |
Примечание.
Если объект исключения передается логгеру, сообщение журнала (и сведения об объекте исключения) будут отображаться в портале Azure под exceptions таблицей, а не в traces таблице. Если вы хотите просмотреть сообщения журнала в обеих таблицах traces и exceptions, вы можете написать запрос журналов (Kusto) для объединения их. Например:
union traces, (exceptions | extend message = outerMessage)
| project timestamp, message, itemType
Маркеры журналов (предварительная версия)
Начиная с 3.4.2, вы можете записать маркеры журнала для Logback и Log4j 2:
{
"preview": {
"captureLogbackMarker": true,
"captureLog4jMarker": true
}
}
Другие атрибуты журнала для Logback (предварительная версия)
Начиная с 3.4.3, вы можете записать FileName, ClassName, MethodName и LineNumber для Logback.
{
"preview": {
"captureLogbackCodeAttributes": true
}
}
Предупреждение
Запись атрибутов кода может привести к снижению производительности.
Уровень логирования в качестве настраиваемого измерения
Начиная с версии 3.3.0, LoggingLevel по умолчанию не учитывается в пользовательском измерении Traces, так как эти данные уже содержатся в поле SeverityLevel.
При необходимости можно временно повторно включить предыдущее поведение:
{
"preview": {
"captureLoggingLevelAsCustomDimension": true
}
}
Автоматически собранные метрики микрометра (включая метрики Spring Boot Actuator)
Если приложение использует Micrometer, метрики, отправленные в глобальный реестр Micrometer, автоматически собираются.
Кроме того, если приложение использует Spring Boot Actuator, метрики, настроенные Spring Boot Actuator, также автоматически собираются.
Для отправки пользовательских метрик с помощью микрометра:
Добавьте Micrometer в приложение, как показано в следующем примере.
<dependency> <groupId>io.micrometer</groupId> <artifactId>micrometer-core</artifactId> <version>1.6.1</version> </dependency>Используйте глобальный реестр Micrometer для создания счетчика, как показано в следующем примере.
static final Counter counter = Metrics.counter("test.counter");Используйте счетчик для записи метрик с помощью следующей команды.
counter.increment();Метрики вносятся в таблицу customMetrics, где захватываются теги, фиксированные в столбце
customDimensions. Вы также можете просмотреть метрики в обозревателе метрик вLog-based metricsпространстве имен метрик.Примечание.
Java Application Insights заменяет все нефанумерные символы (за исключением дефисов) в имени метрики Micrometer символами подчеркивания. В результате предыдущая
test.counterметрика будет отображаться какtest_counter.
Чтобы отключить автоматический сбор метрик Micrometer и метрик Spring Boot Actuator, выполните приведенные ниже действия.
Примечание.
Пользовательские метрики выставляются отдельно и могут создавать дополнительные затраты. Обязательно проверьте сведения о ценах. Чтобы отключить метрики Micrometer и Spring Boot Actuator, добавьте следующую конфигурацию в файл конфигурации.
{
"instrumentation": {
"micrometer": {
"enabled": false
}
}
}
Маскирование запросов подключения к базе данных Java
Литеральные значения в запросах JDBC по умолчанию маскируются, чтобы избежать случайного захвата конфиденциальных данных.
Начиная с 3.4.0, это поведение можно отключить. Например:
{
"instrumentation": {
"jdbc": {
"masking": {
"enabled": false
}
}
}
}
Маскирование запросов Mongo
Литеральные значения в запросах Mongo маскируются по умолчанию, чтобы избежать случайного захвата конфиденциальных данных.
Начиная с 3.4.0, это поведение можно отключить. Например:
{
"instrumentation": {
"mongo": {
"masking": {
"enabled": false
}
}
}
}
Заголовки HTTP
Начиная с версии 3.3.0, вы можете записывать заголовки запросов и ответов из телеметрии сервера (запросов):
{
"preview": {
"captureHttpServerHeaders": {
"requestHeaders": [
"My-Header-A"
],
"responseHeaders": [
"My-Header-B"
]
}
}
}
Названия заголовков не зависят от регистра.
Предыдущие примеры записываются под названиями свойств http.request.header.my_header_a и http.response.header.my_header_b.
Аналогичным образом вы можете захватывать заголовки запросов и ответов в телеметрии, связанной с зависимостями клиента.
{
"preview": {
"captureHttpClientHeaders": {
"requestHeaders": [
"My-Header-C"
],
"responseHeaders": [
"My-Header-D"
]
}
}
}
Опять же, имена заголовков не учитывает регистр. Предыдущие примеры записываются под названиями свойств http.request.header.my_header_c и http.response.header.my_header_d.
Коды ответов HTTP-сервера 4xx
По умолчанию запросы к HTTP-серверу, которые приводят к кодам ответа 4xx, фиксируются как ошибки.
Начиная с версии 3.3.0, вы можете изменить это поведение, чтобы записать их в качестве успешного:
{
"preview": {
"captureHttpServer4xxAsError": false
}
}
Подавление определенной телеметрии с автоматическим сбором данных
Начиная с версии 3.0.3, определенные автоматически собираемые данные телеметрии можно подавить, используя следующие параметры конфигурации:
{
"instrumentation": {
"azureSdk": {
"enabled": false
},
"cassandra": {
"enabled": false
},
"jdbc": {
"enabled": false
},
"jms": {
"enabled": false
},
"kafka": {
"enabled": false
},
"logging": {
"enabled": false
},
"micrometer": {
"enabled": false
},
"mongo": {
"enabled": false
},
"quartz": {
"enabled": false
},
"rabbitmq": {
"enabled": false
},
"redis": {
"enabled": false
},
"springScheduling": {
"enabled": false
}
}
}
Кроме того, подобное инструментирование можно отключить, задав значение false для следующих переменных среды:
APPLICATIONINSIGHTS_INSTRUMENTATION_AZURE_SDK_ENABLEDAPPLICATIONINSIGHTS_INSTRUMENTATION_CASSANDRA_ENABLEDAPPLICATIONINSIGHTS_INSTRUMENTATION_JDBC_ENABLEDAPPLICATIONINSIGHTS_INSTRUMENTATION_JMS_ENABLEDAPPLICATIONINSIGHTS_INSTRUMENTATION_KAFKA_ENABLEDAPPLICATIONINSIGHTS_INSTRUMENTATION_LOGGING_ENABLEDAPPLICATIONINSIGHTS_INSTRUMENTATION_MICROMETER_ENABLEDAPPLICATIONINSIGHTS_INSTRUMENTATION_MONGO_ENABLEDAPPLICATIONINSIGHTS_INSTRUMENTATION_RABBITMQ_ENABLEDAPPLICATIONINSIGHTS_INSTRUMENTATION_REDIS_ENABLEDAPPLICATIONINSIGHTS_INSTRUMENTATION_SPRING_SCHEDULING_ENABLED
Затем эти переменные имеют приоритет над включенными переменными, указанными в конфигурации JSON.
Примечание.
Если вы ищете более точный контроль, например, чтобы подавить некоторые вызовы redis, но не все вызовы redis, см. переопределения выборки.
Предварительные инструментальные средства
Начиная с версии 3.2.0, можно включить следующие инструменты предварительного просмотра:
{
"preview": {
"instrumentation": {
"akka": {
"enabled": true
},
"apacheCamel": {
"enabled": true
},
"grizzly": {
"enabled": true
},
"ktor": {
"enabled": true
},
"play": {
"enabled": true
},
"r2dbc": {
"enabled": true
},
"springIntegration": {
"enabled": true
},
"vertx": {
"enabled": true
}
}
}
}
Примечание.
Инструментирование Akka доступно начиная с версии 3.2.2. Инструментирование библиотеки HTTP Vertx доступно начиная с версии 3.3.0.
Интервал в метриках
По умолчанию метрики фиксируются каждые 60 секунд.
Начиная с версии 3.0.3 данный интервал можно изменить:
{
"metricIntervalSeconds": 300
}
Начиная с 3.4.9 GA, вы также можете задать metricIntervalSeconds используя переменную среды APPLICATIONINSIGHTS_METRIC_INTERVAL_SECONDS. Затем он имеет приоритет над metricIntervalSeconds указанным в конфигурации JSON.
Этот параметр применяется к следующим метрикам:
- Счетчики производительности по умолчанию: например, ЦП и память
- Пользовательские метрики по умолчанию: например, время сборки мусора
- Настроенные метрики JMX: см. раздел метрики JMX
- Метрики микрометра: см. раздел "Автоматически собранные метрики микрометра"
Пульс
По умолчанию Application Insights Java 3.x отправляет метрику пульса каждые 15 минут. Если для активации оповещений используется метрика пульса, можно увеличить частоту этого пульса:
{
"heartbeat": {
"intervalSeconds": 60
}
}
Примечание.
Интервал не может превышать 15 минут, так как данные пульса также используются для отслеживания использования Application Insights.
Проверка подлинности
Примечание.
Функция проверки подлинности находилась в общедоступном доступе, начиная с версии 3.4.17.
Аутентификацию можно использовать для настройки агента, чтобы генерировать учетные данные для токенов, необходимые для аутентификации Microsoft Entra. Дополнительные сведения см. в документации по проверке подлинности .
Прокси-сервер HTTP
Если приложение находится за брандмауэром и не может подключиться непосредственно к Application Insights, обратитесь к конфигурации доступа к конечной точке Azure Monitor и конфигурации брандмауэра.
Чтобы обойти эту проблему, можно настроить Application Insights Java 3.x для использования прокси-сервера HTTP.
{
"proxy": {
"host": "myproxy",
"port": 8080
}
}
Вы также можете задать http-прокси с помощью переменной APPLICATIONINSIGHTS_PROXYсреды, которая принимает формат https://<host>:<port>. Затем он имеет приоритет над прокси-сервером, указанным в конфигурации JSON.
Вы можете указать пользователя и пароль для прокси-сервера с помощью переменной APPLICATIONINSIGHTS_PROXY среды: https://<user>:<password>@<host>:<port>
Application Insights Java 3.x также учитывает глобальные https.proxyHost и https.proxyPort системные свойства, если они заданы, и http.nonProxyHostsпри необходимости.
Восстановление после сбоев приема
Если отправка телеметрии в службу Application Insights завершается сбоем, Application Insights Java 3.x сохраняет данные телеметрии на диск и продолжает повторять попытки с диска.
Ограничение по умолчанию для сохранения данных на диске составляет 50 МБ. Если у вас большой объем данных телеметрии или необходимо восстановление после более длительных перебоев с услугой приема данных, это ограничение можно увеличить начиная с версии 3.3.0.
{
"preview": {
"diskPersistenceMaxSizeMb": 50
}
}
Самодиагностика
"Самодиагностика" имеет отношение к внутреннему процессу ведения журналов Application Insights Java 3.x. Эта функция предназначена для выявления и диагностики проблем с Application Insights.
По умолчанию Application Insights Java 3.x начинает вносить данные в журнал на уровне INFO как для файла applicationinsights.log, так и для консоли, в соответствии со следующей конфигурацией:
{
"selfDiagnostics": {
"destination": "file+console",
"level": "INFO",
"file": {
"path": "applicationinsights.log",
"maxSizeMb": 5,
"maxHistory": 1
}
}
}
В предыдущем примере конфигурации:
-
level— может быть одно из:OFF,ERROR,WARN,INFO,DEBUGилиTRACE. -
path— может быть абсолютный или относительный путь. Относительные пути разрешаются относительно каталога, где находитсяapplicationinsights-agent-3.7.5.jar.
Начиная с версии 3.0.2, вы также можете установить самодиагностику level с помощью переменной APPLICATIONINSIGHTS_SELF_DIAGNOSTICS_LEVEL среды. Затем он имеет приоритет над уровнем самодиагностики, указанным в конфигурации JSON.
Начиная с версии 3.0.3, можно также задать расположение файла самодиагностики с помощью переменной APPLICATIONINSIGHTS_SELF_DIAGNOSTICS_FILE_PATH среды. Затем он имеет приоритет над путем к файлу самодиагностики, указанному в конфигурации JSON.
Корреляция данных телеметрии
Корреляция телеметрии включена по умолчанию, но ее можно отключить в конфигурации.
{
"preview": {
"disablePropagation": true
}
}
Пример
В этом примере показано, как выглядит файл конфигурации с несколькими компонентами. Настройте определенные параметры в зависимости от ваших потребностей.
{
"connectionString": "...",
"role": {
"name": "my cloud role name"
},
"sampling": {
"percentage": 100
},
"jmxMetrics": [
],
"customDimensions": {
},
"instrumentation": {
"logging": {
"level": "INFO"
},
"micrometer": {
"enabled": true
}
},
"proxy": {
},
"preview": {
"processors": [
]
},
"selfDiagnostics": {
"destination": "file+console",
"level": "INFO",
"file": {
"path": "applicationinsights.log",
"maxSizeMb": 5,
"maxHistory": 1
}
}
}