Мониторинг приложений

Появляются вопросы пользователей по доступности приложений?
Непонятно в чём причина медленной работы приложения?

Приложение будет работать так, как задумывал разработчик

Архитектура системы мониторинга

В стандартный состав компонентов СМ app.telemetry входят следующие элементы:

  • физический или виртуальный cервер СМ app.telemetry;
  • агенты СМ app.telemetry;
  • веб-сервисы WebAPI;
  • клиент веб-браузера (располагается на сервере СМ).

Архитектура СМ представлена ниже.

 

Архитектура СМ app.telemetry.

На следующем рисунке приведен пример СМ app.telemetry, использующей разнородную среду:

Пример СМ app.telemetry, использующей разнородную среду

Сервер СМ app.telemetry

Сервер СМ app.telemetry является службой Microsoft Windows или процессом Linux (daemon) работающим на выделенном сервере и обеспечивающим управление СМ, и консолидацию данных телеметрии. Данная служба является центральным компонентом СМ app.telemetry. На сервере хранится полная конфигурация СМ, контролируется работа настроенных агентов СМ, осуществляется управление СМ, сессиями телеметрии, производится оценка данных телеметрии для определения производительности и доступности приложений. Доступ к управлению сервером СМ app.telemetry осуществляется через веб-сервер Apache или Microsoft IIS, который также выполняется на сервере СМ. Поддерживаемыми методами аутентификации в СМ являются встроенная аутентификация в ОС Microsoft Windows (для платформ Windows) и базовая локальная аутентификация в СМ.

Сервер СМ app.telemetry может быть установлен на одной из следующих платформ:

  • Microsoft Windows Server 2003 SP2 (x86 или x64);
  • Microsoft Windows Server 2008 R2 SP1 (x64);
  • Red Hat Enterprise Linux 5.5 (x64);
  • CentOS 5.5 (x64).

Агент СМ app.telemetry

Агент СМ app.telemetry является службой Microsoft Windows или Linux процессом (daemon), который отвечает за предоставление данных телеметрии серверу СМ app.telemetry. Агент устанавливается на оконечные системы, с которых необходима организация передачи данных телеметрии о производительности и доступности приложений подлежащих мониторингу на сервер СМ.

Агенты СМ app.telemetry устанавливается на следующие платформы:

  • Microsoft Windows Server 2003 SP2 (x86 или x64);
  • Microsoft Windows Server 2008 (x64);
  • Microsoft Windows Server 2008 SP1 (x64) ;
  • Microsoft Windows Server 2008 SP2 (x64);
  • Microsoft Windows Server 2008 R2 (x64);
  • Microsoft Windows Server 2008 R2 SP1 (x64) ;
  • Red Hat Enterprise Linux 5.1 (x64);
  • Red Hat Enterprise Linux 5.2 (x64);
  • Red Hat Enterprise Linux 5.3 (x64);
  • Red Hat Enterprise Linux 5.4 (x64);
  • Red Hat Enterprise Linux 5.5 (x64);
  • CentOS 5.2 (x64);
  • CentOS 5.3 (x64);
  • CentOS 5.4 (x64);
  • CentOS 5.5 (x64).

 

Веб-сервис WebAPI СМ app.telemetry 

Веб-сервис WebAPI размещается в дополнение к службам Apache или Microsoft Internet Information Services (IIS) и отвечает за передачу данных телеметрии от точек измерений на базе Java Script агенту СМ app.telemetry. Веб-сервис WebAPI должен быть установлен на системах, на которых располагается агент СМ. Установка WebAPI является необходимым условием для использования интеграции СМ на базе Java Script с оконечными приложениями, мониторинг которых требуется выполнить. Указанный веб-сервис  должен быть доступен для соответствующих веб-браузеров пользователей оконечного приложения. Веб-сервис может быть установлен на всех платформах поддерживаемых агентом СМ.

Клиент СМ app.telemetry 

