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

Материал из Документация Ключ-АСТРОМ
 
(не показаны 3 промежуточные версии этого же участника)
Строка 2: Строка 2:


Запрос создает <code>application/json</code>полезную нагрузку.
Запрос создает <code>application/json</code>полезную нагрузку.
Важный
Прием пользовательских событий использует единицы данных Дейвиса (DDU) из пула событий.
Первых компаний, внедривших
Этот запрос является выпуском Early Adopter и может быть изменен несовместимым образом.
{| class="wikitable"
{| class="wikitable"
| rowspan="3" |СООБЩЕНИЕ
| 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>
|-
|-
|SaaS
|Cреда АктивногоШлюза
|<code><nowiki>https://{your-environment-id}.live.dynatrace.com/api/v2/events/ingest</nowiki></code>
|-
|Окружающая среда АктивногоШлюза
|<code><nowiki>https://{your-activegate-domain}/e/{your-environment-id}/api/v2/events/ingest</nowiki></code>
|<code><nowiki>https://{your-activegate-domain}/e/{your-environment-id}/api/v2/events/ingest</nowiki></code>
|}
|}


== Аутентификация ==
== Аутентификация ==
Чтобы выполнить этот запрос, вам нужен токен доступа с областью событий Ingest ( <code>events.ingest</code>) . Чтобы узнать, как его получить и использовать, см. раздел Токены и аутентификация .
Чтобы выполнить этот запрос, вам нужен токен доступа с областью событий Ingest ( <code>events.ingest</code>) . Чтобы узнать, как его получить и использовать, см. раздел [[Токены и аутентификация (API)|Токены и аутентификация]] .


== Параметры ==
== Параметры ==
Строка 30: Строка 19:
!Тип
!Тип
!Описание
!Описание
!В
!In
!Необходимый
!Необходимость
|-
|-
|тело
|body
|Прием событий
|EventIngest
|Тело JSON запроса. Содержит свойства нового события.
|Тело JSON запроса. Содержит свойства нового события.
|тело
|body
|необязательный
|необязательный
|}
|}
Строка 42: Строка 31:
=== Объекты тела запроса ===
=== Объекты тела запроса ===


==== Объект _ <code>EventIngest</code> ====
==== Объект <code>EventIngest</code> ====
Конфигурация события для загрузки.
Конфигурация события для загрузки.
{| class="wikitable"
{| class="wikitable"
Строка 49: Строка 38:
!Описание
!Описание
|-
|-
|тип события
|eventType
|string
|string
|Тип события.
|Тип события.
Строка 66: Строка 55:
* <code>RESOURCE_CONTENTION_EVENT</code>
* <code>RESOURCE_CONTENTION_EVENT</code>
|-
|-
|заглавие
|title
|string
|string
|Название события.
|Название события.
|-
|-
|время начала
|startTime
|целое число
|integer
|Время начала события в миллисекундах UTC.
|Время начала события в миллисекундах UTC.


Строка 78: Строка 67:
Может быть <code>null</code>.
Может быть <code>null</code>.
|-
|-
|время окончания
|endTime
|целое число
|integer
|Время окончания события в миллисекундах UTC.
|Время окончания события в миллисекундах UTC.


Строка 86: Строка 75:
Может быть <code>null</code>.
Может быть <code>null</code>.
|-
|-
|тайм-аут
|timeout
|целое число
|integer
|Время ожидания события в минутах.
|Время ожидания события в минутах.


Строка 94: Строка 83:
Может быть <code>null</code>.
Может быть <code>null</code>.
|-
|-
|селектор объектов
|entitySelector
|string
|string
|Селектор сущностей , определяющий набор сущностей Ключ-АСТРОМ, которые будут связаны с событием.
|Селектор сущностей , определяющий набор сущностей Ключ-АСТРОМ, которые будут связаны с событием.
Строка 104: Строка 93:
Может быть <code>null</code>.
Может быть <code>null</code>.
|-
|-
|характеристики
|properties
|объект
|object
|Карта свойств события.
|Карта свойств события.


Строка 136: Строка 125:
|-
|-
|201
|201
|Результаты приема событий
|EventIngestResults
|Запрос приема события был получен сервером. Тело ответа указывает для каждого события, было ли его создание успешным.
|Запрос приема события был получен сервером. Тело ответа указывает для каждого события, было ли его создание успешным.
|}
|}
Строка 142: Строка 131:
=== Объекты тела ответа ===
=== Объекты тела ответа ===


