Как я получил бесплатный синтетический мониторинг

Как я получил бесплатный синтетический мониторинг

13 января 2024 г.

Я использую несколько инструментов с открытым исходным кодом и Rusty, чтобы получить бесплатный синтетический мониторинг для своих побочных проектов. Это действительно просто – возможно, это вам поможет!

Почему синтетический мониторинг?

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

Инструменты

Prodzilla — это новое синтетическое приложение для мониторинга с открытым исходным кодом, созданное на Rust. В настоящее время он позволяет определять зонды, которые будут вызывать определенные конечные точки по определенному расписанию и утверждать, что ответы соответствуют ожиданиям. Если они этого не делают, Prodzilla в настоящее время имеет возможность предупреждать об этом, отправляя веб-перехватчик на заданный URL-адрес. Для его использования не требуется какой-либо специальной настройки, если у вас установлен Rust. Полное раскрытие: Я это создал!

Shuttle — это отличный и быстрый сервис хостинга для приложений Rust. Важно отметить, что в настоящее время он бесплатен и гарантирует постоянный бесплатный уровень. Shuttle позволяет чрезвычайно легко и быстро развернуть работающее приложение Rust. Для работы с этим руководством вам потребуется создать учетную запись на сайте shuttle.rs, а затем установить интерфейс командной строки Shuttle с помощью:

cargo install cargo-shuttle

Процесс

Настройка Продзиллы

У Prodzilla есть специальная ветка, готовая к запуску с помощью Shuttle, поэтому клонируйте ее. Если вам интересны структурные различия между этим приложением и стандартным приложением Rust, конкретные изменения, необходимые для миграции, описаны в «Переход на Shuttle'.

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

Во-первых, вам нужно настроить свой prodzilla.yml. Вероятно, вам нужно что-то вроде приведенного ниже, заменив сайт, который вы хотите проверить. Это будет проверять работоспособность сайта и возвращать HTTP 200 OK каждые 5 минут (300 секунд), начиная с 5 секунд после запуска Prodzilla.

probes:
  - name: Your Probe
    url: https://yourwebsite.com/endpoint
    http_method: GET
    expectations:
      - field: StatusCode
        operation: Equals 
        value: "200"
    schedule:
      initial_delay: 5
      interval: 300

Остальные поля в основном говорят сами за себя, но вы также можете указать ожидания относительно Body, а также использовать операции Contains или IsOneOf > (с использованием значений, разделенных вертикальной чертой).

Если вам нужно добавить аутентификацию, Prodzilla в настоящее время поддерживает аутентификацию с использованием токенов Bearer в заголовках, хотя в текущей версии Prodzilla вам понадобится долгоживущий токен.

probes:
  - name: Your Probe
    ...
    headers:
        Authorization: Bearer <token>

Если вы хотите, чтобы какая-то система получала сигнал в случае сбоя одного из ваших зондов, вы также можете добавить URL-адрес приемника веб-перехватчика к вашему зонду:

probes:
  - name: Your Probe
    ...
    alerts:
      - url: https://alertme.site/webhook

Развертывание в Shuttle

Последнее, что нам нужно сделать в коде перед развертыванием, — это установить имя проекта Shuttle в Shuttle.toml. Выберите уникальное имя:

name = "my-prodzilla"

А теперь нам просто нужно его отправить! Что мы можем сделать, выполнив следующие команды. Обратите внимание, что шаттл будет жаловаться, если вы не выполнили коммит в git, поэтому сделайте это или обойдите это, добавив флаг --allow-dirty.

cargo shuttle project start
cargo shuttle project deploy

И вуаля! Если вы перейдете по адресу https://{name}.shuttleapp.rs, вы должны увидеть сообщение Roar! А если вы перейдете по адресу https://{name}.shuttleapp.rs/probe_results, вы должны увидеть результаты ваших зондирований в формате JSON, которые хранятся в памяти.

Свяжитесь с нами

Надеюсь, это было полезно. Буду рад услышать любые отзывы. Приятного рева!

:::информация Также появляется здесь.

:::


Оригинал
PREVIOUS ARTICLE
NEXT ARTICLE