Skip to content

Алерты на стоимость LLM API

Коротко:

LLM-расходы могут вырасти в 100× за час из-за prompt-loop, infinite retries или атаки. Два уровня защиты: hard cap на провайдере (OpenAI usage limit, Anthropic spend) + soft alert на ваш бюджет (heartbeat-monitor от биллинг-скрипта каждые 5 мин). Аттрибутируйте по user_id чтобы быстро bani-ть «убегающих».

Ниже: подробности, пример, смежные термины, FAQ.

Попробовать бесплатно →

Детали

  • OpenAI hard limit: Settings → Limits → Usage limits → Monthly budget (отрубает API)
  • Anthropic spend limit: Account → Plans & Billing → Spend limit
  • Soft alert каждые 5 мин: cron-скрипт fetch usage API → если > daily_target × 1.2 → Telegram
  • Attribution: каждый LLM-вызов теггируйте user_id + endpoint в JSON-логе для post-mortem
  • Защита от prompt-loop: max_tokens (50-500 для chat, 4K для long-form), timeout 30 с, retry not more than 1×

Пример

# Cron: каждые 5 мин — heartbeat в enterno.io с текущей дневной тратой
# /etc/cron.d/llm-cost-watch
*/5 * * * * www-data /usr/bin/python3 /opt/llm-cost-check.py

# llm-cost-check.py (упрощённо)
import requests, os
from datetime import date

spent = fetch_today_usage()  # ваш биллинг
budget = 50.0  # USD/день

if spent > budget * 1.2:
    requests.post('https://enterno.io/api/heartbeat',
        params={'token': os.environ['HEARTBEAT_TOKEN'],
                'status': 'critical',
                'msg': f'LLM spend ${spent:.2f} > 120% of ${budget}/day'})
else:
    requests.post('https://enterno.io/api/heartbeat',
        params={'token': os.environ['HEARTBEAT_TOKEN'], 'status': 'ok'})

Связанные

Как настроить алерты на расходы LLM API: краткое руководство

Чтобы настроить алерты на расходы LLM API, используйте инструменты мониторинга, такие как Prometheus или Grafana, для отслеживания использования API и установления пределов бюджета. Настройте уведомления с помощью Webhooks или email-рассылок, чтобы получать оповещения при превышении заданного бюджета. Например, для установки бюджетного лимита в 500 долларов в месяц используйте скрипт на Python, который будет проверять расходы и отправлять уведомления, если они превышают лимит.

Пошаговая настройка алертов на бюджет-кап

Настройка алертов на расходы LLM API начинается с определения бюджета и выбора подходящего инструмента мониторинга. В качестве примера, рассмотрим использование Prometheus и Alertmanager.

  1. Шаг 1: Установите и настройте Prometheus. Добавьте в конфигурацию Prometheus scrape-метрики вашего API:
scrape_configs:
  - job_name: 'llm_api'
    static_configs:
      - targets: ['localhost:8080']
  1. Шаг 2: Создайте правила алертов в файле конфигурации Alertmanager:
groups:
  - name: llm_api_alerts
    rules:
      - alert: HighLLMCost
        expr: sum(rate(api_cost[1h])) > 500
        for: 5m
        labels:
          severity: critical
        annotations:
          summary: 'Расходы LLM API превышают 500 долларов'
  1. Шаг 3: Настройте уведомления в Alertmanager, чтобы отправлять сообщения в Slack или по электронной почте:
receivers:
  - name: 'slack'
    slack_configs:
      - api_url: ''
        channel: '#alerts'

С помощью этих шагов вы сможете эффективно отслеживать расходы и получать уведомления при их превышении.

Настройка алертов на аномалии в расходах LLM API

Анализ аномалий в расходах LLM API может помочь предотвратить неожиданные затраты. Используйте алгоритмы машинного обучения для выявления аномалий на основе исторических данных.

Для настройки алертов на аномалии используйте такие библиотеки, как scikit-learn или TensorFlow. Например, вы можете использовать алгоритм Isolation Forest для выявления аномалий:

from sklearn.ensemble import IsolationForest
import pandas as pd

# Загрузка данных
data = pd.read_csv('api_costs.csv')
model = IsolationForest(contamination=0.1)
model.fit(data[['cost']])

# Предсказание аномалий
data['anomaly'] = model.predict(data[['cost']])

После этого настройте алерты на основе полученных аномалий, используя те же методы, что и для бюджетных лимитов. Например, если обнаружена аномалия, отправляйте уведомления через Alertmanager.

Подводя итог, настройка алертов на расходы LLM API включает в себя установку бюджета и мониторинг аномалий. Используйте Prometheus для отслеживания и Alertmanager для уведомлений, а также применяйте алгоритмы машинного обучения для анализа данных и выявления аномалий.

Как настроить алерты на расходы LLM API

Чтобы настроить алерты на расходы LLM API, вам необходимо интегрировать систему мониторинга с API-ключами, установив лимиты бюджета и параметры для отслеживания аномалий. Рекомендуется использовать инструменты, такие как Prometheus или Grafana, для визуализации и настройки оповещений. Убедитесь, что вы задали максимальный бюджет, например, 500 долларов, и установили пороговые значения для аномальных расходов, превышающих 20% от среднего расхода за предыдущий месяц.

Пример настройки алертов на бюджет-кап

