Объектные метрики и трассировка#

В документе описана работа с объектными метриками и трассировками для разработчиков: как регистрировать кастомные показатели в коде, как получать и использовать их в прикладной логике, какие имена и атрибуты доступны для мониторинга.
Материал отвечает на вопросы: как создать метрику или трассировку, какие ограничения на имена существуют, как правильно получить значение метрики, какие готовые имена использовать в запросах.

Регистрация метрик и трассировок#

Регистрация метрики#

Чтобы создать метрику, зарегистрируйте запись в классе «Метрики объектов»:

val ropAcMetric = Btk_AcObjectMetricApi().register(
  idParent = Btk_AcObjectApi().findByMnemoCode("Btk_MenuTree"),
  sCode = "Btk_MenuTree_Metric_Test",
  sCaption = "Метрика динамического меню"
)

Внимание

Код метрики или трассировки должен быть не более 255 символов, начинаться с буквы и может содержать только специальные символы: _, ., -.

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

Использование метрики в коде#

Для использования метрики в прикладном коде получите метрику и увеличьте счётчик:

val longCounterOpt = Btk_TelemetryPkg().getAcObjectLongCounter(
  idUser = Btk_UserApi().getCurrentUserID(),
  idAcObjectMetric = ropAcMetric.idj
)

longCounterOpt.foreach(_.add(1))

Внимание

Методы получения метрик или трассировок возвращают монаду Option. Значение присутствует в контейнере только если на текущем пользователе включены настройки.

Регистрация трассировки#

Для использования трассировки применяются аналогичные методы. Регистрация происходит в классе Btk_AcObjectTrace.

Справочник имён и атрибутов#

Пользовательские метрики#

Имя

Описание

btk_item_telemetry_user_operation_exec_time

Гистограмма времени выполнения пользовательской операции.

btk_item_telemetry_user_operation_calls_successful_total

Счётчик количества успешных вызовов пользовательской операции.

btk_item_telemetry_user_operation_calls_failed

Счётчик количества вызовов пользовательской операции, которые завершились ошибкой.

btk_item_telemetry_user_operation_calls_total

Счётчик количества вызовов пользовательской операции.

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

Имя

Описание

btk_item_telemetry_user_operation_trace

Трассировка пользовательских операций.

Атрибуты для фильтрации:

  • solution — алиас БД;

  • solution.image — алиас SBT;

  • userName — логин пользователя;

  • session.secret — секретный ключ рабочего сеанса;

  • session.sid — идентификатор сессии;

  • work.session.sid — идентификатор рабочей сессии;

  • cluster.node — наименование кластерной ноды;

  • selection.name — системное наименование выборки;

  • selection.caption — наименование выборки;

  • oper.name — системное наименование операции;

  • oper.caption — наименование операции;

  • representation.name — системное наименование отображения;

  • form.name — системное наименование формы;

  • form.caption — наименование формы;

  • form.representation.name — системное наименование отображения формы.

Серверные метрики#

Имя

Описание

rpc_client_duration

Длительность выполнения RPC с точки зрения клиента.

rpc_server_duration

Длительность обработки RPC сервером.

rpc_transport_duration

Длительность передачи по сети (разница между rpc_client_duration и rpc_server_duration).

Объектные метрики#

Имя

Описание

file_storage_availability

Наличие доступа к файловому хранилищу (1 — есть доступ, 0 — нет доступа).

file_storage_write_speed

Скорость записи файлового хранилища.

config_manager_export_count

Количество экспортов конфигураций.

config_manager_import_count

Количество импортов конфигураций.

config_manager_errors_count

Количество ошибок при импорте конфигурации.

config_manager_fatal_error

Наличие фатальной ошибки при импорте конфигурации (1 — есть ошибка, 0 — нет ошибки).

license_file_expiry_days

Количество дней до истечения лицензии файла.

license_file_expired

Истёк ли срок лицензии файла (1 — срок истёк, 0 — срок не истёк).