Spec-Zone.ru › OpenTSDB

/api/tree

Деревья представляют метаданные, используемые для организации временных рядов в иерархической структуре для просмотра, подобно типичной файловой системе. Ряд конечных точек в корне /tree позволяют работать с различными данными, связанными с деревом:

Конечные точки API дерева

  • /api/tree/branch
  • /api/tree/collisions
  • /api/tree/notmatched
  • /api/tree/rule
  • /api/tree/rules
  • /api/tree/test

Конечная точка /tree позволяет создавать или изменять определение дерева. Определения деревьев включают конфигурацию и метаданные, доступные через эту конечную точку, а также набор правил, доступный через /tree/rule или /tree/rules.

Примечание

При создании дерева поле enabled будет установлено по умолчанию в значение false. После создания дерева необходимо добавить правила, а затем использовать конечную точку tree/test с несколькими TSUID, чтобы убедиться, что полученное дерево соответствует ожиданиям. После проверки результатов вы можете установить поле enabled в значение true, и новые объекты TSMeta или синхронизация дерева начнут заполнять ветви.

Глаголы

  • GET - Получить одно или несколько определений деревьев
  • POST - Изменить поля дерева
  • PUT - Заменить поля дерева
  • DELETE - Удалить результаты дерева и/или определение дерева

Запросы

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

Имя Тип данных Обязательно Описание По умолчанию QS RW Пример
treeId Целое число Обязательно* Используется для извлечения или изменения конкретного дерева. *При создании нового дерева значение tree не должно присутствовать. treeid RO 1
name Строка Обязательно* Краткое, описательное имя дерева. *Требуется только при создании дерева. name RW Инфраструктура сети
description Строка Необязательно Более подробное описание содержимого дерева description RW Дерево, содержащее все сетевое оборудование
notes Строка Необязательно Подробные заметки о дереве notes RW
strictMatch Булево Необязательно Указывает, должны ли временные ряды включаться в дерево, если они не соответствуют одному или нескольким уровням правил. false strict_match RW true
enabled Булево Необязательно Указывает, следует ли обрабатывать TSMeta через дерево. По умолчанию это установлено в false, чтобы вы могли настроить правила и протестировать некоторые объекты перед созданием ветвей. false enabled RW true
storeFailures Булево Необязательно Указывает, следует ли записывать коллизии и TSUID, которые не соответствуют правилам. Это может привести к очень широким записям. false store_failures RW true
definition Булево Необязательно Используется только при DELETE дерева. Если этот флаг установлен в true, то всё определение дерева будет удалено вместе со всеми ветвями, столкновениями и записями несоответствий. false definition true

Ответ

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

Все поля Запроса будут присутствовать в ответе, а также другие:

Имя Тип данных Описание Пример
rules Карта Карта или словарь с правилами, определенными для дерева, организованными по level и order. Если правила еще не определены, значением будет null См. примеры
created Целое число Отметка времени Unix Epoch в секундах, когда дерево было первоначально создано. 1350425579

GET

Запрос GET к /api/tree без идентификатора дерева вернёт список всех деревьев, сконфигурированных в системе. Результаты будут включать настроенные правила для каждого дерева. Если деревья еще не настроены, список будет пустым.

Пример запроса GET для получения всех деревьев

http://localhost:4242/api/tree

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

[
  {
    "name": "Test Tree",
    "description": "My Description",
    "notes": "Details",
    "rules": {
      "0": {
        "0": {
          "type": "TAGK",
          "field": "host",
          "regex": "",
          "separator": "",
          "description": "Hostname rule",
          "notes": "",
          "level": 0,
          "order": 0,
          "treeId": 1,
          "customField": "",
          "regexGroupIdx": 0,
          "displayFormat": ""
        }
      },
      "1": {
        "0": {
          "type": "METRIC",
          "field": "",
          "regex": "",
          "separator": "",
          "description": "",
          "notes": "Metric rule",
          "level": 1,
          "order": 0,
          "treeId": 1,
          "customField": "",
          "regexGroupIdx": 0,
          "displayFormat": ""
        }
      }
    },
    "created": 1356998400,
    "treeId": 1,
    "strictMatch": false,
    "storeFailures": false,
    "enabled": true
  },
  {
    "name": "2nd Tree",
    "description": "Other Tree",
    "notes": "",
    "rules": {
      "0": {
        "0": {
          "type": "TAGK",
          "field": "host",
          "regex": "",
          "separator": "",
          "description": "",
          "notes": "",
          "level": 0,
          "order": 0,
          "treeId": 2,
          "customField": "",
          "regexGroupIdx": 0,
          "displayFormat": ""
        }
      },
      "1": {
        "0": {
          "type": "METRIC",
          "field": "",
          "regex": "",
          "separator": "",
          "description": "",
          "notes": "",
          "level": 1,
          "order": 0,
          "treeId": 2,
          "customField": "",
          "regexGroupIdx": 0,
          "displayFormat": ""
        }
      }
    },
    "created": 1368964815,
    "treeId": 2,
    "strictMatch": false,
    "storeFailures": false,
    "enabled": false
  }
]

