Zidium

Исходные коды примеров находятся в архиве API

Для отправки данных в систему мониторинга Zidium будем использовать Zidium.Api.dll.

Настройки соединения задаются в файле Zidium.xml, который должен находится в корне папки приложения (где находится Global.asax). В файле необходимо указать имя аккаунта (AccountName) и секретный ключ (SecretKey), которые можно посмотреть в личном кабинете на странице Управление — Аккаунт.

В системе мониторинга Zidium приложение — это компонент. Интерфейс IComponentControl помогает выполнить отправку данных (ошибки, метрики, проверки, логи) в систему мониторинга от имени определенного компонента.

Сделаем статический класс ZidiumHelper, который предоставит удобный способ получить IComponentControl для нашего приложения.

    /// <summary>
    /// Хэлпер для отправки данных в Zidium
    /// </summary>
    public static class ZidiumHelper
    {
        private static IClient _client = null;
        private static IComponentControl _systemComponent = null;
        private static IComponentControl _webSiteComponent = null;
        public static IClient GetClient()
        {
            if (_client == null)
            {
                _client = new Client();
                _client.EventPreparer = new EventPreparer(); // заполняет свойства событий
            }
            return _client;
        }
        /// <summary>
        /// Возвращает компонент системы (Root => System)
        /// Компонент System показывает состояние информационной системы в целом
        /// Состояние системы вычисляется автоматически на основе состояния ее дочерних компонентов.
        /// <summary>
        public static IComponentControl GetSystemControl()
        {
            if (_systemComponent == null)
            {
                var client = GetClient();
                var parent = client.GetRootComponentControl();
                _systemComponent = parent.GetOrCreateChildComponentControl("Forecast.System", "System");
            }
            return _systemComponent;
        }
        /// <summary>
        /// Возвращает компонент веб-сайта (Root => System => WebSite)
        /// Компонент WebSite показывает состояние веб-сайта.
        /// Веб-сайт является частью информационной системы, 
        /// т.е. WebSite - это дочерний компонент System.
        /// </summary>
        public static IComponentControl GetWebSiteComponent()
        {
            if (_webSiteComponent == null)
            {
                var parent = GetSystemControl();
                _webSiteComponent = parent.GetOrCreateChildComponentControl("Forecast.WebSite", "WebSite");
            }
            return _webSiteComponent;
        }
    }

Чтобы проверить, что приложение успешно выполняет обмен данными с системой мониторинга Zidium, запустите приложение и откройте страницу "Проверка соединения".

Фрагмент кода страницы проверки соединения:

var client = ZidiumHelper.GetClient();
var response = client.ApiService.GetEcho("test");
if (response.Success)
{
        <p>Запрос успешно выполнен</p>
}
else
{
        <p>Запрос выполнен с ошибкой.</p>
        <p>Код ошибки: @response.Code</p>
        <p>Текст ошибки: @response.ErrorMessage</p>
}

Если в файле Zidium.xml верно указаны AccountName и SecretKey, то Вы увидите страницу примерно следующего вида: