Мы знаем, что для многих инженеров и разработчиков консоль — это основной рабочий инструмент, а веб-интерфейс — лишь приятное дополнение (а API необходимое зло). Именно поэтому мы сделали следующий шаг, который приблизит нас к тем, кто любит простоту и скорость командной строки.
Pingera CLI: Мониторинг прямо из вашей консоли
Сегодня мы рады анонсировать Pingera CLI — наш инструмент командной строки, который находится в стадии бета-версии. Он создан для того, чтобы вы могли управлять мониторингом и платформой, не отрываясь от терминала. Больше никаких переключений между вкладками и кликов мышкой. Просто pngr checks list и вся информация у вас перед глазами.
Популярность CLI-инструментов растет, и это не случайно. Гиганты вроде Google и OpenAI уже выпускают свои CLI-версии для Gemini и Codex. Это подтверждает, что разработчикам нужен быстрый, автоматизируемый доступ к ключевым функциям, минуя графический интерфейс. Наш Pingera CLI создан именно с этой целью.
Почему CLI, а не API?
Конечно, вы всегда могли использовать наш API для автоматизации. Но CLI — это нечто большее. Это инструмент, который решает конкретные, повседневные задачи:
- Быстрый доступ: Узнать статус проверки или запустить её по требованию — это делается одной командой, без необходимости писать скрипты.
- Удобство для DevOps: CLI легко интегрируется в CI/CD пайплайны. Например, можно автоматически запускать синтетическую проверку после каждого деплоя и, если она провалилась, откатить изменения.
- Чтение данных: Инструмент по умолчанию выдаёт данные в красивой, человекочитаемой таблице, а не в виде сырого JSON. Конечно, при желании вы можете получить и JSON или YAML, что удобно для парсинга и скриптинга.
Наш CLI-инструмент написан на Python и опубликован под лицензией MIT тут: pingera/pingera-cli. CLI основан на нашем SDK, который в свою очередь сгенерирован из OpenAPI схемы api.pingera.ru.
Как начать?
Установка Pingera CLI максимально проста и выполняется через pip или uv:
pip install pingera-cliПосле установки необходимо авторизоваться, используя ваш API-ключ, который можно получить в личном кабинете Pingera в настройках.
pngr auth login --api-key ваш-api--ключ
# или добавьте ключ в переменную окружения PINGERA_API_KEYМожно проверить статус авторизации:
$ pngr auth status
╭────────────────────────────────── 🔐 Authentication Status ──────────────────────────────────╮
│ │
│ ✅ Authenticated │
│ │
│ API Key: ✓ Set (4a4688be...f9d9) │
│ Source: config file │
│ Status: Active │
│ │
│ Note: Environment variable takes precedence over config file. │
│ │
│ API Key Check: ✅ Valid │
│ │
╰──────────────────────────────────────────────────────────────────────────────────────────────╯Что уже можно делать?
В текущей бета-версии мы сфокусировались на управлении проверками. Вы можете:
- Просмотреть список всех ваших проверок: pngr checks list
- Получить подробную информацию о конкретной проверке: pngr checks get <check-id>
- Создать новую проверку прямо из консоли: pngr checks create --name "My Website" --type web --url https://example.com
- Посмотреть результаты последних запусков: pngr checks results <check-id>
- Запустить проверку по требованию: pngr checks run existing <check-id>
Все команды поддерживают гибкую настройку вывода с помощью флага --output, который может принимать значения table, json или yaml.
Больше информации о возможностях CLI вы можете прочитать в документации.
Кейс: Быстрый запуск Playwright-скрипта из CLI
Представьте, что у вас уже есть готовый Playwright-скрипт для синтетической проверки. Например, он проверяет процесс регистрации или оформления заказа. С помощью Pingera CLI вы можете запустить его одной командой и мгновенно получить результат, не создавая проверку в веб-интерфейсе.
Команда для такого запуска выглядит так:
pngr checks run custom --type synthetic --pw-script-file my-playwright-script.jsЭта команда загрузит ваш локальный скрипт, запустит его на нашей платформе и выведет результаты прямо в терминал, включая логи и скриншоты, если они предусмотрены в скрипте.
$ pngr checks run custom --type synthetic --pw-script-file my-pw-script.js --wait-for-result
╭─────────────────────────────────────────── ℹ️ Info ───────────────────────────────────────────╮
│ │
│ Loaded Playwright script from: my-pw-script.js │
│ │
╰──────────────────────────────────────────────────────────────────────────────────────────────╯
╭────────────────────────────────────── ✅ Check Queued ───────────────────────────────────────╮
│ │
│ On-demand check queued successfully! │
│ Job ID: rnwdgc9rqplt │
│ Type: synthetic │
│ Script: loaded from my-pw-script.js │
│ │
│ Waiting for result... │
│ │
╰──────────────────────────────────────────────────────────────────────────────────────────────╯
╭──────────────────────────────── 📋 Job Status: rnwdgc9rqplt ─────────────────────────────────╮
│ │
│ Job Information: │
│ • Job ID: rnwdgc9rqplt │
│ • Status: ✅ completed │
│ • Job Type: custom_check │
│ • Check ID: None │
│ • Created: 2025-08-29 07:44:41 UTC │
│ • Started: 2025-08-29 07:44:42 UTC │
│ • Completed: 2025-08-29 07:44:51 UTC │
│ Check Parameters: │
│ • Name: On-demand check │
│ • Type: synthetic │
│ • Script: const { test, expect } = require('@playwright/test'); │
│ │
│ test('Basic Screenshot', async ({ page }) => ... │
│ • Timeout: 30s │
│ Result Summary: │
│ • Result Status: ok │
│ • Response Time: 2595ms │
│ • Server: RU, Moscow (31.44.8.123) │
│ │
│ Synthetic Check Results: │
│ • Total Execution Time: 7594ms │
│ • Tests: 1 passed, 0 failed, 1 total │
│ │
│ Test Results: │
│ • Basic Screenshot: ✅ passed (2595ms) │
│ • Screenshots: 1 available │
│ - screenshot.jpg - │
│ https://storage.yandexcloud.net/pingera-user-files/screenshots/redacted/null/redacted.jpg │
│ │
│ Execution Logs: │
│ • LOG [2025-08-29T07:44:50.959Z]: Успешно загрузили страницу и сделали скриншот │
│ │
│ Page Performance: │
│ • Page Load Duration: 436.80ms │
│ • Web Vitals: │
│ - First Contentful Paint: 1168ms │
│ - Largest Contentful Paint: 109.90000000000055ms │
│ - Time to First Byte: 8.199999999999818ms │
│ • Network Requests: 37 total │
│ - navigation: 1 │
│ - script: 14 │
│ - link: 8 │
│ - img: 12 │
│ - css: 2 │
│ │
│ Main Document Request: │
│ • URL: https://pingera.ru/ │
│ • Method: GET │
│ • Status: 200 │
│ │
╰──────────────────────────────────────────────────────────────────────────────────────────────╯Более подробную информацию о функционале и примерах использования вы можете найти в нашей документации. Мы открыты к предложениям и ждём ваших Pull Request’ов на GitHub!
Регистрируйтесь на app.pingera.ru, создайте API ключ и попробуйте CLI. Это бесплатно :)
Регистрируйтесь на app.pingera.ru, создайте API ключ и попробуйте CLI. Это бесплатно :)