Клиент СМ app.telemetry является клиентом веб-браузера, предоставляющим функционал СМ app.telemetry пользователям. Клиент использует стандартные протоколы HTTP/HTTPS для доступа к серверу СМ app.telemetry.

Описание функций и возможностей СМ app.telemetry 

Функции мониторинга производительности приложений (Application Performance Monitoring).

CМ app.telemetry поддерживает работу IT персонала при эксплуатации критичных приложений в производственных средах – от рабочий станций до центров обработки данных.

Оценка качества работы приложений со стороны пользователя (End-User Experience Monitoring) - CМ app.telemetry предоставляет в реальном времени оценку производительности приложений со стороны рабочих станциях и мобильных устройств пользователей, включая время обработки запросов на серверах приложений и время загрузки web-страниц приложения для быстрого анализа проблем. 

Создание профилей транзакций пользователей при обращении к приложениям (Application Transaction Profiling) - отслеживание пути прохождения и компонентов транзакции через стек приложения, серверы и другие элементы, включая устройства пользователей, и обнаружение критичных горячих точек вносящих задержку. Создание профилей транзакций показывает, где и когда производилась обработка транзакции. Это позволяет более точно определить узкие места.  СМ app.telemetry содержит модули для веб-сервисов Apache и Microsoft IIS, а также поддерживает динамические точки измерений Java. Возможен выбор одного из нескольких доступных способов интеграции с приложением подлежащим мониторингу.

Глубокий мониторинг компонентов приложений (Application Component Deep-Dive Monitoring) - СМ app.telemetry обеспечивает глубокое проникновение в данные и потоки транзакций критичных приложений насколько это требуется для эффективной диагностики проблем производительности приложений.

Мониторинг компонентов инфраструктуры (Infrastructure Component Monitoring) - CМ app.telemetry содержит функции мониторинга ресурсов и их загруженности, состояния и доступности ресурсов, функции автоматического уведомления и другие функции для обеспечения классического системного управления.

Отчетность и анализ в реальном времени (Online Reports and Analyses) - детализация отчетов TOP-10 позволяет выполнить полный анализ использования приложения в различных видах (направлениях) для быстрой диагностики проблем производительности приложения.

Функции управления уровнем предоставления сервисов (Service Level Management)

Успешное предоставление IT сервисов требует высокой доступности и оптимального временного отклика приложений предоставляющих эти сервисы. Возникновение любых колебаний, отрицательных тенденций и неожиданных обстоятельств требуют быстрого и профессионального действия по устранению.

Панели мониторов cостояния (Dashboards) СМ app.telemetry предоставляют  отчеты для управления и эксплуатации приложений с самой актуальной информацией в режиме реального времени, включая доступность приложений  и оценку их производительности со стороны конечного пользователя, для принятия решений и выполнения действий по управлению, обслуживанию наиболее критичных приложений.  

Панели мониторов управления (Management Dashboards) - панели мониторов управления предоставляют информацию о текущем состоянии уровня сервиса, информацию о времени отклика приложений  при обращении к ним с рабочих станций и данные об использовании ключевых критичных приложений. 

Мониторинг доступности и производительности (Performance and Availability Monitoring) - СМ app.telemetry обеспечивает непрерывный мониторинг индикаторов производительности относящихся к уровню предоставления сервиса и автоматически информирует эксплуатирующий персонал о любых колебаниях показателей. 

Функция указания периодов предоставления сервиса (Core Time and Maintenance) - вычисление уровня предоставления сервиса основано на индивидуальных рабочих часах предоставления сервиса (работы приложения) с возможностью настройки времени эксплуатации - 24 часа/7 дней в неделю и 9 часов/5 дней в неделю, времени рабочих периодов и специального обслуживания и плановых отключений.   

Обработка реальных транзакций (Facts - based on real Transactions) - СМ app.telemetry не основана на подходе ориентированным на обработку синтетических транзакций, СМ работает с реальными транзакциями пользователей к приложениям.  

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

