Выполнение синтетических мониторингов по требованию для CI/CD

Материал из Документация Ключ-АСТРОМ
Версия от 23:49, 28 января 2025; IKuznetsov (обсуждение | вклад)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)

Применение Ключ-АСТРОМ / Синтетический мониторинг / Общая информация / Выполнение синтетических мониторингов по требованию для CI/CD

АктивныйШлюз версии 1.233+

В дополнение к планированию выполнения синтетического мониторинга через регулярные интервалы (в настройках Частота и местоположения), вы также можете запускать выполнение по требованию для браузера, а также для HTTP- мониторов. Вы даже можете запускать выполнение по требованию автоматически созданных HTTP-мониторов для синхронизации учетных данных. В веб-интерфейсе Ключ-АСТРОМ выберите Выполнение по требованию в верхней части страницы сведений о мониторе.

1025.png

Вы также можете использовать мощный API: Синтетика - выполнение мониторинга по запросу для запуска выполнения нескольких мониторов и получения результатов. Запросы на выполнение по требованию имеют приоритет над запланированными выполнениями и отправляются в начало очереди запросов.

Вы можете запускать выполнение по требованию из любого назначенного или не назначенного местоположения через веб-интерфейс или API .

Во время создания синтетического монитора и в режиме редактирования вы также можете настроить монитор на выполнение только по требованию — выберите частоту Только по запросу.

1026.png

Выполнение по требованию с обширными функциями является ценным инструментом в вашей стратегии CI/CD:

  • Мониторинг может осуществляться по запросу из любого места, как общественного, так и частного.
  • Результаты выполнения по запросу могут быть включены или исключены из общих результатов мониторинга.
  • Казни могут быть включены или исключены из процесса обнаружения проблем.
  • Выполнение можно инициировать через веб-интерфейс или API.

Эти выполнения могут подтвердить, что новое развертывание вашего программного обеспечения прошло успешно, и могут быть интегрированы с инструментами сборки, такими как Jenkins или Keptn.

Выполнение по требованию также очень ценно, как быстрый тест монитора, например, для проверки монитора после разработки сложного скрипта. Аналогично, такие выполнения могут подтвердить, что исправление обнаруженной проблемой Ключ-АСТРОМ было эффективным, например, если вы добавили память хоста или вернулись к более старой версии приложения.

Благодаря возможности включения или исключения из общих результатов мониторинга и обнаружения проблем, выполнение по запросу предлагает гораздо больше возможностей, чем локальное воспроизведение clickpath браузера.

Выполнение по требованию на основе пользовательского интерфейса

Кнопка выполнения по требованию на страницах сведений о синтетическом мониторе позволяет вам запускать выполнение для выбранного монитора из всех или выбранного местоположения. Она также отображает список всех выполнений по требованию для монитора за предыдущие шесть часов, запущенных любым пользователем через веб-интерфейс или API.

1027.png

Инициировать новое выполнение

Любой пользователь с разрешением Просмотр среды на уровне среды или менеджмент-зоны может инициировать выполнение через пользовательский интерфейс.

