Анализ журналов и метрик на основе параметров диагностики

Эта статья применима к: ✔️ Java ✔️ C#

Используя функции диагностики Azure Spring Cloud, можно анализировать журналы и метрики с помощью любой из следующих служб:

  • Используйте Azure Log Analytics, где данные записываются в службу хранилища Azure. При экспорте журналов в Log Analytics возникает задержка.
  • Сохранение журналов в учетной записи хранения для аудита или проверки вручную. Можно указать время хранения (в днях).
  • Потоковая передача журнала в концентратор событий для приема сторонней службой или пользовательским аналитическим решением.

Выберите категорию журнала и категорию метрики, которые требуется отслеживать.

Совет

Требуется просто выполнить потоковую передачу журналов? Ознакомьтесь с этой командой Azure CLI!

Журналы

Журнал Описание
ApplicationConsole Журнал консоли всех клиентских приложений.
SystemLogs В настоящее время в этой категории содержатся только журналы Config Server Spring Cloud.
ингресслогс Журналы входящих данных всех приложений клиента, доступ только к журналам.

Метрики

Полный список метрик см. в статье о метриках Spring Cloud.

Перед началом работы, включите одну из этих служб для получения данных. Дополнительные сведения о настройке Log Analytics см. в разделе Начало работы со службой Log Analytics в Azure Monitor.

Настройка параметров диагностики

  1. Перейдите к экземпляру своей службы Azure Spring Cloud на портале Azure.

  2. Выберите параметры диагностики, а затем нажмите кнопку Добавить параметр диагностики.

  3. Введите имя для параметра, а затем выберите назначение для отправки журналов. Можно выбрать любое сочетание трех следующих вариантов:

    • Архивировать в учетной записи хранения.
    • Передать в концентратор событий.
    • Отправить в Log Analytics.
  4. Выберите категорию журнала и метрики, которые требуется отслеживать, и укажите время хранения (в днях). Время хранения применяется только к учетной записи хранения.

  5. Щелкните Сохранить.

Примечание

  1. Между передачей журналов и метрик и их появлением в учетной записи хранения, в концентраторе событий или Log Analytics может пройти до 15 минут.
  2. Если экземпляр Azure Spring Cloud удален или перемещен, операция не будет выполняться каскадно для ресурсов параметров диагностики. Ресурсы параметров диагностики следует удалить вручную перед операцией с их родительским элементом, то есть с экземпляром Azure Spring Cloud. В противном случае, если новый экземпляр Azure Spring Cloud подготовлен к работе с тем же идентификатором ресурса, что и удаленный, или если экземпляр Azure Spring Cloud перемещен обратно, предыдущие ресурсы параметров диагностики продолжают расширять его.

Просмотр журналов и метрик

Существуют различные методы просмотра журналов и метрик, описанные в следующих разделах.

Использование колонки "Журналы"

  1. Перейдите к экземпляру своей службы Azure Spring Cloud на портале Azure.

  2. Чтобы открыть панель Поиск по журналам, выберите Журналы.

  3. В поле поиска Таблицы,

    • чтобы просмотреть журналы, введите простой запрос, например:
    AppPlatformLogsforSpring
    | limit 50
    
    • чтобы просмотреть метрики, введите простой запрос, например:
    AzureMetrics
    | limit 50
    
  4. Чтобы просмотреть результат поиска, выберите Выполнить.

Использование Log Analytics

  1. На портале Azure на левой панели выберите Log Analytics.

  2. Выберите рабочую область Log Analytics, которая была выбрана при добавлении параметров диагностики.

  3. Чтобы открыть панель Поиск по журналам, выберите Журналы.

  4. В поле поиска Таблицы,

    • чтобы просмотреть журналы, введите простой запрос, например:
    AppPlatformLogsforSpring
    | limit 50
    
    • чтобы просмотреть метрики, введите простой запрос, например:
    AzureMetrics
    | limit 50
    
  5. Чтобы просмотреть результат поиска, выберите Выполнить.

  6. В журналах можно выполнять поиск конкретного приложения или экземпляра, задав условие фильтра:

    AppPlatformLogsforSpring
    | where ServiceName == "YourServiceName" and AppName == "YourAppName" and InstanceName == "YourInstanceName"
    | limit 50
    

    Примечание

    == учитывает регистр, а =~ — нет.

Дополнительные сведения о языке запросов, который используется в Log Analytics, см. в статье Запросы журналов Azure Monitor. Чтобы запросить все журналы Log Analytics из централизованного клиента, ознакомьтесь со статьей Azure Data Explorer.

Использование учетной записи хранения

  1. На портале Azure найдите Учетные записи хранения на левой панели навигации или в поле поиска.
  2. Выберите учетную запись хранения, выбранную при добавлении параметров диагностики.
  3. Чтобы открыть панель Контейнер BLOB-объектов, выберите BLOB-объекты.
  4. Чтобы просмотреть журналы приложений, найдите контейнер с именем insights-logs-applicationconsole.
  5. Чтобы просмотреть журналы метрик, найдите контейнер с именем insights-metrics-pt1m.

