Поведение Code Executor задаётся конфигурацией окружения (прокси LLM, модели, БД, Kubernetes, образ для выполнения); метрики экспортируются в Prometheus; есть ограничения по размеру кода, таймауту и числу попыток.
Что настраивается
| Категория | Параметры |
|---|---|
| LiteLLM | URL и ключ доступа к прокси LLM |
| Модели | модель генерации кода и модель LLM-as-a-judge |
| API | ключ для заголовка X-API-Key |
| БД | строка подключения PostgreSQL (история, кэш, few-shot) |
| Kubernetes | namespace, образ исполнителя, TTL Job после завершения |
Ограничения и безопасность
Выполнение в изолированных контейнерах; лимиты CPU и памяти для Job; таймаут выполнения и max_code_size в запросе; max_retries — максимум попыток перегенерации. Все API endpoints (кроме /health и /metrics) защищены API ключом.
Prometheus метрики
Endpoint /metrics (без авторизации). Примеры метрик: code_executor_tasks_total, code_executor_task_duration_seconds, code_executor_execution_duration_seconds, code_executor_attempts, code_executor_success_rate, code_executor_cache_hits_total, code_executor_candidates_generated. Визуализация — в Grafana.
Troubleshooting
Сервис не отвечает: kubectl get pods -n apps -l app=code-executor, kubectl logs -n apps -l app=code-executor --tail=100, curl <host>/health.
Ошибки LiteLLM: проверить доступность LiteLLM Proxy (/health) и настройки прокси в поде.
Ошибки создания Jobs: kubectl auth can-i create jobs --namespace=apps, наличие образа code-linter в кластере.
Конфигурация Code Executor и наблюдаемость
Исполнитель кода в Adminica настраивается под лимиты времени, памяти и доступные зависимости. Мониторинг показывает частоту запусков, ошибки и длительность — это нужно SRE и команде, которая даёт песочницу разработчикам.
| Метрика | Зачем смотреть |
|---|---|
| Latency | Не упирается ли чат в таймауты |
| Error rate | Проблемы окружения или запрещённых операций |
| Volume | Нужно ли ужесточить квоты |
Сочетайте executor с code_explain: сначала понять код из библиотеки/runbook, потом прогнать минимальный пример. Production-нагрузку сюда не переносите.
Итого: Конфиг — LiteLLM, модели, БД, namespace, образ, TTL; ограничения — таймаут, размер кода, число попыток; мониторинг — /metrics и Grafana; при сбоях — поды, логи, health, права на jobs.