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

Получение списка событий

Материал из Документация АппОптима
Версия от 15:49, 26 декабря 2024; IKuznetsov (обсуждение | вклад)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)

Список событий, произошедших в указанный период времени, вместе с их свойствами.

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

Этот запрос является выпуском Early Adopter и может быть изменен несовместимым образом.

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

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

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

Параметры

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

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

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

запрос необязательный
pageSize integer Количество событий в полезной нагрузке одного ответа.

Максимально допустимый размер страницы — 1000.

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

запрос необязательный
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-2h).

запрос необязательный
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: годы

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

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

Вы можете добавить один или несколько из перечисленных ниже критериев. Для каждого критерия можно указать несколько значений, разделенных запятыми, если не указано иное. Если указано несколько значений, применяется логика ИЛИ .

  • Идентификатор события: eventId("id-1", "id-2").
  • ID связанного объекта: entityId("id-1", "id-2").
  • Статус события: status("OPEN")или status("CLOSED"). Вы можете указать только один статус.
  • Идентификатор зоны управления: managementZoneId("123", "321").
  • Тип события: eventType("event-type"). Вы можете указать только один тип события. Вы можете получить список возможных типов событий с помощью вызова типов событий GET .
  • Идентификатор корреляции: correlationId("id-1", "id-2").
  • Произошло во время технического обслуживания (правда, ложь): underMaintenance(true).
  • Уведомления подавляются (true, false): suppressAlert(true).
  • Создание проблемы подавляется (true, false): suppressProblem(true).
  • Частое событие (истина, ложь): frequentEvent(true).
  • Свойство события: property.<key>("value-1", "value-2").

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

запрос необязательный
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("value"). По умолчанию это фильтрует объекты, имя которых содержит заданное значение и не чувствительно к регистру. Доступны следующие модификации:
    • entityName.equals: изменяет оператор на EQUALS.
    • entityName.startsWith: изменяет оператор на BEGINS WITH.
    • entityName.in: позволяет указать несколько значений. Оператор EQUALSобращается.
    • caseSensitive(entityName("value")): принимает любой критерий имени сущности в качестве аргументов и делает значение чувствительным к регистру.
  • Состояние здоровья (ЗДОРОВЫЙ, НЕЗДОРОВЫЙ):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"). В ответ включаются только результаты, соответствующие всем критериям.

Длина строки ограничена 10 000 символов.

Количество объектов, которые можно выбрать, ограничено 10000.

запрос необязательный

Ответ

Коды ответов

Код Тип Описание
200 EventList Успех. Ответ содержит список событий.

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

Объект EventList

Список событий.

Элемент Тип Описание
warnings строка [] Список предупреждений.

Может быть null.

events Event[] Список событий.

Может быть null.

pageSize integer Количество записей на странице.

Может быть null.

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

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

Может быть null.

totalCount integer Общее количество записей в результате.

Объект Event

Конфигурация события.

Элемент Тип Описание
eventType string Тип события.

Может быть null.

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

Может быть null.

entityTags METag[] Список тегов связанного объекта.

Может быть null.

underMaintenance boolean Если true, событие произошло, когда отслеживаемая система находилась на обслуживании.

Может быть null.

suppressAlert boolean Состояние предупреждения во время технического обслуживания :
  • false: Оповещение работает как обычно.
  • true: Оповещение отключено.

Может быть null.

suppressProblem boolean Статус обнаружения проблемы во время технического обслуживания :
  • false: Обнаружение проблем работает как обычно.
  • true: обнаружение проблем отключено.

Может быть null.

frequentEvent boolean Если true, событие происходит часто .

Частое событие не вызывает проблем.

Может быть null.

managementZones ManagementZone[] Список всех зон управления, которым принадлежит событие.

Может быть null.

eventId string Идентификатор события.

Может быть null.

properties EventProperty[] Список свойств события.

Может быть null.

status string Статус события.

Элемент может содержать эти значения

  • CLOSED
  • OPEN

Может быть null.

startTime integer Отметка времени возникновения события в миллисекундах UTC.

Может быть null.

endTime integer Отметка времени закрытия события в миллисекундах UTC.

Имеет значение, nullесли событие все еще активно.

Может быть null.

title string Название события.

Может быть null.

correlationId string Идентификатор корреляции события.

Может быть null.

Объект EntityStub

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

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

Может быть null.

name string Имя сущности.

Не включается в ответ, если сущность с соответствующим идентификатором не найдена.

Может быть null.

Объект EntityId

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

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

Может быть null.

type string Тип сущности.

Может быть null.

Объект METag

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

Элемент Тип Описание
stringRepresentation string Строковое представление тега.

Может быть null.

value string Значение тега.

Может быть null.

key string Ключ тега.

Может быть null.

context string Происхождение тега, например AWS или Cloud Foundry.

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

Может быть null.

Объект ManagementZone

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

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

Может быть null.

id string Идентификатор зоны управления.

Может быть null.

Объект EventProperty

Свойство события.

Элемент Тип Описание
value string Значение свойства события.

Может быть null.

key string Ключ свойства события.

Может быть null.

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