Функции связи с технической поддержкой (Helpdesk Support). Использование обратной связи пользователей, позволяет быстро решать инциденты и экономить время, которое могло быть затрачено на воспроизведение проблемы.

Прямая обратная связь с пользователями (Direct Feedback from Customers and Users) - функция позволяет пользователям приложений обратиться в техподдержку непосредственно из приложения, с которым они работают, приложить снимок экрана, системную информацию и 10 последних выполненных транзакций к приложению.

Анализ проблем без сценария их воспроизведения (Problem Analysis without Reproduction Scenario) - СМ app.telemetry предоставляет возможность службе техподдержки напрямую анализировать транзакции к приложениям, связанные с вызванной проблемой без необходимости создания и воспроизведения сценария проблемы.

Автоматические уведомления службы техподдержки (Automatic Helpdesk Notifications) - СМ app.telemetry автоматически отправляет уведомления пользователей о работе приложения в службу техподдержки и подкрепляет их сопутствующей технической информацией о проблеме.

Коннекторы для связи с линией сервисной поддержки (Support Service Desk Connectors) - коннекторы для связи с линией сервисной поддержки упрощают общение с порталами поддержки (т.е. службой сервиса Fabasoft) и оптимизируют обработку инцидентов для удовлетворения нужд Заказчиков и пользователей.

 

Методы интеграции СМ app.telemetry с приложениями подлежащими мониторингу

СМ аpp.telemetry выполняет обработку данных телеметрии о производительности и доступности поступающими от оконечного приложения, мониторинг которого производится. Следующие методы интеграции могут использоваться для предоставления данных телеметрии СМ app.telemetry:

  • использование предопределенных модулей или фильтров для стандартных веб-серверов (см. п. «Модули мониторинга веб-сервисов»);
  • внедрение точек измерений в исходный код оконечных приложений (см. п. «Набор средств разработки app.telemetry (SDK)»);
  • настройка точек измерений для приложений, использующих виртуальную машину Java (см. п. «Динамическое оснащение точками измерений виртуальной машины Java»);
  • использование встроенных точек измерений стандарта ARM в оконечном приложении при их наличии (см. п. «Иcпользование встроенных точек измерений стандарта ARM»).

Модули мониторинга веб-сервисов

СМ app.telemetry поставляется с модулями мониторинга для служб Apache и Microsoft IIS. Эти модули уже содержат встроенные точки измерений и могут быть установлены или встроены в службы Apache и Microsoft IIS (см.Рисунок 2-4).

Общая схема интеграции СМ со службами IIS/Apache с использованием модуля мониторинга веб-сервисов.

Модули мониторинга веб-сервисов позволяют выполнить быстрый обзор временных характеристик отклика веб-приложения (на базе Apache или Microsoft IIS) на уровне веб-сервера, за исключением данных телеметрии о производительности приложения.

Набор средств разработки app.telemetry SDK 

Для оснащения точками измерений оконечных приложений возможно использование средств разработки app.telemetry SDK. В настоящий момент это наиболее мощный метод интеграции, но требующий внесения изменений в исходный код оконечного приложения. Используя app.telemetry SDK разработчики приложений могут вручную встроить точки измерений в исходный код оконечного приложения подлежащего мониторингу. Данный метод интеграции также требует пересборки/перекомпиляции и переустановки оконечного приложения. Общая схема интеграции оконечного приложения с использованием средств app.telemetry SDK представлена ниже.

Общая схема интеграции оконечного приложения с использованием средств app.telemetry SDK.

Набор средств разработки app.telemetry SDK для языков программирования С/С++, С# и Java доступен для всех платформ поддерживаемых агентами app.telemetry и следующих интерфейсов:  

      - Microsoft Visual Studio 2010 (платформы Microsoft Windows);

      - Gcc 4.1.2 (платформы Linux);

      - SUN Java Development Kit (JDK) 6.

