ENetrebin (обсуждение | вклад) (Новая страница: «'''''API Ключ-АСТРОМ / API Ключ-АСТРОМ#.D0.AD.D0.BD.D0.B4.D0.BF.D0.BE.D0.B9.D0.BD.D1.82.D1.8B%20.D1.81.D1.80.D0.B5.D0.B4.D1.8B|Эндп...») |
Нет описания правки |
||
(не показана 1 промежуточная версия этого же участника) | |||
Строка 1: | Строка 1: | ||
'''''[[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=%D0%A2%D0%B0%D1%80%D0%B1%D0%BE%D0%BB%D0%BB%D1%8B%20%D0%BE%D1%80%D0%BA%D0%B5%D1%81%D1%82%D1%80%D0%BE%D0%B2%D0%BA%D0%B8-,%D0%A1%D0%BE%D0%B1%D1%8B%D1%82%D0%B8%D1%8F%20v1,-GET%20%D0%BB%D0%B5%D0%BD%D1%82%D1%8B%20%D1%81%D0%BE%D0%B1%D1%8B%D1%82%D0%B8%D0%B9 События v1] / POST события''''' | ||
Принимает пользовательское событие в | Принимает пользовательское событие в АппОптима. | ||
Запрос создает <code>application/json</code>полезную нагрузку. | Запрос создает <code>application/json</code>полезную нагрузку. | ||
{| class="wikitable" | {| class="wikitable" | ||
| rowspan="2" |POST | | rowspan="2" |POST | ||
| | |АппОптима | ||
|<code><nowiki>https://{your-domain}/e/{your-environment-id}/api/v2/events/ingest</nowiki></code> | |<code><nowiki>https://{your-domain}/e/{your-environment-id}/api/v2/events/ingest</nowiki></code> | ||
|- | |- | ||
Строка 78: | Строка 78: | ||
|entitySelector | |entitySelector | ||
|string | |string | ||
|Селектор сущностей , определяющий набор сущностей | |Селектор сущностей , определяющий набор сущностей АппОптима, которые будут связаны с событием. | ||
Можно выбрать только объекты, которые были активны в течение последних 24 часов. | Можно выбрать только объекты, которые были активны в течение последних 24 часов. | ||
Строка 88: | Строка 88: | ||
|object | |object | ||
|Карта свойств события. | |Карта свойств события. | ||
Ключи с префиксом <code>dt.*</code>зарезервированы и могут использоваться для установки свойств события с предопределенной семантикой в продукте | Ключи с префиксом <code>dt.*</code>зарезервированы и могут использоваться для установки свойств события с предопределенной семантикой в продукте АппОптима. Все остальные ключи интерпретируются как определяемые пользователем свойства события. | ||
Значения зарезервированных | Значения зарезервированных АппОптима свойств (обозначаемых ключом с префиксом <code>dt.*</code>) должны соответствовать требованиям соответствующего свойства. | ||
Может быть <code>null</code>. | Может быть <code>null</code>. | ||
Строка 96: | Строка 96: | ||
===JSON-модель тела запроса=== | ===JSON-модель тела запроса=== | ||
Это модель тела запроса, показывающая возможные элементы. Его необходимо настроить для использования в реальном запросе. | Это модель тела запроса, показывающая возможные элементы. Его необходимо настроить для использования в реальном запросе. | ||
< | <{ | ||
"eventType": "AVAILABILITY_EVENT", | "eventType": "AVAILABILITY_EVENT", | ||
"title": "string", | "title": "string", | ||
Строка 104: | Строка 104: | ||
"entitySelector": "string", | "entitySelector": "string", | ||
"properties": {} | "properties": {} | ||
} | } | ||
==Ответ== | ==Ответ== | ||
===Коды ответов=== | ===Коды ответов=== | ||
Строка 157: | Строка 157: | ||
|} | |} | ||
===JSON-модель тела ответа=== | ===JSON-модель тела ответа=== | ||
< | <{ | ||
"reportCount": 1, | "reportCount": 1, | ||
"eventIngestResults": [ | "eventIngestResults": [ | ||
Строка 165: | Строка 165: | ||
} | } | ||
] | ] | ||
} | } | ||
==Примеры== | ==Примеры== | ||
===Пример 1=== | ===Пример 1=== | ||
Строка 174: | Строка 174: | ||
Маркер API передается в заголовке авторизации . | Маркер API передается в заголовке авторизации . | ||
====Curl==== | ====Curl==== | ||
< | <curl --request POST \ | ||
--url <nowiki>https://mySampleEnv.live.ruscomtech.ru/api/v2/events/ingest</nowiki> \ | --url <nowiki>https://mySampleEnv.live.ruscomtech.ru/api/v2/events/ingest</nowiki> \ | ||
--header 'Authorization: Api-Token dt0c01.abc123.abcdefjhij1234567890' \ | --header 'Authorization: Api-Token dt0c01.abc123.abcdefjhij1234567890' \ | ||
Строка 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> | ||
====Тело запроса==== | ====Тело запроса==== | ||
< | <{ | ||
"eventType": "MARKED_FOR_TERMINATION", | "eventType": "MARKED_FOR_TERMINATION", | ||
"title": "Planned host downscale", | "title": "Planned host downscale", | ||
Строка 195: | Строка 195: | ||
"job.number": "21234346" | "job.number": "21234346" | ||
} | } | ||
} | } | ||
====Тело ответа==== | ====Тело ответа==== | ||
< | <{ | ||
"reportCount": 2, | "reportCount": 2, | ||
"eventIngestResults": [ | "eventIngestResults": [ | ||
Строка 209: | Строка 209: | ||
} | } | ||
] | ] | ||
} | } | ||
====Код ответа==== | ====Код ответа==== | ||
201 | 201 | ||
Строка 217: | Строка 217: | ||
Маркер API передается в заголовке авторизации . | Маркер API передается в заголовке авторизации . | ||
====Curl==== | ====Curl==== | ||
< | <curl --request POST \ | ||
--url <nowiki>https://mySampleEnv.live.ruscomtech.ru/api/v2/events/ingest</nowiki> \ | --url <nowiki>https://mySampleEnv.live.ruscomtech.ru/api/v2/events/ingest</nowiki> \ | ||
--header 'Authorization: Api-Token dt0c01.abc123.abcdefjhij1234567890' \ | --header 'Authorization: Api-Token dt0c01.abc123.abcdefjhij1234567890' \ | ||
Строка 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> | ||
====Тело запроса==== | ====Тело запроса==== | ||
< | <{ | ||
"eventType": "CUSTOM_INFO", | "eventType": "CUSTOM_INFO", | ||
"title": "Loadtest start", | "title": "Loadtest start", | ||
Строка 244: | Строка 244: | ||
"Load pattern": "production" | "Load pattern": "production" | ||
} | } | ||
} | } | ||
====Тело ответа==== | ====Тело ответа==== | ||
< | <{ | ||
"reportCount": 1, | "reportCount": 1, | ||
"eventIngestResults": [ | "eventIngestResults": [ | ||
Строка 254: | Строка 254: | ||
} | } | ||
] | ] | ||
} | } | ||
====Код ответа==== | ====Код ответа==== | ||
201 | 201 | ||
Строка 262: | Строка 262: | ||
Маркер API передается в заголовке авторизации . | Маркер API передается в заголовке авторизации . | ||
====Curl==== | ====Curl==== | ||
< | <curl --request POST \ | ||
--url <nowiki>https://mySampleEnv.live.ruscomtech.ru/api/v2/events/ingest</nowiki> \ | --url <nowiki>https://mySampleEnv.live.ruscomtech.ru/api/v2/events/ingest</nowiki> \ | ||
--header 'Authorization: Api-Token dt0c01.abc123.abcdefjhij1234567890' \ | --header 'Authorization: Api-Token dt0c01.abc123.abcdefjhij1234567890' \ | ||
Строка 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> | ||
====Тело запроса==== | ====Тело запроса==== | ||
< | <{ | ||
"eventType": "ERROR_EVENT", | "eventType": "ERROR_EVENT", | ||
"title": "Product catalog update failed", | "title": "Product catalog update failed", | ||
Строка 289: | Строка 289: | ||
"Batch processor": "travel-catalog" | "Batch processor": "travel-catalog" | ||
} | } | ||
} | } | ||
====Тело ответа==== | ====Тело ответа==== | ||
< | <{ | ||
"reportCount": 1, | "reportCount": 1, | ||
"eventIngestResults": [ | "eventIngestResults": [ | ||
Строка 299: | Строка 299: | ||
} | } | ||
] | ] | ||
} | } | ||
====Код ответа==== | ====Код ответа==== | ||
201 | 201 |
Текущая версия от 14:15, 24 декабря 2024
API АппОптима / Эндпойнты среды / Развёртывание / События v1 / POST события
Принимает пользовательское событие в АппОптима.
Запрос создает 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