Как я получил бесплатный синтетический мониторинг
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, которые хранятся в памяти.
Свяжитесь с нами
Надеюсь, это было полезно. Буду рад услышать любые отзывы. Приятного рева!
:::информация Также появляется здесь.
:::
Оригинал