Открыть меню
Открыть персональное меню
Вы не представились системе
Your IP address will be publicly visible if you make any edits.

GET список объектов

Материал из Документация АппОптима

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

  • Ключевые запросы .
  • Первые X запросов, которые используются для определения исходного уровня .
  • Запросы, вызвавшие проблему .

Вы можете ограничить вывод, используя нумерацию страниц:

  1. Укажите количество результатов на странице в параметре запроса pageSize .
  2. Затем используйте курсор из поля nextPageKey предыдущего ответа в параметре запроса nextPageKey для получения последующих страниц.

Запрос создает application/jsonполезную нагрузку.

GET АппОптима https://{your-domain}/e/{your-environment-id}/api/v2/entities
Cреда АктивногоШлюза https://{your-activegate-domain}/e/{your-environment-id}/api/v2/entities

Аутентификация

Чтобы выполнить этот запрос, вам нужен токен доступа с областью действия Чтение объектов ( entities.read) . Чтобы узнать, как его получить и использовать, см. раздел Токены и аутентификация .

Параметры

Параметр Тип Описание In Необходимость
nextPageKey string Курсор для следующей страницы результатов. Вы можете найти его в поле nextPageKey предыдущего ответа.

Первая страница всегда возвращается, если вы не укажете параметр запроса nextPageKey .

Когда nextPageKey настроен на получение последующих страниц, вы должны опустить все остальные параметры запроса.

query по желанию
pageSize integer Количество объектов.

Если не установлено, используется 50.

query по желанию
entitySelector string Определяет область запроса. В ответ включаются только объекты, соответствующие указанным критериям.

Вы должны установить один из этих критериев:

  • Тип объекта:type("TYPE")
  • Идентификатор объекта АппОптима: entityId("id"). Вы можете указать несколько идентификаторов, разделенных запятой ( entityId("id-1","id-2")). Все запрошенные объекты должны быть одного типа.

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

  • Тег: tag("value"). Теги в форматах [context]key:value, key:valueи valueобнаруживаются и анализируются автоматически. Любые двоеточия ( :), которые являются частью ключа или значения, должны быть экранированы обратной косой чертой ( \), в противном случае она будет интерпретироваться как разделитель между ключом и значением. Все значения тегов чувствительны к регистру.
  • Идентификатор зоны управления:mzId(123)
  • Название зоны управления:mzName("value")
  • Имя объекта:
    • entityName.equals: выполняет EQUALSзапрос без учета регистра.
    • entityName.startsWith: изменяет оператор на BEGINS WITH.
    • entityName.in: позволяет указать несколько значений. Оператор EQUALSобращается.
    • caseSensitive(entityName.equals("value")): принимает любой критерий имени объекта в качестве аргументов и делает значение чувствительным к регистру.
  • Состояние здоровья (HEALTHY,UNHEALTHY):healthState("HEALTHY")
  • Отметка времени первого увиденного: firstSeenTms.<operator>(now-3h). Используйте любой формат метки времени из параметров from / to . Доступны следующие операторы:
    • lte: раньше или в указанное время
    • lt: раньше указанного времени
    • gte: позже или в указанное время
    • gt: позже указанного времени
  • Атрибут объекта: <attribute>("value1","value2")и <attribute>.exists(). Чтобы получить список доступных атрибутов, выполните запрос типа сущности GET и проверьте поле свойств ответа.
  • Отношения: fromRelationships.<relationshipName>()и toRelationships.<relationshipName>(). Критерий принимает селектор объектов в качестве атрибута. Чтобы получить список доступных отношений, выполните запрос типа сущности GET и проверьте поля fromRelationships и toRelationships .
  • Отрицание: not(<criterion>). Инвертирует любой критерий, кроме type .

Дополнительные сведения см. в разделе Селектор объектов в документации АппОптима.

Чтобы задать несколько критериев, разделите их запятой ( ,). Например, type("HOST"),healthState("HEALTHY"). В ответ включаются только результаты, соответствующие всем критериям.

Поддерживаемая длина строки составляет 2000 символов.

Поле обязательно , когда вы запрашиваете первую страницу результатов.

query по желанию
from string Начало запрошенного таймфрейма.

