Можно ли использовать журналы для отправки отчетов в Azure Application Insights через определенные промежутки времени из-за прерывистого сетевого подключения - PullRequest
0 голосов
/ 11 октября 2019

Из документации неясно, как Azure Application Insights отправляет обратно в облачную службу Azure.

Единственная документация, которая дает подсказку, не объясняет, как именно это работает. Я думаю, что сделать планирование немного сложнее, так это то, что служба мониторинга Azure - это одна часть, а служба телеметрии реального приложения, применяемая с помощью кода, - это еще одна часть, составляющая целое.

Вот оператор из этой документации:

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

Каналы телеметрии, которые используют локальное хранилище, создают временные файлы в каталогах TEMP или APPDATA, которые ограничены определенной учетной записью, на которой работает ваше приложение. Это может произойти, когда конечная точка была временно недоступна или вы достигли предела регулирования. Как только эта проблема будет решена, телеметрический канал возобновит отправку всех новых и постоянных данных.

Для наших целей планируется использовать Azure Application Insights, но подключение будет нестабильным или «запланированным» вЛучший. Т.е. каждые 12 или 24 часа.

Есть ли способ планирования, когда служба фактически проверяется и используется, или есть способ просто отправлять «журналы» через определенные промежутки времени?

Если нет, то что вообще происходит с прерывистой / прерывистой связью?

1 Ответ

1 голос
/ 13 октября 2019

ServerTelemetryChannel, то есть тот, который хранит данные в локальном хранилище, будет хранить данные в течение до 24 часов и передавать, как только получит соединение. Если нет подключения дольше, чем это, он будет продолжать пытаться, но он не будет передавать ничего старше 24 часов, как только он получит соединение. Существует также ограничение размера хранилища в 50 МБ. Если вы можете надежно отправлять данные один раз каждые 12 часов, у вас все будет в порядке, но нет простого способа определить, когда все данные были переданы, поэтому запланированное соединение должно быть достаточно длинным, чтобы можно было передавать все данные. .

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

Последний вариант - сохранить журналы в локальном хранилище с помощью других средств и затем импортировать их. в Azure Monitor. Data Collector API находится в предварительном просмотре, но он позволяет импортировать данные в Azure Monitor по любому графику, который вы хотите, при условии, что он отправляется со схемой, понятной Monitor.

...