Параметры конфигурации: Azure Monitor Application Insights для Java
В этой статье показано, как настроить Azure Monitor Application Insights для Java.
Строка подключения и имя роли
Строка подключения и имя роли являются наиболее распространенными параметрами, которые необходимо приступить к работе:
{
"connectionString": "...",
"role": {
"name": "my cloud role name"
}
}
Требуется строка подключения. Имя роли важно в любой момент, когда вы отправляете данные из разных приложений в один ресурс Application Insights.
Дополнительные сведения и параметры конфигурации приведены в следующих разделах.
Путь к файлу конфигурации
По умолчанию в Application Insights Java 3.x предполагается, что файл конфигурации будет называться applicationinsights.json
и находиться в том же каталоге, что и applicationinsights-agent-3.6.2.jar
.
Вы можете указать собственный путь к файлу конфигурации, используя один из следующих двух вариантов:
- Переменная среды
APPLICATIONINSIGHTS_CONFIGURATION_FILE
. applicationinsights.configuration.file
Java system property (свойство системы Java)
Если указать относительный путь, он разрешается относительно каталога, где applicationinsights-agent-3.6.2.jar
находится.
Кроме того, вместо использования файла конфигурации можно указать все содержимое конфигурации JSON с помощью переменной APPLICATIONINSIGHTS_CONFIGURATION_CONTENT
среды.
Connection string
Требуется строка подключения. Вы можете найти строка подключения в ресурсе Application Insights.
{
"connectionString": "..."
}
Вы также можете задать строка подключения с помощью переменной APPLICATIONINSIGHTS_CONNECTION_STRING
среды. Затем он имеет приоритет над строка подключения, указанной в конфигурации JSON.
Или можно задать строка подключения с помощью системного свойства applicationinsights.connection.string
Java. Он также имеет приоритет над строка подключения, указанной в конфигурации JSON.
Чтобы задать строку подключения, можно также указать файл, из которого ее нужно загрузить.
Если указать относительный путь, он разрешается относительно каталога, где applicationinsights-agent-3.6.2.jar
находится.
{
"connectionString": "${file:connection-string-file.txt}"
}
Файл должен содержать только строка подключения и ничего другого.
Не устанавливая строка подключения отключает агент Java.
Если у вас несколько приложений, развернутых на одной виртуальной машине Java (JVM) и хотите, чтобы они отправляли данные телеметрии в разные строка подключения, см. переопределения строк подключения (предварительная версия).
Имя облачной роли
Имя облачной роли используется для метки компонента на карте приложения.
Если вы хотите задать имя облачной роли:
{
"role": {
"name": "my cloud role name"
}
}
Если имя облачной роли не задано, имя ресурса Application Insights используется для метки компонента на карте приложения.
Также можно задать имя облачной роли с помощью переменной среды APPLICATIONINSIGHTS_ROLE_NAME
. Затем он имеет приоритет над именем облачной роли, указанным в конфигурации JSON.
Вы также можете задать имя облачной роли с помощью системного свойства applicationinsights.role.name
Java. Он также имеет приоритет над именем облачной роли, указанным в конфигурации JSON.
Если в одной виртуальной машине JVM развернуто несколько приложений и вы хотите, чтобы они отправляли данные телеметрии в разные имена облачных ролей, см. раздел Переопределения имен облачных ролей (предварительная версия).
Экземпляр облачной роли
Экземпляр облачной роли по умолчанию использует имя компьютера.
Если вы хотите задать для экземпляра облачной роли другое имя, а не имя компьютера:
{
"role": {
"name": "my cloud role name",
"instance": "my cloud role instance"
}
}
Можно также задать экземпляр облачной роли с помощью переменной APPLICATIONINSIGHTS_ROLE_INSTANCE
среды. Затем он имеет приоритет над экземпляром облачной роли, указанным в конфигурации JSON.
Или можно задать экземпляр облачной роли с помощью системного свойства applicationinsights.role.instance
Java.
Он также имеет приоритет над экземпляром облачной роли, указанным в конфигурации 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");
См. также: добавление настраиваемого свойства в диапазон.
Переопределения строк подключения (предварительная версия)
Эта функция предоставляется в предварительной версии, начиная с 3.4.0.
Переопределения строки подключения позволяют переопределить строка подключения по умолчанию. Например, доступны следующие возможности:
- Задайте один строка подключения для одного префикса
/myapp1
пути HTTP. - Задайте другой строка подключения для другого префикса
/myapp2/
пути HTTP.
{
"preview": {
"connectionStringOverrides": [
{
"httpPathPrefix": "/myapp1",
"connectionString": "..."
},
{
"httpPathPrefix": "/myapp2",
"connectionString": "..."
}
]
}
}
Переопределения имен облачных ролей (предварительная версия)
Эта функция предоставляется в предварительной версии начиная с 3.3.0.
Переопределения имен ролей облака позволяют переопределить имя облачной роли по умолчанию. Например, доступны следующие возможности:
- Задайте одно имя облачной роли для одного префикса
/myapp1
пути HTTP. - Задайте другое имя облачной роли для другого префикса
/myapp2/
пути HTTP.
{
"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></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"
}
]
}
}
Локальное отключение выборки приема (предварительная версия)
По умолчанию, если на ресурсе Application Insights настроена эффективная процентная доля выборки в агенте Java, а выборка приема будет настроена на ресурсе Application Insights, то будет применена процент приема выборки.
Обратите внимание, что это поведение применяется как к выборке фиксированной частоты 100 %, так и к ограниченной частоте выборки, если скорость запроса не превышает предел скорости (эффективно захватывая 100 % во время непрерывного скользящего периода времени).
Начиная с 3.5.3 вы можете отключить это поведение (и сохранить 100% телеметрии в этих случаях даже при настройке выборки приема в ресурсе Application Insights):
{
"preview": {
"sampling": {
"ingestionSamplingEnabled": false
}
}
}
Автоматически собранные журналы
Log4j, Logback, JBoss Log и java.util.log автоматически используются. Ведение журнала с помощью этих платформ ведения журнала выполняется автоматически.
Ведение журнала фиксируется только в том случае, если он:
- Соответствует заданному уровню для платформы ведения журнала.
- Кроме того, соответствует настроенного уровня для Application Insights.
Например, если платформа ведения журнала настроена для записи WARN
(и вы настроили ее, как описано выше) из пакета, а Application Insights настроена для записи (и настроена как описано), Application Insights записывает INFO
только WARN
(и более серьезные) из пакетаcom.example
com.example
.
Уровень по умолчанию, настроенный для Application Insights, — INFO
. Если вы хотите изменить этот уровень:
{
"instrumentation": {
"logging": {
"level": "WARN"
}
}
}
Вы также можете задать уровень с помощью переменной APPLICATIONINSIGHTS_INSTRUMENTATION_LOGGING_LEVEL
среды. Затем он имеет приоритет над уровнем, указанным в конфигурации JSON.
Эти допустимые level
значения можно использовать для указания в applicationinsights.json
файле. В таблице показано, как они соответствуют уровням ведения журнала в разных платформах ведения журнала.
Уровень | Log4j | Logback | JBoss | ИЮЛ |
---|---|---|---|---|
ВЫКЛ. | ВЫКЛ. | ВЫКЛ. | ВЫКЛ. | ВЫКЛ. |
FATAL | FATAL | ОШИБКА | FATAL | SEVERE |
ERROR (или SEVERE) | ОШИБКА | ОШИБКА | ОШИБКА | SEVERE |
WARN (или WARNING) | WARN | WARN | WARN | ПРЕДУПРЕЖДЕНИЕ |
INFO | INFO | INFO | INFO | INFO |
CONFIG | ОТЛАДКА | ОТЛАДКА | ОТЛАДКА | CONFIG |
DEBUG (или FINE) | ОТЛАДКА | ОТЛАДКА | ОТЛАДКА | FINE |
FINER | ОТЛАДКА | ОТЛАДКА | ОТЛАДКА | FINER |
TRACE (или FINEST) | ТРАССИРОВКА | ТРАССИРОВКА | ТРАССИРОВКА | 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
.
Чтобы отключить автозабор метрик микрометров и метрики 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 server 4xxx
По умолчанию 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_ENABLED
APPLICATIONINSIGHTS_INSTRUMENTATION_CASSANDRA_ENABLED
APPLICATIONINSIGHTS_INSTRUMENTATION_JDBC_ENABLED
APPLICATIONINSIGHTS_INSTRUMENTATION_JMS_ENABLED
APPLICATIONINSIGHTS_INSTRUMENTATION_KAFKA_ENABLED
APPLICATIONINSIGHTS_INSTRUMENTATION_LOGGING_ENABLED
APPLICATIONINSIGHTS_INSTRUMENTATION_MICROMETER_ENABLED
APPLICATIONINSIGHTS_INSTRUMENTATION_MONGO_ENABLED
APPLICATIONINSIGHTS_INSTRUMENTATION_RABBITMQ_ENABLED
APPLICATIONINSIGHTS_INSTRUMENTATION_REDIS_ENABLED
APPLICATIONINSIGHTS_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, обратитесь к IP-адресам, используемым Application Insights.
Чтобы обойти эту проблему, можно настроить 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.6.2.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
}
}
}