POST прочие мониторы: различия между версиями
ENetrebin (обсуждение | вклад) (Новая страница: «Отправляет сторонние синтетические мониторы, расположения и результаты выполнения мон...») |
ENetrebin (обсуждение | вклад) |
||
Строка 681: | Строка 681: | ||
==== Результат ==== | ==== Результат ==== | ||
Подсветка показывает параметры, переданные в запросе. | Подсветка показывает параметры, переданные в запросе. | ||
[[Файл:syn1.png]] | |||
[[Файл:syn2.png]] |
Текущая версия на 10:27, 25 октября 2022
Отправляет сторонние синтетические мониторы, расположения и результаты выполнения мониторов в Ключ-АСТРОМ.
Запрос использует в качестве полезной нагрузки application/json
формат.
POST | Managed | https://{your-domain}/e/{your-environment-id}/api/v1/synthetic/ext/tests
|
Среда АктивногоШлюза | https://{your-activegate-domain}/e/{your-environment-id}/api/v1/synthetic/ext/tests
|
Аутентификация
Чтобы выполнить этот запрос, вам нужен токен доступа с областью создания и чтения синтетических мониторов, местоположений и узлов ( ExternalSyntheticIntegration
) . Чтобы узнать, как его получить и использовать, см. раздел Токены и аутентификация .
Параметры
Параметр | Тип | Описание | In | Необходимость |
---|---|---|---|---|
body | 3rdPartySyntheticTests | Тело JSON запроса. Содержит сторонние синтетические мониторы, местоположения и результаты. | body | требуется |
Объекты тела запроса
Объект 3rdPartySyntheticTests
Элемент | Тип | Описание | Необходимость |
---|---|---|---|
syntheticEngineName | string | Тип стороннего синтетического монитора. | требуется |
syntheticEngineIconUrl | string | URL-адрес стороннего искусственного монитора. | по желанию |
messageTimestamp | integer | Отметка времени создания сообщения в миллисекундах UTC. | требуется |
locations | 3rdPartySyntheticLocation[] | Список сторонних синтетических локаций. | требуется |
tests | 3rdPartySyntheticMonitor[] | Список сторонних синтетических мониторов. | требуется |
testResults | 3rdPartySyntheticTestResult[] | Список результатов выполнения стороннего синтетического монитора. | по желанию |
Объект 3rdPartySyntheticLocation
Стороннее синтетическое местоположение.
Элемент | Тип | Описание | Необходимость |
---|---|---|---|
id | string | Идентификатор местоположения. | требуется |
name | string | Название местоположения, отображаемое в пользовательском интерфейсе. | требуется |
IP | string | IP-адрес местоположения. | по желанию |
Объект 3rdPartySyntheticMonitor
Сторонний синтетический монитор.
Элемент | Тип | Описание | Необходимость |
---|---|---|---|
id | string | Идентификатор монитора. | требуется |
title | string | Название монитора. | требуется |
description | string | Описание монитора. | по желанию |
testSetup | string | Информация по настройке монитора, например browser .
|
по желанию |
expirationTimestamp | integer | Отметка времени истечения срока действия монитора в миллисекундах UTC. | по желанию |
drilldownLink | string | URL-адрес результатов выполнения монитора. | по желанию |
editLink | string | URL-адрес для редактирования монитора в исходном пользовательском интерфейсе. | по желанию |
enabled | boolean | Монитор включен ( true ) или отключен ( false ). Значение по умолчанию true .
Если |
по желанию |
deleted | boolean | Флаг удаленного монитора. Значение по умолчанию false .
Если |
по желанию |
locations | SyntheticTestLocation[] | Места, из которых запускается синтетический монитор. | требуется |
steps | SyntheticTestStep[] | Шаги стороннего монитора. | по желанию |
scheduleIntervalInSeconds | integer | Частота монитора в секундах. Мониторинг повторяется с заданным интервалом на стороннем источнике.
Ключ-АСТРОМ ожидает результатов выполнения монитора с указанным интервалом. Если вы реже отправляете результаты в Ключ-АСТРОМ, измените значение noDataTimeout соответствующим образом. |
требуется |
noDataTimeout | integer | Время ожидания монитора в секундах. Если в течение этого времени не сообщается о результатах, состояние доступности переключается на неконтролируемое. По умолчанию удвоена частота монитора. | по желанию |
Объект SyntheticTestLocation
Место проведения синтетического теста.
Элемент | Тип | Описание | Необходимость |
---|---|---|---|
id | string | Идентификатор местоположения. | требуется |
enabled | boolean | Местоположение включено/выключено. Значение по умолчанию — true , включение местоположения.
|
по желанию |
Объект SyntheticTestStep
Шаг синтетического монитора.
Элемент | Тип | Описание | Необходимость |
---|---|---|---|
id | integer | Идентификатор шага. | требуется |
title | string | Имя шага, отображаемое в пользовательском интерфейсе. | требуется |
Объект 3rdPartySyntheticTestResult
Результаты выполнения стороннего синтетического монитора.
Элемент | Тип | Описание | Необходимость |
---|---|---|---|
id | string | Идентификатор стороннего синтетического монитора. | требуется |
totalStepCount | ineger | Количество шагов на мониторе. По умолчанию количество шагов SyntheticTestSteps. | по желанию |
locationResults | 3rdPartySyntheticLocationTestResult[] | Результаты выполнения сторонних мониторов по местоположению. | требуется |
Объект 3rdPartySyntheticLocationTestResult
Результаты выполнения сторонних мониторов по местоположению.
Элемент | Тип | Описание | Необходимость |
---|---|---|---|
id | string | Идентификатор местоположения. | требуется |
startTimestamp | integer | Отметка времени начала выполнения текста в миллисекундах UTC. | требуется |
successRate | number | Общая доступность монитора из этого места, в процентах.
Если отсутствует, рассчитывается как количество успешных шагов по сравнению с общим количеством шагов. |
по желанию |
success | boolean | Если тест был успешным ( true ) или неудачным ( false ) - это повлияет на временные ряды доступности.
|
требуется |
responseTimeMillis | integer | Общее время отклика монитора из этого местоположения в миллисекундах.
Если отсутствует, то рассчитывается как сумма времени отклика всех шагов. |
по желанию |
stepResults | SyntheticMonitorStepResult[] | Результаты отдельных шагов монитора. | требуется |
Объект SyntheticMonitorStepResult
Результат индивидуального шага синтетического монитора.
Элемент | Тип | Описание | Необходимость |
---|---|---|---|
id | integer | ID шага. Он уникален в пределах определения теста. | требуется |
startTimestamp | integer | Временная метка выполнения шага теста, миллисекунды UTC. | требуется |
responseTimeMillis | integer | Время отклика шага в миллисекундах.
Отсутствует, когда недоступно значимое время отклика (как может быть в случае определенных условий ошибки, таких как неправильно настроенный пошаговый сценарий). |
по желанию |
error | SyntheticMonitorError | Сообщение об ошибке шага синтетического монитора. | по желанию |
Объект SyntheticMonitorError
Сообщение об ошибке шага синтетического монитора.
Элемент | Тип | Описание | Необходимость |
---|---|---|---|
code | integer | Код ошибки. | требуется |
message | sring | Сообщение об ошибке. | требуется |
JSON-модель тела запроса
Это модель тела запроса, показывающая возможные элементы. Его необходимо настроить для использования в реальном запросе.
{
"syntheticEngineName": "string",
"syntheticEngineIconUrl": "string",
"messageTimestamp": 1,
"locations": [
{
"id": "string",
"name": "string",
"ip": "string"
}
],
"tests": [
{
"id": "string",
"title": "string",
"description": "string",
"testSetup": "string",
"expirationTimestamp": 1,
"drilldownLink": "string",
"editLink": "string",
"enabled": true,
"deleted": true,
"locations": [
{
"id": "string",
"enabled": true
}
],
"steps": [
{
"id": 1,
"title": "string"
}
],
"scheduleIntervalInSeconds": 1,
"noDataTimeout": 1
}
],
"testResults": [
{
"id": "string",
"totalStepCount": 1,
"locationResults": [
{
"id": "string",
"startTimestamp": 1,
"successRate": 1,
"success": true,
"responseTimeMillis": 1,
"stepResults": [
{
"id": 1,
"startTimestamp": 1,
"responseTimeMillis": 1,
"error": {
"code": 1,
"message": "string"
}
}
]
}
]
}
]
}
Ответ
Коды ответов
Код | Тип | Описание |
---|---|---|
204 | Успех. Информация принимается и сохраняется. | |
400 | ErrorEnvelope | Не удалось. Ввод недействителен. |
Пример
В этом примере запрос отправляет следующие данные из стороннего синтетического движка Моя сторонняя синтетическая система в Ключ-АСТРОМ:
- Три локации: Linz1 , Linz2 и Linz3 .
- Два монитора: пример синтетического монитора — 1 и пример синтетического монитора — 2 , каждый из которых содержит три шага и запускается из двух мест.
- Один результат на шаг, на место, для каждого монитора.
Мониторы имеют следующие параметры:
пример синтетического монитора - 1 | пример синтетического монитора - 2 | |
---|---|---|
Частота | 300 секунд (5 минут) | 300 секунд (5 минут) |
Места | Linz1
Linz2 |
Linz2
Linz3 |
Шаги | Шаг 1-1
Шаг 1-2 Шаг 1-3 |
Шаг 2-1
Шаг 2-2 Шаг 3-3 |
Пример синтетического монитора — 1 монитор имеет следующее время отклика в миллисекундах:
Linz1 | Linz2 | |
---|---|---|
Шаг 1-1 | 7790 | 2075 |
Шаг 1-2 | 2073 | 4079 |
Шаг 1-3 | 8650 | 3937 |
Пример синтетического монитора — 2 монитора имеют следующие значения времени отклика в миллисекундах:
Linz2 | Linz3 | |
---|---|---|
Шаг 2-1 | 2200 | 9123 |
Шаг 2-2 | 6903 | 9722 |
Шаг 2-3 | 4821 | 1717 |
Маркер API передается в заголовке авторизации .
Поскольку тело запроса длинное, оно усечено в этом примере раздела Curl . Полное тело см. в разделе Тело запроса . Вы можете загрузить тело запроса в формате JSON, чтобы выполнить образец запроса в своей среде. Обязательно замените временные метки на недавние, иначе результаты будут слишком старыми.
Curl
curl -X POST \
https://mySampleEnv.live.ruscomtech.ru/api/v1/synthetic/ext/tests \
-H 'Authorization: Api-Token dt0c01.abc123.abcdefjhij1234567890' \
-H 'Content-Type: application/json' \
-d '{ <truncated - see the Request body section >}'
URL-адрес запроса
https://mySampleEnv.live.ruscomtech.ru/api/v1/synthetic/ext/tests
Тело запроса
{
"syntheticEngineName": "My third-party synthetic",
"syntheticEngineIconUrl": "https://static.thenounproject.com/png/1745-200.png",
"messageTimestamp": 1543572265528,
"locations": [
{
"id": "Linz1",
"ip": "127.0.0.1",
"name": "Linz1"
},
{
"id": "Linz2",
"ip": "127.0.0.2",
"name": "Linz2"
},
{
"id": "Linz3",
"ip": "127.0.0.3",
"name": "Linz3"
}
],
"tests": [
{
"id": "3rdPartySyntheticMonitor1",
"title": "example of synthetic monitor - 1",
"scheduleIntervalInSeconds": 300,
"locations": [
{
"id": "Linz1"
},
{
"id": "Linz2"
}
],
"steps": [
{
"id": 1,
"title": "Step1-1"
},
{
"id": 2,
"title": "Step1-2"
},
{
"id": 3,
"title": "Step1-3"
}
]
},
{
"id": "3rdPartySyntheticMonitor2",
"title": "example of synthetic monitor - 2",
"scheduleIntervalInSeconds": 300,
"locations": [
{
"id": "Linz2"
},
{
"id": "Linz3"
}
],
"steps": [
{
"id": 1,
"title": "Step2-1"
},
{
"id": 2,
"title": "Step2-2"
},
{
"id": 3,
"title": "Step2-3"
}
]
}
],
"testResults": [
{
"id": "3rdPartySyntheticMonitor1",
"totalStepCount": 3,
"locationResults": [
{
"id": "Linz1",
"startTimestamp": 1543572262538,
"success": true,
"stepResults": [
{
"id": 1,
"startTimestamp": 1543572262538,
"responseTimeMillis": 7790
},
{
"id": 2,
"startTimestamp": 1543572262538,
"responseTimeMillis": 2073
},
{
"id": 3,
"startTimestamp": 1543572262538,
"responseTimeMillis": 8650
}
]
},
{
"id": "Linz2",
"startTimestamp": 1543572262548,
"success": true,
"stepResults": [
{
"id": 1,
"startTimestamp": 1543572262548,
"responseTimeMillis": 2075
},
{
"id": 2,
"startTimestamp": 1543572262548,
"responseTimeMillis": 4079
},
{
"id": 3,
"startTimestamp": 1543572262548,
"responseTimeMillis": 3937
}
]
}
]
},
{
"id": "3rdPartySyntheticMonitor2",
"totalStepCount": 3,
"locationResults": [
{
"id": "Linz2",
"startTimestamp": 1543572262548,
"success": true,
"stepResults": [
{
"id": 1,
"startTimestamp": 1543572262548,
"responseTimeMillis": 2200
},
{
"id": 2,
"startTimestamp": 1543572262548,
"responseTimeMillis": 6903
},
{
"id": 3,
"startTimestamp": 1543572262548,
"responseTimeMillis": 4821
}
]
},
{
"id": "Linz3",
"startTimestamp": 1543572262558,
"success": true,
"stepResults": [
{
"id": 1,
"startTimestamp": 1543572262558,
"responseTimeMillis": 9123
},
{
"id": 2,
"startTimestamp": 1543572262558,
"responseTimeMillis": 9722
},
{
"id": 3,
"startTimestamp": 1543572262558,
"responseTimeMillis": 1717
}
]
}
]
}
]
}
Код ответа
204
Результат
Подсветка показывает параметры, переданные в запросе.