#asp.net #diagnostics #health-monitoring
#asp.net #диагностика #мониторинг работоспособности
Вопрос:
Кто запускает событие? Каковы последствия / преимущества его включения, <healthMonitoring enabled="true" heartbeatInterval="30">
кроме того, что оно появляется каждые 30 секунд в журналах? Имеет ли это какое-либо отношение к сердцебиению NLB? Какой интервал лучше использовать для производственного использования?
Ответ №1:
Включение его таким образом в web.config приведет к тому, что домен приложения WebHeartbeatEvent
будет периодически вызывать (в вашем случае каждые 30 секунд), в основном, чтобы проверить, «все еще живо» ли ваше приложение (например, проверка сердцебиения человека). Вы можете указать дополнительные правила, подобные этому:
<healthMonitoring enabled="true" heartbeatInterval="100">
<rules>
<add name="Heart Beat Events"
eventName="Heartbeats"
provider="EventLogProvider"
profile="Default"
minInterval="00:01:00" />
</rules>
</healthMonitoring>
Указание « EventLogProvider
приведет к тому, что события будут записываться в журнал событий, но вы также можете написать своего собственного поставщика, см. Здесь .
Кстати, это не имеет ничего общего с сердцебиением NLB, которое используется только для целей балансировки нагрузки.
Комментарии:
1. Означает ли это, что мой пул приложений никогда не будет переработан, если период рециркуляции превышает интервал сердцебиения?
2. @UserControl: Что заставляет вас так думать?
3. Тогда я не понимаю, «чтобы проверить, является ли ваше приложение «все еще живым»». Итак, кто вызывает событие? ASP.NET рабочий процесс? Или это вызвано самим приложением? Если последнее и приложение простаивает, IIS переработает его, не так ли?
4. @UserControl: события вызываются доменом приложения. Так что да, я предполагаю, что пул приложений будет переработан IIS. HeartbeatInterval — это не способ поддерживать работоспособность вашего приложения, а только для его мониторинга.