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

Размещение события v2

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

Принимает пользовательское событие в АппОптима.

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

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

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

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

Параметры

Параметр Тип Описание In Необходимость
body EventIngest Тело JSON запроса. Содержит свойства нового события. body необязательный

Объекты тела запроса

Объект EventIngest

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

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

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

  • AVAILABILITY_EVENT
  • CUSTOM_ALERT
  • CUSTOM_ANNOTATION
  • CUSTOM_CONFIGURATION
  • CUSTOM_DEPLOYMENT
  • CUSTOM_INFO
  • ERROR_EVENT
  • MARKED_FOR_TERMINATION
  • PERFORMANCE_EVENT
  • RESOURCE_CONTENTION_EVENT
title string Название события.
startTime integer Время начала события в миллисекундах UTC.

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

Может быть null.

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

Если не задано, используется время начала плюс время ожидания.

Может быть null.

timeout integer Время ожидания события в минутах.

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

Может быть null.

entitySelector string Селектор сущностей , определяющий набор сущностей АппОптима, которые будут связаны с событием.

Можно выбрать только объекты, которые были активны в течение последних 24 часов.

Если не установлено, событие связано с dt.entity.environmentсущностью среды ( ).

Может быть null.

properties object Карта свойств события.

Ключи с префиксом dt.*зарезервированы и могут использоваться для установки свойств события с предопределенной семантикой в ​​продукте АппОптима. Все остальные ключи интерпретируются как определяемые пользователем свойства события.

Значения зарезервированных АппОптима свойств (обозначаемых ключом с префиксом dt.*) должны соответствовать требованиям соответствующего свойства.

Может быть null.

JSON-модель тела запроса

Это модель тела запроса, показывающая возможные элементы. Его необходимо настроить для использования в реальном запросе.

<{
  "eventType": "AVAILABILITY_EVENT",
  "title": "string",
  "startTime": 1,
  "endTime": 1,
  "timeout": 1,
  "entitySelector": "string",
  "properties": {}
}

Ответ

Коды ответов

Код Тип Описание
201 EventIngestResults Запрос приема события был получен сервером. Тело ответа указывает для каждого события, было ли его создание успешным.

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

Объект EventIngestResults

Результаты приема событий.

Элемент Тип Описание
reportCount integer Количество созданных отчетов о событиях.

Может быть null.

eventIngestResults EventIngestResult[] Результат каждого созданного отчета о событиях.

Может быть null.

Объект EventIngestResult

Результат созданного отчета о событиях.

Элемент Тип Описание
status string Статус приема.

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

  • INVALID_ENTITY_TYPE
  • INVALID_METADATA
  • INVALID_TIMESTAMPS
  • OK

Может быть null.

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

Может быть null.

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

<{
  "reportCount": 1,
  "eventIngestResults": [
    {
      "status": "INVALID_ENTITY_TYPE",
      "correlationId": "string"
    }
  ]
}

Примеры

Пример 1

Вариант использования

В этом примере запрос отправляет событие « Помечено для завершения » на узлы, которые планируется удалить. Такие хосты идентифицируются группой хостов cloud-burst-hosts . Событие автоматически применяется ко всем хостам, входящим в группу. В качестве дополнительной информации указываются цель прекращения и номер задания автоматизации.

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

Curl

<curl --request POST \
  --url https://mySampleEnv.live.ruscomtech.ru/api/v2/events/ingest \
  --header 'Authorization: Api-Token dt0c01.abc123.abcdefjhij1234567890' \
  --data '{
    "eventType": "MARKED_FOR_TERMINATION",
    "title": "Planned host downscale",
    "entitySelector": "type(HOST),fromRelationship.isInstanceOf(type(HOST_GROUP),entityName(cloud-burst-hosts))",
    "properties": {
        "job.number": "21234346"
    }
}'

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

https://mySampleEnv.live.ruscomtech.ru/api/v2/events/ingest

Тело запроса

<{
    "eventType": "MARKED_FOR_TERMINATION",
    "title": "Planned host downscale",
    "entitySelector": "type(HOST),fromRelationship.isInstanceOf(type(HOST_GROUP),entityName(cloud-burst-hosts))",
    "properties": {
        "job.number": "21234346"
    }
}

Тело ответа

<{
  "reportCount": 2,
  "eventIngestResults": [
    {
      "correlationId": "41f5d263011a6c9a",
      "status": "OK"
    },
    {
      "correlationId": "80eae4d163cc5760",
      "status": "OK"
    }
  ]
}

Код ответа

201

Пример 2

В этом примере запрос отправляет событие Custom info в службу BookingService , помечая ее как цель нагрузочного теста.

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

Curl

<curl --request POST \
  --url https://mySampleEnv.live.ruscomtech.ru/api/v2/events/ingest \
  --header 'Authorization: Api-Token dt0c01.abc123.abcdefjhij1234567890' \
  --data '{
    "eventType": "CUSTOM_INFO",
    "title": "Loadtest start",
    "timeout": 30,
    "entitySelector": "type(SERVICE),entityName.equals(BookingService)",
    "properties": {
        "Tool": "MyLoadTool",
        "Load per minute": "100",
        "Load pattern": "production"
    }
}'

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

https://mySampleEnv.live.ruscomtech.ru/api/v2/events/ingest

Тело запроса

<{
    "eventType": "CUSTOM_INFO",
    "title": "Loadtest start",
    "timeout": 30,
    "entitySelector": "type(SERVICE),entityName.equals(BookingService)",
    "properties": {
        "Tool": "MyLoadTool",
        "Load per minute": "100",
        "Load pattern": "production"
    }
}

Тело ответа

<{
  "reportCount": 1,
  "eventIngestResults": [
    {
      "correlationId": "eba82f647696e485",
      "status": "OK"
    }
  ]
}

Код ответа

201

Пример 3

В этом примере запрос отправляет в службу BookingService событие Error , указывающее на неудачное обновление. Для свойства allowDavisMerge установлено значение , что запрещает Дэвису объединять это событие с любым другим событием.false

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

Curl

<curl --request POST \
  --url https://mySampleEnv.live.ruscomtech.ru/api/v2/events/ingest \
  --header 'Authorization: Api-Token dt0c01.abc123.abcdefjhij1234567890' \
  --data '{
    "eventType": "ERROR_EVENT",
    "title": "Product catalog update failed",
    "timeout": 30,
    "entitySelector": "type(SERVICE),entityName.equals(BookingService)",
    "properties": {
        "allowDavisMerge": "false",
        "Catalog": "APAC travels",
        "Batch processor": "travel-catalog"
    }
}'

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

https://mySampleEnv.live.ruscomtech.ru/api/v2/events/ingest

Тело запроса

<{
    "eventType": "ERROR_EVENT",
    "title": "Product catalog update failed",
    "timeout": 30,
    "entitySelector": "type(SERVICE),entityName.equals(BookingService)",
    "properties": {
        "allowDavisMerge": "false",
        "Catalog": "APAC travels",
        "Batch processor": "travel-catalog"
    }
}

Тело ответа

<{
  "reportCount": 1,
  "eventIngestResults": [
    {
      "correlationId": "cefb7ae03ac720b6",
      "status": "OK"
    }
  ]
}

Код ответа

201