Вы можете использовать один из следующих форматов:

  • Отметка времени в миллисекундах UTC.
  • Человекочитаемый формат 2021-01-25T05:57:01.123+01:00. Если часовой пояс не указан, используется UTC. Вы можете использовать пробел вместо T. Секунды и доли секунды не являются обязательными.
  • Относительный таймфрейм, назад. Формат: now-NU/A, где Nколичество времени, Uединица времени и Aвыравнивание. Выравнивание округляет все меньшие значения до ближайшего нуля в прошлом. Например, now-1y/wэто один год назад, выровненный на неделю. Вы также можете указать относительный таймфрейм без выравнивания: now-NU. Поддерживаемые единицы времени для относительного таймфрейма:
    • m: минуты
    • h: часы
    • d: дни
    • w: недели
    • M: месяцы
    • y: годы

Если не задано, используется относительный таймфрейм в три дня ( now-3d).

query по желанию
to string Конец запрошенного периода времени.

Вы можете использовать один из следующих форматов:

  • Отметка времени в миллисекундах UTC.
  • Человекочитаемый формат 2021-01-25T05:57:01.123+01:00. Если часовой пояс не указан, используется UTC. Вы можете использовать пробел вместо T. Секунды и доли секунды не являются обязательными.
  • Относительный таймфрейм, назад. Формат: now-NU/A, где Nколичество времени, Uединица времени и Aвыравнивание. Выравнивание округляет все меньшие значения до ближайшего нуля в прошлом. Например, now-1y/wэто один год назад, выровненный на неделю. Вы также можете указать относительный таймфрейм без выравнивания: now-NU. Поддерживаемые единицы времени для относительного таймфрейма:
    • m: минуты
    • h: часы
    • d: дни
    • w: недели
    • M: месяцы
    • y: годы

Если не установлено, используется текущая метка времени.

query по желанию
fields string Определяет список свойств объекта, включенных в ответ. Идентификатор и имя объекта всегда включаются в ответ.

Чтобы добавить свойства, перечислите их с начальным плюсом +. Вы можете указать несколько свойств, разделенных запятой (например, fields=+lastSeenTms,+properties.BITNESS).

Используйте запрос типа сущности GET, чтобы получить список свойств, доступных для вашего типа сущности. Поля из объекта свойств должны быть указаны в properties.FIELDформате (например, properties.BITNESS).

query по желанию
sort string Определяет порядок возвращаемых объектов.

Это поле является необязательным , каждое поле имеет знаковый префикс (+/-), который соответствует порядку сортировки (+ по возрастанию и - по убыванию). Если префикс знака не установлен, будет применяться порядок сортировки по возрастанию по умолчанию.

В настоящее время заказ доступен только для отображаемого имени (например, sort=name or sort =+name for ascending, sort=-name for descending)

query по желанию

Ответ

Коды ответов

Код Тип Описание
200 EntitiesList Успех

Объекты тела ответа

Объект EntitiesList

Список отслеживаемых объектов вместе с их свойствами.

Элемент Тип Описание
totalCount integer Общее количество записей в результате.
pageSize integer Количество записей на странице.
nextPageKey string Курсор для следующей страницы результатов. Имеет значение nullна последней странице.

Используйте его в параметре запроса nextPageKey для получения последующих страниц результата.

entities Entity[] Список контролируемых объектов.

Объект Entity

Свойства контролируемого объекта.

Элемент Тип Описание
firstSeenTms integer Отметка времени, когда объект был впервые замечен, в миллисекундах UTC.
lastSeenTms integer Временная метка последнего появления объекта в миллисекундах UTC.
fromRelationships object Список отношений, в которых объект занимает позицию FROM.
toRelationships object Список отношений, в которых объект занимает позицию TO.
tags METag[] Набор тегов, присвоенных объекту.
managementZones ManagementZone[] Набор зон управления, к которым принадлежит объект.
entityId string Идентификатор объекта.
icon EntityIcon Значок контролируемого объекта.
properties object Список дополнительных свойств объекта.
type string Тип объекта.
displayName string Имя объекта, отображаемое в пользовательском интерфейсе.

Объект EntityId

Краткое представление отслеживаемого объекта.

Элемент Тип Описание
id string Идентификатор объекта.
type string Тип объекта.

Объект METag

Тег отслеживаемого объекта.

Элемент Тип Описание
stringRepresentation string Строковое представление тега.
value string Значение тега.
key string Ключ тега.
context string Происхождение тега, например AWS или Cloud Foundry.

Пользовательские теги используют это CONTEXTLESSзначение.

Объект ManagementZone

Краткое представление зоны управления.

