Нет описания правки |
Нет описания правки |
||
| Строка 1: | Строка 1: | ||
'''''[[API АппОптима]] / [[API АппОптима|Эндпойнты среды]] / [ | '''''[[API АппОптима]] / [[API АппОптима|Эндпойнты среды]] / [https://docs.expert-apm.ru/index.php/API_%D0%90%D0%BF%D0%BF%D0%9E%D0%BF%D1%82%D0%B8%D0%BC%D0%B0#:~:text=DELETE%20%D1%82%D0%B5%D0%B3%D0%BE%D0%B2-,%D0%A0%D0%B0%D0%B7%D0%B2%D1%91%D1%80%D1%82%D1%8B%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5,-%D0%BF%D1%80%D0%B0%D0%B2%D0%B8%D1%82%D1%8C Развёртывание] / [https://docs.expert-apm.ru/index.php/API_%D0%90%D0%BF%D0%BF%D0%9E%D0%BF%D1%82%D0%B8%D0%BC%D0%B0#:~:text=%D1%80%D0%B0%D0%B7%D0%B2%D0%B5%D1%80%D1%82%D1%8B%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F%20%D0%B8%D0%B7%20Jenkins-,%D0%A1%D0%BE%D0%B1%D1%8B%D1%82%D0%B8%D1%8F%20v2,-GET%20%D1%81%D0%BF%D0%B8%D1%81%D0%BA%D0%B0%20%D1%81%D0%BE%D0%B1%D1%8B%D1%82%D0%B8%D0%B9 События v2] / POST события v2''''' | ||
Принимает пользовательское событие в АппОптима. | Принимает пользовательское событие в АппОптима. | ||
| Строка 104: | Строка 104: | ||
"entitySelector": "string", | "entitySelector": "string", | ||
"properties": {} | "properties": {} | ||
} | } | ||
==Ответ== | ==Ответ== | ||
===Коды ответов=== | ===Коды ответов=== | ||
| Строка 165: | Строка 165: | ||
} | } | ||
] | ] | ||
} | } | ||
==Примеры== | ==Примеры== | ||
===Пример 1=== | ===Пример 1=== | ||
| Строка 184: | Строка 184: | ||
"job.number": "21234346" | "job.number": "21234346" | ||
} | } | ||
}' | }' | ||
====URL-адрес запроса==== | ====URL-адрес запроса==== | ||
<code><nowiki>https://mySampleEnv.live.ruscomtech.ru/api/v2/events/ingest</nowiki></code> | <code><nowiki>https://mySampleEnv.live.ruscomtech.ru/api/v2/events/ingest</nowiki></code> | ||
| Строка 195: | Строка 195: | ||
"job.number": "21234346" | "job.number": "21234346" | ||
} | } | ||
} | } | ||
====Тело ответа==== | ====Тело ответа==== | ||
<{ | <{ | ||
| Строка 209: | Строка 209: | ||
} | } | ||
] | ] | ||
} | } | ||
====Код ответа==== | ====Код ответа==== | ||
201 | 201 | ||
| Строка 230: | Строка 230: | ||
"Load pattern": "production" | "Load pattern": "production" | ||
} | } | ||
}' | }' | ||
====URL-адрес запроса==== | ====URL-адрес запроса==== | ||
<code><nowiki>https://mySampleEnv.live.ruscomtech.ru/api/v2/events/ingest</nowiki></code> | <code><nowiki>https://mySampleEnv.live.ruscomtech.ru/api/v2/events/ingest</nowiki></code> | ||
| Строка 244: | Строка 244: | ||
"Load pattern": "production" | "Load pattern": "production" | ||
} | } | ||
} | } | ||
====Тело ответа==== | ====Тело ответа==== | ||
<{ | <{ | ||
| Строка 254: | Строка 254: | ||
} | } | ||
] | ] | ||
} | } | ||
====Код ответа==== | ====Код ответа==== | ||
201 | 201 | ||
| Строка 275: | Строка 275: | ||
"Batch processor": "travel-catalog" | "Batch processor": "travel-catalog" | ||
} | } | ||
}' | }' | ||
====URL-адрес запроса==== | ====URL-адрес запроса==== | ||
<code><nowiki>https://mySampleEnv.live.ruscomtech.ru/api/v2/events/ingest</nowiki></code> | <code><nowiki>https://mySampleEnv.live.ruscomtech.ru/api/v2/events/ingest</nowiki></code> | ||
| Строка 289: | Строка 289: | ||
"Batch processor": "travel-catalog" | "Batch processor": "travel-catalog" | ||
} | } | ||
} | } | ||
====Тело ответа==== | ====Тело ответа==== | ||
<{ | <{ | ||
| Строка 299: | Строка 299: | ||
} | } | ||
] | ] | ||
} | } | ||
====Код ответа==== | ====Код ответа==== | ||
201 | 201 | ||
Текущая версия от 14:18, 24 декабря 2024
API АппОптима / Эндпойнты среды / Развёртывание / События v2 / POST события 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 | Тип события.
Элемент может содержать эти значения
|
| title | string | Название события. |
| startTime | integer | Время начала события в миллисекундах UTC.
Если не установлено, используется текущая метка времени. Может быть |
| endTime | integer | Время окончания события в миллисекундах UTC.
Если не задано, используется время начала плюс время ожидания. Может быть |
| timeout | integer | Время ожидания события в минутах.
Если не установлено, используется 15. Может быть |
| entitySelector | string | Селектор сущностей , определяющий набор сущностей АппОптима, которые будут связаны с событием.
Можно выбрать только объекты, которые были активны в течение последних 24 часов. Если не установлено, событие связано с Может быть |
| properties | object | Карта свойств события.
Ключи с префиксом Значения зарезервированных АппОптима свойств (обозначаемых ключом с префиксом Может быть |
JSON-модель тела запроса
Это модель тела запроса, показывающая возможные элементы. Его необходимо настроить для использования в реальном запросе.
<{
"eventType": "AVAILABILITY_EVENT",
"title": "string",
"startTime": 1,
"endTime": 1,
"timeout": 1,
"entitySelector": "string",
"properties": {}
}
Ответ
Коды ответов
| Код | Тип | Описание |
|---|---|---|
| 201 | EventIngestResults | Запрос приема события был получен сервером. Тело ответа указывает для каждого события, было ли его создание успешным. |
Объекты тела ответа
Объект EventIngestResults
Результаты приема событий.
| Элемент | Тип | Описание |
|---|---|---|
| reportCount | integer | Количество созданных отчетов о событиях.
Может быть |
| eventIngestResults | EventIngestResult[] | Результат каждого созданного отчета о событиях.
Может быть |
Объект EventIngestResult
Результат созданного отчета о событиях.
| Элемент | Тип | Описание |
|---|---|---|
| status | string | Статус приема.
Элемент может содержать эти значения
Может быть |
| correlationId | string | Идентификатор корреляции созданного события.
Может быть |
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