<{
  "warnings": [
    "string"
  ],
  "events": [
    {
      "eventType": "LOW_DISK_SPACE",
      "entityId": {
        "entityId": {
          "id": "string",
          "type": "string"
        },
        "name": "string"
      },
      "entityTags": [
        {
          "stringRepresentation": "string",
          "value": "string",
          "key": "string",
          "context": "string"
        }
      ],
      "underMaintenance": true,
      "suppressAlert": true,
      "suppressProblem": true,
      "frequentEvent": true,
      "managementZones": [
        {
          "name": "string",
          "id": "string"
        }
      ],
      "eventId": "4293884258445543163_1564039524182",
      "properties": [
        {
          "value": "string",
          "key": "string"
        }
      ],
      "status": "OPEN",
      "startTime": 1564039524182,
      "endTime": 1564039524182,
      "title": "High CPU load on host X",
      "correlationId": "933613657e1c8fcf"
    }
  ],
  "pageSize": 1,
  "nextPageKey": "AQAAABQBAAAABQ==",
  "totalCount": 1
}

Пример

В этом примере в запросе перечислены все события PROCESS_RESTART ( eventSelector=eventType("PROCESS_RESTART")), произошедшие за последние 2 часа ( from=now-2h), когда окно обслуживания было активным ( eventSelector=underMaintenance(true)). Результат усекается до двух событий.

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

Curl

<curl --request GET \
  --url 'https://mySampleEnv.live.ruscomtech.ru/api/v2/events?eventSelector=eventType(%22PROCESS_RESTART%22)%2CunderMaintenance(true)&from=now-2h' \
  --header 'Authorization: Api-Token dt0c01.abc123.abcdefjhij1234567890'

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

https://mySampleEnv.live.ruscomtech.ru/api/v2/events?eventSelector=eventType(%22PROCESS_RESTART%22)%2CunderMaintenance(true)&from=now-2h

Тело ответа

<{
  "totalCount": 43,
  "pageSize": 100,
  "events": [
    {
      "eventId": "-6475311485380369979_1628500180000",
      "startTime": 1628500180000,
      "endTime": 1628500240000,
      "eventType": "PROCESS_RESTART",
      "title": "Process restart",
      "entityId": {
        "entityId": {
          "id": "PROCESS_GROUP_INSTANCE-03F98EA8639FD052",
          "type": "PROCESS_GROUP_INSTANCE"
        },
        "name": "IIS app pool dotNetFrontend_easyTravel_x64"
      },
      "properties": [
        {
          "key": "dt.event.group_label",
          "value": "Process restart"
        }
      ],
      "status": "OPEN",
      "entityTags": [
        {
          "context": "CONTEXTLESS",
          "key": "easyTravel",
          "stringRepresentation": "easyTravel"
        },
        {
          "context": "CONTEXTLESS",
          "key": "tech",
          "value": "IIS",
          "stringRepresentation": "tech:IIS"
        },
        {
          "context": "CONTEXTLESS",
          "key": "tech",
          "value": ".NET",
          "stringRepresentation": "tech:.NET"
        },
        {
          "context": "CONTEXTLESS",
          "key": "hosts",
          "value": "w-077",
          "stringRepresentation": "hosts:w-077"
        },
        {
          "context": "CONTEXTLESS",
          "key": "Infrastructure",
          "value": "Windows",
          "stringRepresentation": "Infrastructure:Windows"
        },
        {
          "context": "CONTEXTLESS",
          "key": "dotNetFrontend",
          "stringRepresentation": "dotNetFrontend"
        },
      ],
      "managementZones": [
        {
          "id": "9130632296508575249",
          "name": "Easytravel"
        },
        {
          "id": "-6239538939987181652",
          "name": "frontend"
        },
        {
          "id": "5130731705740636866",
          "name": "Windows"
        }
      ],
      "underMaintenance": true,
      "suppressAlert": true,
      "suppressProblem": true,
      "frequentEvent": false
    },
    {
      "eventId": "-231290298591263162_1628500000000",
      "startTime": 1628500000000,
      "endTime": 1628500060000,
      "eventType": "PROCESS_RESTART",
      "title": "Process restart",
      "entityId": {
        "entityId": {
          "id": "PROCESS_GROUP_INSTANCE-00CA9B0F1AE9BAF8",
          "type": "PROCESS_GROUP_INSTANCE"
        },
        "name": "chromedriver_linux64"
      },
      "properties": [
        {
          "key": "dt.event.group_label",
          "value": "Process restart"
        }
      ],
      "status": "CLOSED",
      "entityTags": [
        {
          "context": "CONTEXTLESS",
          "key": "Infrastructure",
          "value": "Linux",
          "stringRepresentation": "Infrastructure:Linux"
        },
        {
          "context": "CONTEXTLESS",
          "key": "hosts",
          "value": "l-008",
          "stringRepresentation": "hosts:l-008"
        }
      ],
      "managementZones": [
        {
          "id": "2631544906797876001",
          "name": "Linux"
        }
      ],
      "underMaintenance": true,
      "suppressAlert": false,
      "suppressProblem": false,
      "frequentEvent": false
    }
  ],
  "warnings": []
}

Код ответа

200