Даже если вы отключите запланированное выполнение синтетического монитора во время периодов обслуживания , вы все равно сможете запускать мониторы по требованию.

  1. Выберите Выполнение по требованию в верхней части страницы сведений о мониторе.
  2. Вы перенаправлены на страницу Выполнение по требованию. Выберите назначенные местоположения или любое назначенное или не назначенное публичное или частное местоположение.
  3. Выберите режим обработки — обратите внимание, что это применяется ко всем выполнениям, если вы выберете все местоположения.
    • Стандарт (по умолчанию) — выполнение способствует обнаружению проблем и статистике доступности и производительности. Для браузерных мониторов вы можете просматривать точки данных на странице Многомерный анализ. Для HTTP-мониторов вы можете получить доступ к результатам выполнения, когда вы Анализируете детали выполнения .
    • Отключить обнаружение проблем — выполнения способствуют статистике доступности и производительности, но не обнаружению проблем. Для мониторов браузера точки данных отображаются на странице Многомерный анализ ; для мониторов HTTP вы можете просматривать результаты выполнения, когда вы Анализируете детали выполнения.
    • Только подробности исполнения — выполнения не влияют на статистику доступности и производительности или на обнаружение проблем. Для HTTP-мониторов вы по-прежнему можете получить доступ к результатам, когда вы Анализируете детали выполнения ; для браузерных мониторов эти точки данных отображаются на странице Многомерный анализ. Обратите внимание, что для всех режимов обработки выполнения видны в списке выполнений по требованию в веб-интерфейсе и извлекаются через API выполнения по требованию . Сводная и подробная информация о выполнении доступна в течение шести часов через API.
  4. Сбой при нарушении порога производительности — по умолчанию выполнения по требованию завершаются сбоем при нарушении порога производительности, учитывая, что их основная цель — проверка новых версий программного обеспечения в конвейере CI/CD. Однако вы можете отключить этот параметр, чтобы выполнения по требованию вели себя как регулярные запланированные выполнения (то есть нарушения порога производительности не приводили к сбою мониторов).
  5. только HTTP-мониторы Сбой при отсутствии или истечении срока действия SSL-сертификата — монитор завершает работу с ошибкой, если один или несколько его запросов обнаруживают просроченный, отсутствующий или истекающий срок действия SSL-сертификата. Этот параметр работает только в том случае, если проверка даты истечения срока действия SSL уже включена для HTTP-запроса в настройках монитора ; он использует параметр уровня запроса для проверки действительности SSL-сертификата в течение указанного количества дней. Если ваш монитор получает несколько запросов с разными настройками действительности сертификата SSL, функция Сбой при отсутствии или истечении срока действия SSL-сертификата проверяет и учитывает каждую настройку.
  6. Только браузерные мониторы Сделать снимок экрана при успешном выполнении — делать снимки экрана при успешном выполнении из публичных или частных местоположений; этот параметр отключен по умолчанию. При включении этого параметра снимки экрана при успешном выполнении будут сделаны, даже если монитор превысит порог производительности. Если вы инициируете выполнение из всех местоположений, снимки экрана при успешном выполнении будут сделаны из первого местоположения. Вы также можете делать снимки экрана при успешном выполнении для выполнений, запущенных через API. Обратите внимание, что в случае сбоя автоматически создаются снимки экрана.
  7. Выберите Активировать сейчас — вы увидите сводное диалоговое окно со списком мест выполнения; список выполнения отображает новые записи для запущенных выполнений. Первоначально этап выполнения — Сработало. Любые изменения, вносимые вами в сценарий мониторинга (конфигурацию), немедленно становятся доступными для выполнения по требованию в общедоступных или частных местах. Обратите внимание, что выполнение может не начаться в одно и то же время из разных мест — выполнение может занять больше времени из публичных мест, чем из частных. Дополнительную информацию о регулировании см. ниже.

Регулирование и ограничения

  • Между последовательными запусками мониторинга по запросу из одного и того же места (запущенными через веб-интерфейс или API) для каждого пользователя установлен обязательный интервал в 60 секунд. Примеры регулирования Все эти примеры предполагают выполнение из одного и того же места.
    • Пользователь А запускает монитор через API в течение 60 секунд после запуска того же монитора через пользовательский интерфейс — ограничение.
    • Пользователь B запускает монитор через API в течение 60 секунд после того, как пользователь A запускает тот же монитор через пользовательский интерфейс — без регулирования.
    • Пользователь B запускает монитор через пользовательский интерфейс в течение 60 секунд после того, как пользователь A запускает тот же монитор через пользовательский интерфейс — без регулирования.
    • Пользователь B запускает монитор через API в течение 60 секунд после того, как пользователь A запускает тот же монитор через APIбез регулирования.
  • При запуске нескольких выполнений по требованию через API действует ограничение в 100 выполнений на пакет.
  • Для среды Ключ-АСТРОМ также существует ограничение в 5000 выполнений по требованию в минуту.
  • Вы можете определить до 64 пар ключ-значение метаданных на пакет , где ключи и значения могут содержать до 1024 символов каждый.
  • При указании повторных выполнений по требованию для каждого местоположения максимальное количество выполнений составляет 10.

Невозможность срабатывания

Выполнение по требованию может не быть успешно запущено по разным причинам, например, если монитор отключен, местоположение недоступно или для монитора в определенном местоположении действует регулирование.

Существует несколько дополнительных причин, по которым выполнение по требованию может не быть успешно запущено через API : удаление монитора, неправильное указание идентификаторов монитора или местоположения, неправильное указание связанных идентификаторов служб или приложений, удаление местоположения, проблемы с общедоступной инфраструктурой Синтетики или проблемы со средой мониторинга Ключ-АСТРОМ.

Если выполнение не может быть успешно запущено через пользовательский интерфейс, причины отображаются в сводке статуса запуска после выбора Активировать сейчас . Этап выполнения в списке выполнения — Не сработало.

Подробная информация о выполнениях, не запущенных через API , возвращается в параметрах triggeringProblemsCount и triggeringProblemsDetails ответа для запроса POST.

1028.png

Список выполнений

