Блог и новости

Pingera CLI - обратно в консоль

2025-08-28 19:58 Блог Проверки Новости
Мы знаем, что для многих инженеров и разработчиков консоль — это основной рабочий инструмент, а веб-интерфейс — лишь приятное дополнение (а 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. Это бесплатно :)