Дополнительные сведения об отправке диагностических сведений в учетную запись хранения см. в статье о хранении и просмотре данных диагностики в службе хранилища Azure.

Использование концентратора событий

  1. На портале Azure найдите Концентраторы событий на левой панели навигации или в поле поиска.

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

  3. Чтобы открыть панель Список концентраторов событий, выберите Концентраторы событий.

  4. Чтобы просмотреть журналы приложений, найдите концентратор событий с именем insights-logs-applicationconsole.

  5. Чтобы просмотреть журналы метрик, найдите концентратор событий с именем insights-metrics-pt1m.

Дополнительные сведения об отправке диагностических сведений в концентратор событий см. в статье о потоковой передаче данных Диагностики Azure по критическому пути с помощью Центров событий.

Анализ журналов

Azure Log Analytics работает с подсистемой Kusto. Таким образом можно запрашивать журналы для анализа. Краткие сведения о запросах журналов с помощью Kusto см. в руководстве по Log Analytics.

Журналы приложений предоставляют важные сведения и подробные журналы, относящиеся к работоспособности приложения, его производительности и многому другому. В следующих разделах приведены несколько простых запросов, которые помогут вам лучше понять текущее и предыдущее состояния приложения.

Отображение журналов приложений в Azure Spring Cloud

Чтобы просмотреть список журналов приложений из Azure Spring Cloud, отсортированный по времени, начиная с самых последних журналов, выполните следующий запрос:

AppPlatformLogsforSpring
| project TimeGenerated , ServiceName , AppName , InstanceName , Log
| sort by TimeGenerated desc

Отображение записей журналов, содержащих ошибки или исключения

Чтобы просмотреть несортированные записи журнала, в которых упоминается ошибка или исключение, выполните следующий запрос:

AppPlatformLogsforSpring
| project TimeGenerated , ServiceName , AppName , InstanceName , Log
| where Log contains "error" or Log contains "exception"

Этот запрос позволяет искать ошибки или менять условия запроса таким образом, чтобы находить конкретные исключения или коды ошибки.

Отображение количества ошибок и исключений, о которых сообщило приложение за последний час

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

AppPlatformLogsforSpring
| where TimeGenerated > ago(1h)
| where Log contains "error" or Log contains "exception"
| summarize count_per_app = count() by AppName
| sort by count_per_app desc
| render piechart

Отображение записей журнала входящих данных, содержащих конкретный узел

Чтобы проверить записи журнала, созданные конкретным узлом, выполните следующий запрос:

AppPlatformIngressLogs
| where TimeGenerated > ago(1h) and Host == "ingress-asc.test.azuremicroservices.io" 
| project TimeGenerated, RemoteIP, Host, Request, Status, BodyBytesSent, RequestTime, ReqId, RequestHeaders
| sort by TimeGenerated

Используйте этот запрос, чтобы найти ответ Status , RequestTime и другие свойства журналов входящих данных конкретного узла.

Отображение записей журнала входящих данных для определенного ИД запроса

Чтобы проверить записи журнала для определенного requestId значения <request_ID> , выполните следующий запрос:

AppPlatformIngressLogs
| where TimeGenerated > ago(1h) and ReqId == "<request_ID>" 
| project TimeGenerated, RemoteIP, Host, Request, Status, BodyBytesSent, RequestTime, ReqId, RequestHeaders
| sort by TimeGenerated

Дополнительные сведения о запросах журналов приложений

Azure Monitor предоставляет широкую поддержку запросов журналов приложений с помощью Log Analytics. Дополнительные сведения об этой службе см. в статье Начало работы с запросами журналов Azure Monitor. Дополнительные сведения о создании запросов для анализа журналов приложений см. в статье об общих сведениях о запросах журналов в Azure Monitor.

Часто задаваемые вопросы

Разделы справки преобразовать многострочные трассировки стека Java в одну строку?

Существует обходной путь для преобразования многострочных трассировок стека в однострочные. Можно изменить выходные данные журнала Java, чтобы переформатировать сообщения трассировки стека, заменив символы новой строки маркером. При использовании библиотеки Java Logback можно переформатировать сообщения трассировки стека, добавив %replace(%ex){'[\r\n]+', '\\n'}%nopex следующим образом:

<configuration>
    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>
                level: %level, message: "%logger{36}: %msg", exceptions: "%replace(%ex){'[\r\n]+', '\\n'}%nopex"%n
            </pattern>
        </encoder>
    </appender>
    <root level="INFO">
        <appender-ref ref="CONSOLE"/>
    </root>
</configuration>

Затем можно заменить маркер символами новой строки в Log Analytics, как показано ниже:

AppPlatformLogsforSpring
| extend Log = array_strcat(split(Log, '\\n'), '\n')

Эту стратегию можно использовать и для других библиотек журналов Java.

Дальнейшие действия