Отправляет сторонние синтетические мониторы, расположения и результаты выполнения мониторов в АппОптима.
Запрос использует в качестве полезной нагрузки application/json
формат.
POST | АппОптима | 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
Результат
Подсветка показывает параметры, переданные в запросе.