Загрузка...

Блог

Code Executor: конфигурация и мониторинг

Code Executor: конфигурация и мониторинг

Поведение Code Executor задаётся конфигурацией окружения (прокси LLM, модели, БД, Kubernetes, образ для выполнения); метрики экспортируются в Prometheus; есть ограничения по размеру кода, таймауту и числу попыток.

Что настраивается

КатегорияПараметры
LiteLLMURL и ключ доступа к прокси LLM
Моделимодель генерации кода и модель LLM-as-a-judge
APIключ для заголовка X-API-Key
БДстрока подключения PostgreSQL (история, кэш, few-shot)
Kubernetesnamespace, образ исполнителя, 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.