Элемент Тип Описание
name string Имя зоны управления.
id string Идентификатор зоны управления.

Объект EntityIcon

Значок контролируемого объекта.

Элемент Тип Описание
primaryIconType string Основная иконка объекта.

Определяется идентификатором бариста значка.

customIconPath string Определяемый пользователем значок объекта.

Укажите идентификатор бариста значка или URL-адрес собственного значка.

secondaryIconType string Второстепенная иконка сущности.

Определяется идентификатором бариста значка.

JSON-модель тела ответа

<{
  "totalCount": 1,
  "pageSize": 1,
  "nextPageKey": "AQAAABQBAAAABQ==",
  "entities": [
    {
      "entityId": "HOST-06F288EE2A930951",
      "type": "HOST",
      "displayName": "my host",
      "icon": {
        "primaryIconType": "linux",
        "secondaryIconType": "microsoft-azure-signet",
        "customIconPath": "host"
      },
      "firstSeenTms": 1574697667547,
      "lastSeenTms": 1588242361417,
      "properties": {
        "bitness": 64,
        "monitoringMode": "FULL_STACK",
        "osType": "LINUX",
        "osArchitecture": "X86",
        "networkZoneId": "aws.us.east01",
        "cpuCores": 8
      },
      "tags": [
        {
          "context": "CONTEXTLESS",
          "key": "architecture",
          "value": "x86",
          "stringRepresentation": "architecture:x86"
        },
        {
          "context": "ENVIRONMENT",
          "key": "Infrastructure",
          "value": "Linux",
          "stringRepresentation": "[ENVIRONMENT]Infrastructure:Linux"
        }
      ],
      "managementZones": [
        {
          "id": "6239538939987181652",
          "name": "main app"
        }
      ],
      "fromRelationships": {
        "isInstanceOf": [
          {
            "id": "HOST_GROUP-0E489369D663A4BF",
            "type": "HOST_GROUP"
          }
        ]
      },
      "toRelationships": {
        "isDiskOf": [
          {
            "id": "DISK-0393340DCA3853B0",
            "type": "DISK"
          }
        ]
      }
    }
  ]
}

Пример

В этом примере в запросе перечислены службы, принадлежащие зонам управления с идентификатором 229130632296508575249 . Для этого параметру запроса entitySelector присваиваетсяtype("SERVICE"),mzId("229130632296508575249") значение .

Помимо идентификаторов сущностей АппОптима по умолчанию и имен сущностей, запрос также возвращает метку времени последнего посещения службы и список типов технологий, работающих в службе. Для этого для параметра запроса полейlastSeenTms,properties.serviceTechnologyTypes установлено значение .

Маркер API передается в заголовке авторизации .

Результат усекается до трех записей.

Curl

<curl -L -X GET 'https://mySampleEnv.live.ruscomtech.ru/api/v2/entities?entitySelector=type(%22SERVICE%22),mzId(%229130632296508575249%22)&fields=lastSeenTms,properties.serviceTechnologyTypes' \
-H 'Authorization: Api-Token dt0c01.abc123.abcdefjhij1234567890'

URL-адрес запроса

https://mySampleEnv.live.ruscomtech.ru/api/v2/entities?entitySelector=type(%22SERVICE%22),mzId(%229130632296508575249%22)&fields=lastSeenTms,properties.serviceTechnologyTypes

Тело ответа

<{
  "totalCount": 52,
  "pageSize": 50,
  "nextPageKey": "AQArdHlwZSgiU0VSVklDRSIpL",
  "entities": [
    {
      "entityId": "SERVICE-1125C375A187D27A",
      "displayName": "dotNetBackend_easyTravel_x64",
      "lastSeenTms": 1590609632865,
      "properties": {
        "serviceTechnologyTypes": [
          "IIS app pool",
          "ASP.NET",
          "DotNet"
        ]
      }
    },
    {
      "entityId": "SERVICE-42C0B06C4DCFD0EF",
      "displayName": "AuthenticationService",
      "lastSeenTms": 1590747000977,
      "properties": {
        "serviceTechnologyTypes": [
          "Java"
        ]
      }
    },
    {
      "entityId": "SERVICE-620517BB99A7ED9E",
      "displayName": "BookingService",
      "lastSeenTms": 1590747028702,
      "properties": {
        "serviceTechnologyTypes": [
          "Java"
        ]
      }
    }
  ]
}

Код ответа

200