Список выполнений показывает все выполнения по запросу (запущенные любым пользователем через веб-интерфейс или API) для данного монитора за последние шесть часов.

1029.png

  • Идентификатор выполнения — это уникальный идентификатор, назначаемый каждому выполнению; если вы инициируете выполнение из всех мест, выполнение в каждом месте будет иметь другой идентификатор.
  • В столбце Вызвано отображается время начала выполнения в часовом поясе вошедшего в систему пользователя.
  • Источник показывает, было ли выполнение запущено через Интернет UI или API.
  • В столбце Пользователь отображается идентификатор пользователя Ключ-АСТРОМ, запустившего выполнение.
  • В столбце Локация отображается название публичного или частного местоположения, из которого был запущен монитор.
  • Этап выполнения определяет различные этапы выполнения по требованию. Начальное значение равно Сработало (или Не сработало). После завершения выполнения значение меняется на Выполнено. На этом этапе доступны основные результаты, такие как длительность и код состояния HTTP. Индикатор выполнения продолжает отображаться Выполнено на этапе до тех пор, пока не будут доступны подробные результаты и значение не изменится на Данные извлечены. Если для каждого местоположения запускается несколько последовательных выполнений, первое выполнение помечается Сработало; остальные выполнения помечаются Ожидание.
  • В столбце Результат отображается, было ли выполнение Успешно или Неудача (с указанием причины сбоя ).
  • Вы можете повторно запустить  выполнение с точной конфигурацией, определенной, например, с метаданными, определенными через API. Помимо метаданных, реплицируются другие параметры выполнения: режим обработки , сбой из-за нарушения порога производительности, сбой из-за проблемы с сертификатом SSL и снимок экрана при успешном выполнении.
  • Нажмите кнопку Развернуть в столбце Детали , чтобы просмотреть продолжительность выполнения, метаданные пакета, такие как пары ключ-значение (доступно только через API ), и ссылку на результаты.

Результаты

Когда этап выполнения в списке выполнений изменится на Данные извлечены, вы можете перейти по ссылке сведений о выполнении, чтобы просмотреть подробные результаты для браузера или HTTP-монитора, который был выполнен.

Для браузерных мониторов вы будете перенаправлены на страницу многомерного анализа с выбранной точкой данных на диаграмме рассеяния. Выполнения по требованию идентифицируются по форме на диаграмме, а также по аннотации в списке точек данных.

1030.png

Сбор скриншотов для выполнения браузерного монитора по требованию такой же, как и для запланированных выполнений . Однако вы можете включить сбор скриншотов при успешном выполнении через пользовательский интерфейс , а также с помощью запросов POST через API .

Для HTTP-мониторов вы будете перенаправлены на вкладку Выполнение по требованию страницы Анализ деталей выполнения. Вы также можете получить доступ к этой вкладке, выбрав Анализ деталей выполнения на странице деталей HTTP монитора. Выберите Выполнение по требованию из раскрывающегося списка, чтобы просмотреть его детали.

1031.png

Вкладка Выполнение по требованию перезаписывается при каждом выполнении по требованию. Если выполнения по требованию находятся в режимах Стандарт или Отключить обнаружение проблем, подробности также записываются на вкладки последнего неудачного/успешного выполнения. Обратите внимание, что в этих режимах, если вы проваливаете монитор из-за нарушения порогового значения производительности, выполнение отображается на вкладках для успешных и выполнений по требованию.

API: Синтетика - выполнение мониторинга по запросу

Ознакомьтесь с разделом о регулировании выше, чтобы узнать об ограничениях на выполнение по требованию через веб-интерфейс и API.

Для получения дополнительной информации проверьте документацию по API Синтетика v2. Вы можете запустить пакетное выполнение , составить список выполнений по требованию , проверить основные и подробные результаты одного выполнения и проверить результаты пакетного выполнения .

