Длинное ведение журнала JSON обрезается в azure понимании приложения - PullRequest
0 голосов
/ 06 февраля 2020

Моя цель состоит в том, чтобы регистрировать запросы пользователей, используя информацию приложения azure, запросы конвертируются в формат JSON и затем сохраняются.

Иногда запрос пользователя может быть очень длинным, и он обрезается в представлении azure приложения, что приводит к недействительности JSON.

Под CustomDimensions это выглядит так:

trimmed json

Я использую пространство имен Microsoft.ApplicationInsights.TelemetryClient.

Это мой код:

var properties = new Dictionary<string, string>
{
    { "RequestJSON", requestJSON }
};
TelemetryClientInstance.TrackTrace("some description", SeverityLevel.Verbose, properties);

Я пересылаю эту перегрузку:

public void TrackTrace(string message, SeverityLevel severityLevel, IDictionary<string, string> properties);

1 Ответ

2 голосов
/ 07 февраля 2020

Согласно Trace Telemetry: модель данных Application Insights , для Пользовательские свойства , максимальная длина значения составляет 8192 .

В вашем В этом случае оно превышает ограничение.

Я могу представить 2 решения:

1. Запишите JSON в поле message при использовании метода TrackTrace. Сообщение трассировки Max length is 32768 characters может удовлетворить ваши потребности.

2. Разделите запрос JSON на более чем 1 пользовательский параметр, если его длина превышает 8192. Например, , если длина запроса JSON равна 2 * 8192, то вы можете добавить 2 обычных свойства: property RequestJSON_1 сохраняет первые 8192 данные, а property RequestJSON_2 сохраняет левые 8192.

При использовании Решение 2, вы можете легко использовать Kusto query, чтобы объединить property RequestJSON_1 и property RequestJSON_2 вместе, чтобы вы получили заполненные / действительные json данные.

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