Как установить тайм-аут TelemetryClient для анализа приложений?

Я отправляю событие метрики приложения из клиентского приложения (.net), и мне интересно, могу ли я установить тайм-аут для TelemetryClient.Flush(), поскольку это синхронный вызов. (Приложение завершится, когда операция будет завершена, поэтому мне нужно принудительно выполнить вызов сброса, чтобы убедиться, что метрика отправлена).


person A.X.Z    schedule 17.07.2015    source источник
comment
1. Флеш не синхронный. Внутри он запускает задачу по отправке данных, накопленных в буфере 2. Не могли бы вы уточнить, чего вы хотите достичь? Зачем нужен таймер?   -  person Anastasia Black    schedule 17.07.2015
comment
Я читал это azure.microsoft.com/en-us/documentation/articles/, в котором говорится, что сброс является синхронным вызовом. Мое приложение завершится сразу после завершения основной операции, и я не хочу, чтобы вызов сброса влиял на продолжительность операции.   -  person A.X.Z    schedule 17.07.2015


Ответы (2)


Реализация метода сброса зависит от канала, который вы используете.

Если вы используете WebTelemetryChannel, который используется по умолчанию для веб-SDK (https://www.nuget.org/packages/Microsoft.ApplicationInsights.Web.TelemetryChannel/), чем Flush является асинхронным.

Если вы используете PersistenceChannel, который используется по умолчанию для SDK устройств (https://www.nuget.org/packages/Microsoft.ApplicationInsights.PersistenceChannel/), чем синхронизируется Flush. Как упомянул Изик, переопределения недоступны.

person Anastasia Black    schedule 29.07.2015
comment
Я думаю, что тот, который я вижу, это InMemoryChannel, вы знаете, как ведет себя этот? - person A.X.Z; 01.08.2015

Flush является блокирующей операцией и не поддерживает никакого тайм-аута по умолчанию, но вы всегда можете запустить новую задачу, запустить в ней Flush и ждите (с тайм-аутом) завершения этой задачи.

В качестве примечания, Flush не отправляет никаких телеметрических данных, а просто сохраняется на диске, поэтому он относительно быстр.

person izik lisbon    schedule 29.07.2015