API-ориентированные выполнения по требованию предлагают большую гибкость и масштабируемость, чем UI. API: Синтетика - выполнение мониторинга по запросу предлагает:

  • Возможность выполнения нескольких мониторов по требованию (пакетное выполнение) путем указания идентификаторов мониторов и, опционально, идентификаторов местоположений. Если вы не укажете местоположения, монитор будет выполняться из всех назначенных местоположений. Эта возможность доступна только через API.
  • Возможность выполнения мониторов из любого местоположения. В запросе POST для запуска выполнения по требованию каждый указанный монитор выполняется из указанных местоположений (или всех назначенных местоположений, если ни одно не указано).
  • АктивныйШлюз версии 1.259+ Возможность указать количество повторных выполнений для каждого местоположения , что полезно для качественных шлюзов и нагрузочных тестов. Эта возможность доступна только через API. Параметр executionCount позволяет указать количество выполнений для каждого местоположения для каждого монитора; максимальное значение — 10; если значение отсутствует, монитор выполняется один раз для каждого местоположения. Выполнения могут быть запущены последовательно (repeatMode is SEQUENTIAL) или параллельно (repeatMode is PARALLEL). Режим по умолчанию — последовательный. В последовательном режиме каждое выполнение автоматически ссылается на следующее выполнение, если таковое имеется, с параметром nextExecutionId. Когда вы запускаете несколько последовательных выполнений в одном месте, первое выполнение находится на этапе Cработало, а другие помечены Ожидание. Выполнения в каждом месте независимы друг от друга.
    • Если время последовательного выполнения в определенном месте истекло, то последующие выполнения в этом месте не запускаются.
    • Обратите внимание, что идентификаторы выполнения nextExecutionId являются последовательными для общедоступных местоположений и генерируются случайным образом для частных местоположений.
    • Изменения скрипта или учетных данных монитора после запуска пакета последовательных выполнений не влияют на оставшиеся выполнения. Таким образом, если другой пользователь изменяет скрипт, который вы выполняете последовательно, изменения скрипта не отражаются ни на каких оставшихся выполнениях.
  • АктивныйШлюз версии 1.259+ Возможность частично переопределять скрипт монитора и предоставлять пользовательские значения параметров специально для выполнения по требованию, что упрощает перенастройку и тестирование синтетических мониторов. Эта возможность доступна только через API. Параметр customizedScript позволяет вам перечислить requests (HTTP-мониторы) или events (браузерные мониторы) с настройками для каждого запроса или события. Для HTTP-мониторов вы видите, какие параметры имели пользовательские значения, когда вы Анализируете детали выполнения.

Для HTTP-мониторов можно настроить следующие параметры:

  • url
  • requestBody
  • validation
  • preProcessingScript
  • postProcessingScript
  • requestTimeout
  • authentication
  • configuration
    • requestHeaders
    • acceptAnyCertificate
    • followRedirects

Для мониторов браузера можно настроить следующие типы событий:

  • Navigate
  • Click
  • JavaScript
  • Keystroke
  • Tap
  • Select option
  • Cookie

Вы можете дополнительно указать sequenceId для порядка запроса или события в скрипте монитора. Например, используйте "sequenceId": "3" для указания изменений третьего события в мониторе браузера. Если вы не укажете sequenceId, изменения будут применены к первому запросу или событию, на которое не ссылался идентификатор последовательности в запросе API. Смотрите примеры ниже.

  • Любые подобные изменения скрипта предназначены только для выполнения по требованию и не сохраняются впоследствии.
  • Вы не можете изменить или переупорядочить количество запросов или событий.
  • Вы не можете изменить Имя запросов или событий (description в режиме скрипта).
  • Вы не можете изменить тип запроса (например, GET) или тип события (например, Navigate).
  • Вы не можете добавить скрипт предварительной или последующей обработки к HTTP-монитору, у которого нет ни того, ни другого.

Пример: HTTP-монитор с настраиваемым URL-адресом для одного запроса

Поскольку идентификатор последовательности не указан, переопределение URL в этом примере применяется к первому HTTP-запросу.

{

  "monitors": [

    {

      "monitorId": "HTTP_CHECK-C608F75BF82E5B22",

      "customizedScript": {

        "requests": [

          {

            "url": "https://www.yourdomain.com"

          }

        ]

      }

    }

  ]

}

Пример: HTTP-монитор с переопределением двух запросов

Поскольку идентификатор последовательности не указан, переопределение URL и скрипт предварительного выполнения с методом api.fail() применяются к первому HTTP-запросу. Обратите внимание, что вы можете переопределить скрипт предварительного или пост-выполнения только для монитора, у которого уже определен один такой скрипт. Для третьего запроса, где был указан идентификатор последовательности, было добавлено правило проверки.

{

  "monitors": [

    {

      "monitorId": "HTTP_CHECK-6349B98E1CD87352",

      "customizedScript": {

        "requests": [

          {

            "url": "https://www.somepage.org",

            "preProcessingScript": "if (response.getResponseBody().includes(\"error\")) {api.fail(\"HTTP failing monitor.\");}"

          },

          {

            "sequenceId": "3",

            "validation": {

              "rules": [

                {

                  "value": "=201",

                  "passIfFound": "true"

                }

              ]

            }

          }

        ]

      }

    }

  ]

}

Пример: Монитор браузера с пользовательским URL-адресом для события Navigate

