hubris

Grafana

Дашборд Hubris для Grafana — расход по моделям, запросы, доля ошибок, время ответа и лимиты ключей. Готовый файл импортируется одним действием.

Hubris отдаёт метрики в формате Prometheus, поэтому Grafana показывает расход на нейросети рядом с остальной инфраструктурой. Панели собирать не нужно — есть готовый дашборд.

Что на дашборде

ПанельЧто показывает
БалансОстаток в рублях, зелёный-жёлтый-красный по порогам
Расход за суткиСколько списано за последние 24 часа
Запросы в часТекущая скорость запросов
Доля ошибокКакая часть запросов не удалась за 15 минут
Расход по моделямРубли в час с накоплением — видно, кто разогнал счёт
Запросы по исходамУспех, отказ, ошибка модели — разными цветами
Время ответаМедиана и 95-й перцентиль
Токены по видамЗапрос, ответ, чтение и запись кэша
Лимиты ключейТаблица: лимит и сколько уже истрачено

Установка

1. Ключ для мониторинга

На странице Ключи создайте ключ и включите режим только чтение — он видит статистику, но не может потратить баланс. Если Grafana стоит на вашем сервере, там же привяжите ключ к его адресу.

2. Сбор метрик

В Prometheus (или Grafana Agent, VictoriaMetrics — любой сборщик) добавьте задание:

scrape_configs:
  - job_name: hubris
    scrape_interval: 60s
    metrics_path: /v1/metrics
    scheme: https
    authorization:
      credentials: sk-gw-…
    static_configs:
      - targets: [api.hubris.pw]

Проверить, что данные идут: в Grafana откройте Explore, выберите источник Prometheus и выполните hubris_balance_kopecks — должно вернуться число.

3. Импорт дашборда

Dashboards → New → Import, загрузите файл, выберите свой источник Prometheus и нажмите Import.

Скачать дашборд Grafana для Hubris

Девять панелей: баланс, расход за сутки и по моделям, запросы и доля ошибок, время ответа, токены, таблица лимитов по ключам.

hubris-dashboard.json · 11 КБ · Dashboards → New → Import

Оповещения

Пороги удобнее задавать правилами самой Grafana — она уже умеет слать в Telegram, почту и вебхуки. Два запроса, с которых стоит начать:

# баланс ниже 500 ₽
hubris_balance_kopecks < 50000

# доля ошибок выше 5% за 15 минут
100 * sum(rate(hubris_requests_total{outcome!="success"}[15m]))
  / clamp_min(sum(rate(hubris_requests_total[15m])), 0.0001) > 5

Расход считается из счётчиков функцией rate или increase, поэтому «сколько потратили за час» получается запросом, а не хранится отдельной метрикой: sum(increase(hubris_spend_kopecks_total[1h])) / 100 — рубли за час.

Если панели пустые

  • Нет данных вообще. Проверьте в Explore запрос hubris_balance_kopecks. Пусто — сборщик не доходит до Hubris: неверный ключ (401), ключ привязан к другому адресу (403), либо задание не подхватилось.
  • Часть панелей пустая. Панели расхода и токенов оживают после первых запросов через API: пока запросов не было, счётчиков ещё нет.
  • Таблица лимитов пустая. В неё попадают только ключи, у которых задан лимит расхода.

Обновлено: