Skip to content
GitLab
  • Menu
Projects Groups Snippets
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
  • Sign in / Register
  • N noc
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Locked Files
  • Issues 450
    • Issues 450
    • List
    • Boards
    • Service Desk
    • Milestones
    • Iterations
    • Requirements
  • Merge requests 26
    • Merge requests 26
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
    • Test Cases
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages & Registries
    • Packages & Registries
    • Package Registry
    • Container Registry
    • Infrastructure Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Code review
    • Insights
    • Issue
    • Repository
  • External wiki
    • External wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • noc
  • noc
  • Issues
  • #1437
Closed
Open
Created Nov 03, 2020 by Dmitry Volodin@dvOwner

Measurement Units

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

На настоящий момент существует поле MetricType.measure, которое содержит текстовое описание единицы измерения для отображения в Grafana. Поле не нормализовано и назрела необходимость унифицировать их в общий справочник, который также смогут использовать и сенсоры.

Предлагаемая реализация

Добавляется коллекция pm.measureunits со следующими полями:

  • id
  • uuid
  • name - название единицы
  • description - описание
  • label - краткая метка
  • dashboard_label - метка для дашбордов
  • scale_type - правила масштабирования (десятичные/бинарные)
    • d - decimal
    • b - binary (kilobit, etc)
  • alt_units - альтернативные единицы измерения
    • name - название
    • description - описание
    • label - краткая метка
    • dashboard_label - метка для дашбордов
    • from_primary - формула перевода из базовой единицы в альтернативную
    • to_primary - формула перевода из альтернативной единицы в базовую
  • enum - Перечислимые типы
    • key - ключ в виде строки, регистронезависимый
    • value - значение в виде целого числа

Единицы измерения

  • Единица
  • Секунда
  • Метр
  • Квадратный метр
  • Кубический метр
  • Вольт AC
  • Вольт DC
  • Ампер
  • Ватт
  • Градус Цельсия
  • Относительная влажность
  • Герц
  • Обороты в минуту (RPM)
  • Поток воздуха (куб. м в секунду)
  • Уровень логарифмический (dB)
  • Уровень логарифмический по отношению к 1mW (dBm)
  • Байт
  • Бит/с
  • Пакеты в секунду
  • Счетчик (количество срабатываний)
  • Перечислимый тип

Альтернативные единицы

Единица измерения может иметь несколько альтернативных единиц. Например:

  • Метры - футы, мили морские, мили английские
  • Градус цельсия - Градусы Кельвина и Фаренгейта

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

Альтернативные единицы перечисляются в поле alt_units. Формулы пересчета задаются в виде шаблона выражения python, где исходный параметр обозначен тегом x.

Пример для градусов Фаренгейта:

  • from_primary - (x - 32.0) * 5.0 / 9.0
  • to_primary - x * 9.0 / 5.0 + 32.0

Перечислимые типы

В случае, когда сенсор выдает набор перечислимых состояний, можно использовать перечислимые типы. Например, для сенсора с состояниями Ok, Warning, Error можно использовать значения enum

Key Value
Ok 0
Warning 1
Error 2

MetricType.measure

Поле measure заменяется на два:

  • measure - ссылка на единицу измерения
  • scale - масштаб
Edited Dec 02, 2020 by Dmitry Volodin
Assignee
Assign to
Time tracking