Поскольку идентификатор последовательности не указан, переопределение URL-адреса в этом примере применяется к первому событию Navigate.

{

  "takeScreenshotsOnSuccess": true,

  "monitors": [

    {

      "monitorId": "SYNTHETIC_TEST-114F1C18CF07CD1D",

      "customizedScript": {

        "events": [

          {

            "type": "navigate",

            "url": "www.yourdomain.com"

          }

        ]

      }

    }

  ]

}

  • Возможность выполнения группы мониторов по требованию путем указания общих тегов и/или идентификаторов связанных служб или приложений . Обратите внимание, что все указанные условия должны совпадать для выполнения монитора по требованию. Эта возможность доступна только через API. Если в запросе POST указать три монитора по идентификатору и один тег, будут выполнены каждый из трех мониторов, а также все мониторы, соответствующие тегу.
  • Автоматическое назначение идентификатора пакета для всех выполнений метода POST, как для одного монитора, так и для нескольких мониторов. Это также позволяет извлекать результаты по идентификатору пакета.
  • Возможность определять пользовательские пары ключ-значение , например, для идентификации версий приложений, как часть пакета metadata. Эта возможность доступна только через API. Вы можете определить до 64 пар на пакет, где ключи и значения могут быть длиной до 1024 символов каждый. Метаданные ключ-значение доступны как в индивидуальных, так и в пакетных результатах выполнения, полученных через API и отображаемых в веб-интерфейсе.
  • Захват снимков экрана при успешном выполнении для мониторов браузера из публичных или частных местоположений путем настройки "takeScreenshotsOnSuccess": true в запросе POST (по умолчанию false). Снимки экрана при успешном выполнении захватываются из первого местоположения, указанного для каждого идентификатора монитора. Если местоположение не указано (например, когда вы используете теги для определения списка мониторов), снимки экрана захватываются из любого местоположения, назначенного монитору. Обратите внимание, что снимки экрана автоматически захватываются при сбое. Но если монитор выходит из строя из-за нарушения порога производительности, он все равно считается доступным, и снимки экрана не захватываются; однако вы можете включить takeScreenshotsOnSuccess.
  • Возможность сбоя выполнения HTTP-монитора по требованию, если SSL-сертификат отсутствует, просрочен или истекает срок его действия (параметр failOnSslWarning).
  • Возможность остановить запуск всех исполнений в пакете, если есть проблема с запуском любого исполнения (параметр stopOnProblem), например, если идентификатор монитора неверен/отсутствует или монитор удален. Эта возможность доступна только через API.
  • Извлечение списка выполнений по требованию (запущенных через веб-интерфейс или API всеми пользователями в вашей среде) за предыдущие шесть часов. Список включает идентификаторы выполнения для каждого выполнения. Вы можете отфильтровать этот список по:
    • Временные метки выполнения и доставки данных
    • Идентификаторы партии
    • Идентификаторы мониторов
    • Идентификаторы местоположений
    • Идентификаторы пользователей
  • Извлечение как основных, так и более подробных результатов выполнения (для которых вы указываете идентификатор выполнения). Базовые результаты лучше всего подходят для целей CI/CD и включают количество выполненных запросов/событий, результат успеха/неудачи и некоторые ключевые метрики. Например, базовые результаты для HTTP-мониторов сообщают общий размер запроса (для всех запросов вместе взятых), время до первого байта, время установления связи TLS, время подключения TCP, время поиска DNS и конечный код статуса HTTP. Подробные результаты больше подходят для устранения неполадок. Для HTTP-мониторов это полный набор результатов, видимых в веб-интерфейсе, когда вы Анализируете детали выполнения.
  • Пакетное извлечение результатов при указании идентификатора пакета. Результаты пакетной обработки включают информацию о выполненных и завершенных казнях. Обратите внимание, что executedCount — это количество выполнений, завершившихся успехом или неудачей. failedToExecuteCount — это количество выполнений, которые были запущены, но для которых результаты недоступны по техническим причинам (например, проблема с движком АктивногоШлюза или Синтетики или результаты, которые не удалось отправить в кластер Ключ-АСТРОМ). executedCount+ failedToExecuteCount= triggeredCount.
  • Детализированные разрешения для запуска и извлечения данных для выполнения по требованию. Для запуска выполнения (POST) вам необходимы права на создание мониторов (ExternalSyntheticIntegration область действия токена) или область действия токена syntheticExecutions.write, которая позволяет вам запускать выполнение, но не создавать новые мониторы. Для извлечения данных (GET) вам понадобится любая из областей действия ExternalSyntheticIntegration, ReadSyntheticData или syntheticExecutions.read token.