Чтобы получить конкретное дерево, укажите значение ``treeId'`. Ответ будет содержать объект дерева, если он найден. Если запрошенного дерева не существует, будет возвращена ошибка 404.

Пример запроса GET для получения одного дерева

http://localhost:4242/api/treeId?tree=1

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

{
  "name": "2nd Tree",
  "description": "Other Tree",
  "notes": "",
  "rules": {
    "0": {
      "0": {
        "type": "TAGK",
        "field": "host",
        "regex": "",
        "separator": "",
        "description": "",
        "notes": "",
        "level": 0,
        "order": 0,
        "treeId": 2,
        "customField": "",
        "regexGroupIdx": 0,
        "displayFormat": ""
      }
    },
    "1": {
      "0": {
        "type": "METRIC",
        "field": "",
        "regex": "",
        "separator": "",
        "description": "",
        "notes": "",
        "level": 1,
        "order": 0,
        "treeId": 2,
        "customField": "",
        "regexGroupIdx": 0,
        "displayFormat": ""
      }
    }
  },
  "created": 1368964815,
  "treeId": 2,
  "strictMatch": false,
  "storeFailures": false,
  "enabled": false
}

POST/PUT

Используя методы POST или PUT, вы можете создать новое дерево или изменить большинство полей существующего дерева. Для новых деревьев требуется значение name, а для существующих — ID дерева и любые поля, которые требуют изменения. Успешный запрос вернёт изменённый объект дерева.

Примечание

У нового дерева не будет правил. Следующий вызов, вероятно, должен быть к /tree/rule или /tree/rules.

Пример запроса POST для создания

http://localhost:4242/api/tree?name=Network%20Tree&method_override=post

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

{
  "name": "Network",
  "description": "",
  "notes": "",
  "rules": null,
  "created": 1368964815,
  "treeId": 3,
  "strictMatch": false,
  "storeFailures": false,
  "enabled": false
}

Пример запроса POST для редактирования

http://localhost:4242/api/tree?treeId=3&description=Network%20Device%20Information&method_override=post

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

{
  "name": "Network",
  "description": "Network Device Information",
  "notes": "",
  "rules": null,
  "created": 1368964815,
  "treeId": 3,
  "strictMatch": false,
  "storeFailures": false,
  "enabled": false
}

DELETE

Использование метода DELETE удалит только столкновения, записи несоответствий и ветви для заданного дерева из хранилища. Этот конечный пункт инициирует удаление. Так как удаление может занять некоторое время, конечная точка вернёт успешный ответ 204 без данных, если удаление завершено. Если дерево не найдено, будет возвращён код 404. Если вы хотите удалить само определение дерева, вы можете указать флаг defintion в строке запроса со значением true, и дерево и определения правил будут удалены тоже.

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

Этот метод невозможно отменить. После выполнения очистка будет продолжена, пока не будет остановлен TSD.

Примечание

Перед выполнением запроса DELETE, убедитесь, что где-то на ваших данных не запущена ручная синхронизация дерева. Если она запущена, могут быть сохранены некоторые «оставшиеся» ветви или листья во время очистки. Используйте инструмент _____ CLI некоторое время после удаления для очистки оставшихся ветвей или листьев.

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

http://localhost:4242/api/tree?tree=1&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/index.html

Spec-Zone.ru

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