Кастомные сервисы

Материал из Документация Ключ-АСТРОМ

Применение Ключ-АСТРОМ / Сервисы / Кастомные сервисы

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

Ключ-АСТРОМ позволяет вам определить любой метод, класс или интерфейс в качестве точки входа в сервис, подлежащую мониторингу.

Пользовательская служба — это служба, в которой в качестве точки входа используется определенный вручную метод, класс или интерфейс.

Вы можете определить пользовательские службы для Java, .NET и PHP. Каждая пользовательская служба может содержать несколько точек входа.

Точками входа для вашей пользовательской службы могут быть методы определенного класса или реализации интерфейса. Каждый нерекурсивный запрос такого метода представляет собой один запрос к вашей пользовательской службе.

Делегирование метода

ЕдиныйАгент понимает концепцию делегирования методов и записывает только первый вызов в цепочке делегирования. Например, если у вас есть несколько методов, вызывающих друг друга, вы можете безопасно пометить все эти методы как точки входа — случаи, когда один метод напрямую вызывает другой, записываются как отдельные запросы.

Подавление делегирования

ЕдиныйАгент подавляет делегирование методов для каждого сервиса. То есть любые запросы между двумя методами одного сервиса не записываются. Если вам необходимо отслеживать такие запросы, вы должны создать для этого отдельную пользовательскую службу.

Сервисы Java и .NET

Для Java и .NET вы можете использовать поиск для выбора точки входа и методов или указать их вручную. Чтобы создать новый кастомный сервис Java или .NET:

Найти точку входа

  1. Откройте раздел Настройки > Обнаружение служб > Обнаружение пользовательских служб.
  2. Выполните одно из следующих действий:
    • Java - Откройте вкладку Сервисы Java и нажмите на кнопку Определить сервисы Java.
    • .NET - Откройте вкладку Сервисы .NET и нажмите на кнопку Определить .NET Services.
  3. Назовите свой пользовательский сервис.
  4. Нажмите на кнопку Найти точку входа.
  5. Найдите и выберите группу процессов, содержащую вашу точку входа.
  6. Выберите процесс, содержащий вашу точку входа, и нажмите на кнопку Продолжить.
  7. Найдите класс, который вы хотите инструментировать. Введите имя или часть имени, чтобы найти его.
  8. Выберите необходимый класс и нажмите на кнопку Продолжить.
  9. Определите, как вы хотите инструментировать класс. У вас есть два варианта:
    • Используйте выбранный класс только для инструментирования методов выбранного класса.
    • Используйте имплементированный интерфейс или суперкласс для инструментирования методов в любом интерфейсе или суперклассе в иерархии классов. В таких случаях выберите Наследование нагрузки, чтобы загрузить все доступные суперклассы и интерфейсы, а затем выберите тот, который вам нужен.
  10. Выберите методы, которые вы хотите инструментировать, а затем нажмите Завершить. На странице Обнаружение пользовательских служб отображаются вновь добавленные точка входа и методы.
  11. При необходимости добавьте больше точек входа.
  12. При необходимости ограничьте новую пользовательскую службу определенными группами процессов. См. раздел Ограничение пользовательской службы определенными группами процессов ниже.
  13. Просмотрите точку входа и методы, которые необходимо инструментировать.
  14. В правом нижнем углу страницы выберите Сохранить.

Указать точку входа вручную

  1. Откройте раздел Настройки > Обнаружение служб > Обнаружение пользовательских служб.
  2. Выполните одно из следующих действий:
    • Java - Откройте вкладку Сервисы Java и нажмите на кнопку Определить сервисы Java.
    • .NET - Откройте вкладку Сервисы .NET и нажмите на кнопку Определить .NET Services.
  3. Назовите свой пользовательский сервис.
  4. Нажмите на кнопку Определить точку входа вручную.
  5. В поле Полное название класса введите имя класса, содержащего методы, которые вы хотите инструментировать.
  6. Укажите методы, которые будут инструментироваться одним из двух способов:
    • Введите полное имя метода вручную.
    • Найдите методы в классе и выберите их:
      1. Нажмите на кнопку Поиск методов .
      2. Выберите группу процессов, содержащую вашу точку входа.
      3. Выберите методы, которые вы хотите инструментировать, а затем нажмите на кнопку Завершить.
  7. При необходимости добавьте дополнительные методы.
  8. При необходимости добавьте больше точек входа.
  9. Просмотрите точку входа и методы, которые необходимо инструментировать.
  10. При необходимости ограничьте новую пользовательскую службу определенными группами процессов. См. раздел Ограничить пользовательскую службу группами процессов ниже.
  11. В правом нижнем углу страницы нажмите на кнопку Сохранить.

