Понимание сердцебиения в ASP.NET мониторинг состояния здоровья

#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 — это не способ поддерживать работоспособность вашего приложения, а только для его мониторинга.