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

POST события v2: различия между версиями

Материал из Документация АппОптима
(Новая страница: «Принимает пользовательское событие в Ключ-АСТРОМ. Запрос создает <code>application/json</code>полез...»)
 
Нет описания правки
 
(не показаны 2 промежуточные версии 2 участников)
Строка 1: Строка 1:
Принимает пользовательское событие в Ключ-АСТРОМ.
'''''[[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'''''
 
Принимает пользовательское событие в АппОптима.


Запрос создает <code>application/json</code>полезную нагрузку.
Запрос создает <code>application/json</code>полезную нагрузку.
{| class="wikitable"
{| class="wikitable"
| rowspan="2" |POST
| rowspan="2" |POST
|Managed
|АппОптима
|<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>
|-
|-
Строка 76: Строка 78:
|entitySelector
|entitySelector
|string
|string
|Селектор сущностей , определяющий набор сущностей Ключ-АСТРОМ, которые будут связаны с событием.
|Селектор сущностей , определяющий набор сущностей АппОптима, которые будут связаны с событием.
Можно выбрать только объекты, которые были активны в течение последних 24 часов.
Можно выбрать только объекты, которые были активны в течение последних 24 часов.


Строка 86: Строка 88:
|object
|object
|Карта свойств события.
|Карта свойств события.
Ключи с префиксом <code>dt.*</code>зарезервированы и могут использоваться для установки свойств события с предопределенной семантикой в ​​продукте Ключ-АСТРОМ. Все остальные ключи интерпретируются как определяемые пользователем свойства события.
Ключи с префиксом <code>dt.*</code>зарезервированы и могут использоваться для установки свойств события с предопределенной семантикой в ​​продукте АппОптима. Все остальные ключи интерпретируются как определяемые пользователем свойства события.


Значения зарезервированных Ключ-АСТРОМ свойств (обозначаемых ключом с префиксом <code>dt.*</code>) должны соответствовать требованиям соответствующего свойства.
Значения зарезервированных АппОптима свойств (обозначаемых ключом с префиксом <code>dt.*</code>) должны соответствовать требованиям соответствующего свойства.


Может быть <code>null</code>.
Может быть <code>null</code>.
Строка 94: Строка 96:
===JSON-модель тела запроса===
===JSON-модель тела запроса===
Это модель тела запроса, показывающая возможные элементы. Его необходимо настроить для использования в реальном запросе.
Это модель тела запроса, показывающая возможные элементы. Его необходимо настроить для использования в реальном запросе.
  <code>{
  <{
   "eventType": "AVAILABILITY_EVENT",
   "eventType": "AVAILABILITY_EVENT",
   "title": "string",
   "title": "string",
Строка 102: Строка 104:
   "entitySelector": "string",
   "entitySelector": "string",
   "properties": {}
   "properties": {}
  }</code>
  }
==Ответ==
==Ответ==
===Коды ответов===
===Коды ответов===
Строка 155: Строка 157:
|}
|}
===JSON-модель тела ответа===
===JSON-модель тела ответа===
  <code>{
  <{
   "reportCount": 1,
   "reportCount": 1,
   "eventIngestResults": [
   "eventIngestResults": [
Строка 163: Строка 165:
     }
     }
   ]
   ]
  }</code>
  }
==Примеры==
==Примеры==
===Пример 1===
===Пример 1===
Строка 172: Строка 174:
Маркер API передается в заголовке авторизации .
Маркер API передается в заголовке авторизации .
====Curl====
====Curl====
  <code>curl --request POST \
  <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' \
Строка 182: Строка 184:
         "job.number": "21234346"
         "job.number": "21234346"
     }
     }
  }'</code>
  }'
====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>
====Тело запроса====
====Тело запроса====
  <code>{
  <{
     "eventType": "MARKED_FOR_TERMINATION",
     "eventType": "MARKED_FOR_TERMINATION",
     "title": "Planned host downscale",
     "title": "Planned host downscale",
Строка 193: Строка 195:
         "job.number": "21234346"
         "job.number": "21234346"
     }
     }
  }</code>
  }
====Тело ответа====
====Тело ответа====
  <code>{
  <{
   "reportCount": 2,
   "reportCount": 2,
   "eventIngestResults": [
   "eventIngestResults": [
Строка 207: Строка 209:
     }
     }
   ]
   ]
  }</code>
  }
====Код ответа====
====Код ответа====
201
201
Строка 215: Строка 217:
Маркер API передается в заголовке авторизации .
Маркер API передается в заголовке авторизации .
====Curl====
====Curl====
  <code>curl --request POST \
  <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' \
Строка 228: Строка 230:
         "Load pattern": "production"
         "Load pattern": "production"
     }
     }
  }'</code>
  }'
====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>
====Тело запроса====
====Тело запроса====
  <code>{
  <{
     "eventType": "CUSTOM_INFO",
     "eventType": "CUSTOM_INFO",
     "title": "Loadtest start",
     "title": "Loadtest start",
Строка 242: Строка 244:
         "Load pattern": "production"
         "Load pattern": "production"
     }
     }
  }</code>
  }
====Тело ответа====
====Тело ответа====
  <code>{
  <{
   "reportCount": 1,
   "reportCount": 1,
   "eventIngestResults": [
   "eventIngestResults": [
Строка 252: Строка 254:
     }
     }
   ]
   ]
  }</code>
  }
====Код ответа====
====Код ответа====
201
201
Строка 260: Строка 262:
Маркер API передается в заголовке авторизации .
Маркер API передается в заголовке авторизации .
====Curl====
====Curl====
  <code>curl --request POST \
  <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' \
Строка 273: Строка 275:
         "Batch processor": "travel-catalog"
         "Batch processor": "travel-catalog"
     }
     }
  }'</code>
  }'
====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>
====Тело запроса====
====Тело запроса====
  <code>{
  <{
     "eventType": "ERROR_EVENT",
     "eventType": "ERROR_EVENT",
     "title": "Product catalog update failed",
     "title": "Product catalog update failed",
Строка 287: Строка 289:
         "Batch processor": "travel-catalog"
         "Batch processor": "travel-catalog"
     }
     }
  }</code>
  }
====Тело ответа====
====Тело ответа====
  <code>{
  <{
   "reportCount": 1,
   "reportCount": 1,
   "eventIngestResults": [
   "eventIngestResults": [
Строка 297: Строка 299:
     }
     }
   ]
   ]
  }</code>
  }
====Код ответа====
====Код ответа====
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 Тип события.

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

  • 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