Для настройки алертов на бюджет-кап вам потребуется следовать нескольким шагам. Рассмотрим пример с использованием Prometheus и Alertmanager.

  1. Шаг 1: Установите Prometheus и Alertmanager на ваш сервер. Вы можете использовать следующую команду для установки:
sudo apt-get install prometheus prometheus-alertmanager
  1. Шаг 2: Настройте конфигурацию Prometheus, добавив ваш LLM API в качестве источника данных. Пример конфигурации:
global:
  scrape_interval: 15s

scrape_configs:
  - job_name: 'llm_api'
    static_configs:
      - targets: ['your-llm-api-endpoint']
  1. Шаг 3: Определите правило для алерта в файле конфигурации Prometheus:
groups:
- name: llm_alerts
  rules:
  - alert: BudgetExceeded
    expr: sum(rate(llm_api_expenses[1h])) > 500
    for: 1h
    labels:
      severity: critical
    annotations:
      summary: 'Бюджет превышен!'
      description: 'Расходы LLM API превысили 500 долларов за последний час.'
  1. Шаг 4: Настройте Alertmanager для отправки уведомлений по электронной почте или в мессенджеры, добавив конфигурацию в файл alertmanager.yml:
global:
  resolve_timeout: 5m

route:
  group_by: ['alertname']
  group_wait: 30s
  group_interval: 5m
  repeat_interval: 3h
  receiver: 'email'

receivers:
- name: 'email'
  email_configs:
  - to: 'your-email@example.com'
    from: 'alert@example.com'
    smarthost: 'smtp.example.com:587'
    auth_username: 'username'
    auth_password: 'password'
  1. Шаг 5: Перезапустите Prometheus и Alertmanager, чтобы применить изменения:
sudo systemctl restart prometheus
sudo systemctl restart alertmanager

Теперь вы настроили алерты на бюджет-кап, и будете получать уведомления, если расходы превышают установленный лимит. Это позволяет вам контролировать затраты и предотвращать неожиданные перерасходы.

Dead man's switchТревога при молчании задачи
Гибкий grace-периодДопустимое опоздание пинга
REST API пингОдин GET-запрос подтверждает жизнь
Cron + CI + скриптыДля любых периодических задач

Почему нам доверяют

1мин
минимальный интервал
Email
Telegram + Email алерты
HTTP
ping-эндпоинт
Разведчик
10 мониторов бесплатно

Как это работает

1

Создайте heartbeat

2

Пингуйте URL из cron

3

Получите алерт при пропуске

Что такое Heartbeat-мониторинг?

Heartbeat-монитор — это «обратный монитор»: не мы опрашиваем сервис, а сервис сам сигнализирует нам, что он жив. Если за установленный интервал сигнал не приходит — мы отправляем тревогу.

Простая интеграция

Один GET-запрос к уникальному URL — и монитор знает, что задача выполнена.

Grace-период

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

Умные уведомления

Email и Telegram при пропуске пинга. Повторная тревога, если молчание продолжается.

История выполнения

Полный журнал пингов с временными метками — видите каждое выполнение задачи.

Кому это нужно

DevOps

мониторинг cron-задач

Разработчики

контроль фоновых воркеров

Системные администраторы

dead man's switch

Бизнес

мониторинг платёжных очередей

Частые ошибки

Не ставить grace-периодБез grace-периода любая незначительная задержка вызовет ложную тревогу.
Пинговать до начала работыПингуйте в конце задачи — это подтверждает успешное завершение, а не просто запуск.
Один URL для разных задачСоздайте отдельный монитор для каждой cron-задачи — иначе не поймёте, какая именно упала.
Не проверять при ошибкеЕсли задача завершилась с ошибкой — не пингуйте. Отсутствие пинга = сигнал сбоя.

Лучшие практики

Пингуйте в самом концеПоставьте вызов heartbeat URL последней командой в скрипте.
Используйте curl в croncurl -s https://enterno.io/api/heartbeat/TOKEN — просто и надёжно.
Настройте grace = 20–30%Если задача занимает 5 мин, grace-период = 1–2 мин сверху.
Покрывайте все критичные задачиБекапы, генерация отчётов, синхронизация данных — всё должно иметь heartbeat-монитор.

Начните мониторинг cron бесплатно

Heartbeat-монитор: бесплатно 5 задач, алерты в Telegram и на email при пропуске.

Зарегистрироваться (FREE)

Больше по теме

Часто задаваемые вопросы

Почему мало hard cap провайдера?

Cap сработает уже после биллинг-цикла — может быть 10-15 мин задержки. За это время prompt-loop сожрёт $1000+. Soft alert каждые 5 мин ловит спайк до cap.

Как защититься от runaway атаки?

Per-user rate limit (5 req/мин), max_tokens бюджет на пользователя в день, IP-ban при > 3 hot аларма подряд. Hard cap провайдера — последняя линия защиты, не первая.

Какой baseline бюджета?

Для chat-бота: ($/req × среднее RPS × 86400). gpt-4o-mini ~$0.0005/req × 1 RPS × 86400 = ~$43/день. Алерт на 120% от baseline.

Запустить инструмент, который описан в этой статье

Бесплатный тариф — 20 мониторов, проверки раз в 5 минут, без карты. Платные тарифы — интервал от 1 минуты и проверки из нескольких регионов.