POST прочие мониторы

Материал из Документация Ключ-АСТРОМ

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

Запрос использует в качестве полезной нагрузки 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.

Если true, установите для удаленного параметра значение false.

по желанию
deleted boolean Флаг удаленного монитора. Значение по умолчанию false.

Если true, установите для включенного параметра значение 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

Результат

Подсветка показывает параметры, переданные в запросе.

Syn1.png

Syn2.png