Spec-Zone.ru › OpenTSDB

/api/tree/rule

Каждая запись правила в дереве — это отдельный объект в хранилище, поэтому конечная точка /api/tree/rule позволяет легко изменить отдельное правило в наборе. Правила адресовываются по их tree ID, level и order, и все запросы требуют эти три параметра.

Примечание

Если где-то выполняется ручная синхронизация дерева или создается или редактируется большое количество объектов TSMeta, правило дерева может кэшироваться, и изменения в наборе правил дерева могут некоторое время не распространяться. Если вы внесли какие-либо изменения в набор правил, кроме метаинформации, такой как description и notes, возможно, вам потребуется очистить данные дерева и выполнить ручную синхронизацию, чтобы ветви и листья отражали новые правила.

Глаголы

  • GET - Получить одно или несколько правил
  • POST - Создать или изменить правило
  • PUT - Создать или заменить правило
  • DELETE - Удалить правило

Запросы

Следующие поля могут использоваться для всех запросов к конечной точке правил:

Имя Тип данных Обязательно Описание Значение по умолчанию QS RW Пример
treeId Целое число Обязательно Дерево, к которому относится запрашиваемое правило treeid RO 1
level Целое число Обязательно Уровень в иерархии правил, где находится правило. Должно быть 0 или больше. 0 level RW 2
order Целое число Обязательно Порядок внутри уровня, где находится правило. Должно быть 0 или больше. 0 order RW 1
description Строка Необязательно Краткое описание цели правила description RW Разделить метрику по точке
notes Строка Необязательно Подробные заметки о правиле notes RW
type Строка Обязательно* Тип представленного правила. См. Деревья. *Необходимо при создании нового правила. type RW METRIC
field Строка Необязательно Имя поля, для которого работает правило field RW host
customField Строка Необязательно Имя TSMeta пользовательского поля, для которого работает правило. Обратите внимание, что значение field также должно быть настроено, иначе будет возбуждено исключение. custom_field RW owner
regex Строка Необязательно Шаблон регулярного выражения для обработки связанного поля или значения пользовательского поля. regex RW ^.*\.([a-zA-Z]{3,4})[0-9]{0,1}\..*\..*$
separator Строка Необязательно Если значение поля необходимо разделить на несколько ветвей, укажите разделительный символ. separator RW \.
regexGroupIdx Целое число Необязательно Индекс группы для извлечения части шаблона из заданного шаблона регулярного выражения. Должно быть 0 или больше. 0 regex_group_idx RW 1
displayFormat Строка Необязательно Строка формата отображения для изменения display_name значения результирующей ветви или листа. См. Деревья display_format RW Порт: {ovalue}

Примечание

При предоставлении значения separator или значения regex, необходимо предоставить правильное регулярное выражение. Для разделителей наиболее распространенным применением является разделение метрик с точками на ветви. Например, вы можете разделить "sys.cpu.0.user" на ветви "sys", "cpu", "0" и "user". Нельзя указать только "." в качестве значения разделителя, так как это не будет соответствовать правильно. Вместо этого, экранируйте точку с помощью "\.". Обратите внимание, что если вы предоставляете JSON через запрос POST, вы также должны экранировать обратную косую черту и указать "\.". В ответах на запросы GET все обратные косые черты будут экранированы.

Ответ

Успешный ответ на запрос GET, POST или PUT вернет весь объект правила с необязательными запрошенными изменениями. Успешные вызовы DELETE вернут код состояния 204 и не будут содержать тела. При изменении данных, если изменений не было, т.е. вызов не предоставил данных для сохранения, ответом будет 304 без тела. Если запрошенного дерева или правила не было в системе, будет возвращен 404 с сообщением об ошибке. Если были предоставлены неверные данные, будет возвращена ошибка 400.

GET

Запрос GET требует определенного идентификатора дерева, уровня правила и порядка. В противном случае будет возвращен 400. Чтобы получить все правила для дерева, используйте конечную точку /api/tree со значением ``treeId'.

Пример запроса GET

http://localhost:4242/api/tree/rule?treeId=1&level=0&order=0

Пример ответа

{
  "type": "METRIC",
  "field": "",
  "regex": "",
  "separator": "\\.",
  "description": "Split the metric on periods",
  "notes": "",
  "level": 1,
  "order": 0,
  "treeId": 1,
  "customField": "",
  "regexGroupIdx": 0,
  "displayFormat": ""
}

POST/PUT

Используя методы POST или PUT, вы можете создать новое правило или изменить существующее. Для новых правил требуется значение type. Для существующих деревьев требуется действительный идентификатор treeId и любые поля, требующие изменения. Успешный запрос вернет измененный объект правила. Обратите внимание, что если правило существует на заданном уровне и в заданном порядке, любые изменения будут объединены или перезапишут существующее правило.

Пример запроса с параметрами

http://localhost:4242/api/tree/rule?treeId=1&level=0&order=0&type=METRIC&separator=\.&method_override=post

Пример запроса с телом

{
  "type": "METRIC",
  "separator": "\\.",
  "description": "Split the metric on periods",
  "level": 1,
  "order": 0,
  "treeId": 1
}

Пример ответа

{
  "type": "METRIC",
  "field": "",
  "regex": "",
  "separator": "\\.",
  "description": "Split the metric on periods",
  "notes": "",
  "level": 1,
  "order": 0,
  "treeId": 1,
  "customField": "",
  "regexGroupIdx": 0,
  "displayFormat": ""
}

DELETE

Использование метода DELETE удалит правило из дерева. Успешное удаление вернет код состояния 204 и не будет содержать тела. Если правило не существует, будет возвращена ошибка 404.

Предупреждение

Этот метод нельзя отменить.

Пример запроса DELETE

http://localhost:4242/api/tree/rule?treeId=1&level=0&order=0&method_override=delete

© 2010–2016 The OpenTSDB Authors
Licensed under the GNU LGPLv2.1+ and GPLv3+ licenses.
http://opentsdb.net/docs/build/html/api_http/tree/rule.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API