C набором средств разработки app.telemetry SDK для Javascript, разработчики приложений могут вручную встроить точки измерений в клиентскую часть Javascript оконечного приложения подлежащего мониторингу. Этот способ интеграции также требует развертывания заново затронутых клиентских скриптов, но позволяет в дальнейшем использовать метод мониторинга, оценивающий работы качество приложения со стороны конечного пользователя, включающий оценку производительности и доступности приложения. Общая схема данного метода интеграции представлена ниже.

Общая схема интеграции серверной и клиентской частей оконечного приложения с использованием средств app.telemetry SDK.

Набор средств разработки app.telemetry SDK для Javascript доступен для всех платформ поддерживаемых агентами app.telemetry и протестирован также на следующих дополнительных клиентских платформах:

  • Microsoft Windows XP SP2 (x86);
  • Microsoft Windows XP SP3 (x86);
  • Microsoft Windows Vista SP1 (x86);
  • Microsoft Windows Vista SP2 (x86);
  • Microsoft Windows 7 (x86 и x64);
  • Microsoft Windows 7 SP1 (x86 и x64).

Набор средств разработки app.telemetry SDK для Javascript поддерживает интерфейсы Javascript следующих веб-браузеров:

  • Microsoft Internet Explorer 7;
  • Microsoft Internet Explorer 8;
  • Microsoft Internet Explorer 9;
  • Firefox 3.5.3;
  • Firefox 3.6;
  • Firefox 4.0.

Динамическое оснащение точками измерений виртуальной машины Java 

CМ app.telemetry может получать данные о производительности (события) от приложений работающих в среде Java через интерфейс JVMTI. СМ позволяет выполнить настройку точек измерений Java. При использовании данного метода интеграции не требуется изменение исходного кода приложения подлежащего мониторингу. Общая схема интеграции оконечных приложений подлежащих мониторингу с использованием метода динамического оснащения точками измерений виртуальной машины Java представлена ниже.

Общая схема интеграция СМ app.telemetry с оконечными приложениями с использованием средств Java

Для использования данного метода интеграции модули СМ app.telemetry должны загружаться во время запуска виртуальной машины Java.

Настройка точек измерений производится с использованием клиента СМ app.telemetry. Для каждого метода Java используется отдельная точка измерений. Метод Java идентифицируется классом пакет/объект и определенным вызовом метода (сочетание имени метода и списка параметров). При любом изменении настроек точек измерений необходим перезапуск виртуальной машины Java.

Иcпользование встроенных точек измерений стандарта ARM 

Приложения, подлежащие мониторингу, содержащие встроенные точки измерений  стандарта ARM могут предоставлять данные телеметрии на сервер СМ app.telemetry с использованием интерфейса ARM (Application Response Measurement – измерение отклика приложения). ARM является открытым стандартом для мониторинга и диагностики узких мест производительности сложных корпоративных и производственных приложений использующих архитектуру, ориентированную на предоставление сервисов, а также приложений состоящих из отдельных компонентов не интегрированных между собой. Стандарт ARM впервые был опубликован  в декабре 1997 года производственным конcорциумом «Open Group» включающим в себя более 400 организаций. Стандарт включает в себя интерфейс API для языков программирования С++, Java, который позволяет сопоставлять отсчеты времени с каждым шагом обработки транзакции и отправлять эту информацию на удаленный сервер для дальнейшего анализа. СМ app.telemetry может использоваться  для отслеживания и анализа отдельных запросов внутри сложной и гетерогенной инфраструктуры приложений оснащенных точками измерений стандарта ARM. Общая схема интеграции с использованием стандарта ARM представлена ниже.

Общая схема интеграции СМ app.telemetry c приложением подлежащим мониторингу с использованием стандарта ARM

СМ app.telemetry содержит поддержку стандарта ARM для всех платформ, на которых способны работать агенты СМ, а также следующие привязки к:

  • ARM 4.1 C;
  • ARM 4.0 Java.