==== Объект _ <code>EventIngestResults</code> ====
==== Объект <code>EventIngestResults</code> ====
Результаты приема событий.
Результаты приема событий.
{| class="wikitable"
{| class="wikitable"
Строка 149: Строка 138:
!Описание
!Описание
|-
|-
|отчетПодсчет
|reportCount
|целое число
|integer
|Количество созданных отчетов о событиях.
|Количество созданных отчетов о событиях.


Может быть <code>null</code>.
Может быть <code>null</code>.
|-
|-
|eventIngestРезультаты
|eventIngestResults
|Результат загрузки события []
|EventIngestResult[]
|Результат каждого созданного отчета о событиях.
|Результат каждого созданного отчета о событиях.


Строка 162: Строка 151:
|}
|}


==== Объект _ <code>EventIngestResult</code> ====
==== Объект <code>EventIngestResult</code> ====
Результат созданного отчета о событиях.
Результат созданного отчета о событиях.
{| class="wikitable"
{| class="wikitable"
Строка 169: Строка 158:
!Описание
!Описание
|-
|-
|статус
|status
|string
|string
|Статус приема.
|Статус приема.
Строка 182: Строка 171:
Может быть <code>null</code>.
Может быть <code>null</code>.
|-
|-
|идентификатор корреляции
|correlationId
|string
|string
|Идентификатор корреляции созданного события.
|Идентификатор корреляции созданного события.
Строка 211: Строка 200:
==== Curl ====
==== Curl ====
  <code>curl --request POST \
  <code>curl --request POST \
   --url <nowiki>https://mySampleEnv.live.dynatrace.com/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' \
   --data '{
   --data '{
Строка 223: Строка 212:


==== URL-адрес запроса ====
==== URL-адрес запроса ====
  <code><nowiki>https://mySampleEnv.live.dynatrace.com/api/v2/events/ingest</nowiki></code>
  <code><nowiki>https://mySampleEnv.live.ruscomtech.ru/api/v2/events/ingest</nowiki></code>


==== Тело запроса ====
==== Тело запроса ====
Строка 260: Строка 249:
==== Curl ====
==== Curl ====
  <code>curl --request POST \
  <code>curl --request POST \
   --url <nowiki>https://mySampleEnv.live.dynatrace.com/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' \
   --data '{
   --data '{
Строка 275: Строка 264:


==== URL-адрес запроса ====
==== URL-адрес запроса ====
  <code><nowiki>https://mySampleEnv.live.dynatrace.com/api/v2/events/ingest</nowiki></code>
  <code><nowiki>https://mySampleEnv.live.ruscomtech.ru/api/v2/events/ingest</nowiki></code>


==== Тело запроса ====
==== Тело запроса ====
Строка 311: Строка 300:
==== Curl ====
==== Curl ====
  <code>curl --request POST \
  <code>curl --request POST \
   --url <nowiki>https://mySampleEnv.live.dynatrace.com/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' \
   --data '{
   --data '{
Строка 326: Строка 315:


==== URL-адрес запроса ====
==== URL-адрес запроса ====
  <code><nowiki>https://mySampleEnv.live.dynatrace.com/api/v2/events/ingest</nowiki></code>
  <code><nowiki>https://mySampleEnv.live.ruscomtech.ru/api/v2/events/ingest</nowiki></code>


==== Тело запроса ====
==== Тело запроса ====

Текущая версия на 17:03, 20 февраля 2023

Принимает пользовательское событие в Ключ-АСТРОМ.

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

POST Managed 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