PHP-сервисы

Для PHP вы можете использовать поиск для выбора точки входа и методов или указать их вручную. Чтобы создать новый пользовательский сервис PHP:

Найти точку входа

  1. Откройте раздел Настройки > Обнаружение служб > Обнаружение пользовательских служб.
  2. Выберите вкладку Сервисы PHP и нажмите на кнопку Определить сервисы PHP.
  3. Назовите свой пользовательский сервис.
  4. Нажмите на кнопку Найти точку входа.
  5. Найдите и выберите группу процессов, содержащую вашу точку входа.
  6. Выберите процесс, содержащий вашу точку входа, а затем нажмите на кнопку Продолжить.
  7. Найдите класс, который вы хотите инструментировать. Введите имя или часть имени, чтобы найти его.
  8. Выберите необходимый класс и нажмите на кнопку Продолжить.
  9. Выберите методы, которые вы хотите инструментировать, а затем нажмите Завершить. На странице Обнаружение пользовательских служб отображаются вновь добавленные точка входа и методы.
  10. При необходимости добавьте больше точек входа.
  11. При необходимости ограничьте новую пользовательскую службу определенными группами процессов. См. раздел Ограничение пользовательской службы определенными группами процессов ниже.
  12. Просмотрите точку входа и методы, которые необходимо инструментировать.
  13. В правом нижнем углу страницы нажмите на кнопку Сохранить.

Указать точку входа вручную

  1. Откройте раздел Настройки > Обнаружение служб > Обнаружение пользовательских служб.
  2. Выберите вкладку Сервисы PHP и нажмите на кнопку Определить сервисы PHP.
  3. Назовите свой пользовательский сервис.
  4. Нажмите на кнопку Определить точку входа вручную.
  5. В поле Имя файла введите полный путь к файлу PHP, содержащему методы, которые вы хотите инструментировать.
  6. В поле Полное название класса введите имя класса, содержащего методы, которые вы хотите инструментировать.
  7. В поле Методы введите имя метода, который вы хотите инструментировать.
  8. При необходимости выберите Добавить метод вручную и укажите дополнительные методы для инструментирования.
  9. При необходимости ограничьте новую пользовательскую службу определенными группами процессов. См. раздел Ограничение пользовательской службы определенными группами процессов ниже.
  10. После добавления всех методов выберите Сохранить в правом верхнем углу страницы.

Go сервисы

Чтобы создать новый пользовательский сервис Go через пользовательский интерфейс или API, см. раздел Пользовательские сервисы Go.

Приоритет пользовательских сервисов

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

Редактирование пользовательских сервисов

Вы можете редактировать любую пользовательскую службу в любое время. Чтобы изменения вступили в силу, необходимо перезапустить затронутые процессы, если только для Java и PHP не активированы обновления в реальном времени. Для .NET необходимо перезапустить процесс.

Чтобы отредактировать пользовательскую услугу, нажмите кнопку Редактировать в списке сдужб.

Вы можете активировать/деактивировать существующие точки входа, добавлять/удалять точки входа, добавлять/удалять методы в точках входа.

Вы также можете ограничить пользовательскую службу определенными группами процессов. См. раздел Ограничение пользовательской службы определенными группами процессов ниже.

Обновления в реальном времени

Обновления пользовательских служб Java и PHP можно применять практически в реальном времени, без перезапуска процессов. Чтобы активировать эту функцию, перейдите в раздел Настройки > Мониторинг серверных сервисов > Глубокий мониторинг > Обновления в режиме реального времени для служб Java и PHP и включите специальные настройки.

Ограничение пользовательской службы определенными группами процессов

Вы можете ограничить использование любой специальной службы определенными группами процессов. Правила специальных служб будут применяться только к указанным группам процессов и будут игнорироваться в других группах процессов. Вы можете ограничить пользовательскую услугу во время создания или отредактировать ее позже.

Чтобы ограничить пользовательскую услугу:

  1. На странице Обнаружение пользовательских служб или Редактировать службу разверните опцию Ограничьте правила пользовательских сервисов группами процессов.
  2. Нажмите на кнопку Добавить группу процессов.
  3. Выберите группу процессов, к которой вы хотите применить специальную службу.
  4. Нажмите на кнопку Добавить.
  5. В правом нижнем углу страницы Обнаружение пользовательских служб или Редактировать службу нажмите на кнопку Сохранить.