Трассировка и наблюдаемость
Каждый запуск автоматически строит структурированный ExecutionTrace,
прикреплённый к result.trace. Он сериализуемый, сравниваемый и воспроизводимый.
result = chain.execute(context)trace = result.traceДиаграмма Ганта и HTML-воспроизведение
Заголовок раздела «Диаграмма Ганта и HTML-воспроизведение»print(trace.format_gantt()) # text Gantt (parallel-batch aware)print(trace.format_gantt(format="mermaid"))
trace.to_html("playback.html") # standalone animated HTML/JS (zero deps)to_html() записывает самодостаточный файл (встроенный CSS+JS), который можно
добавить в описание PR; без пути возвращает HTML-строку.
Сохранение и сравнение
Заголовок раздела «Сохранение и сравнение»trace.to_json() # serialise (also: from_json)diff = trace.diff(other_trace) # structural diff between two runsАгрегация по нескольким запускам
Заголовок раздела «Агрегация по нескольким запускам»TraceAggregator сворачивает множество трасс — перцентили задержек по шагам
(p50/p95/p99/mean/max) и использование токенов (p50/p95) — для обнаружения
выбросов хвостовой задержки после пакетного запуска:
from mmar_carl import TraceAggregator
agg = TraceAggregator([t1, t2, t3])Langfuse
Заголовок раздела «Langfuse»Для хостинговой панели трассировки установите LANGFUSE_PUBLIC_KEY (и секрет) в
переменные окружения — интеграция tracing.py от CARL автоматически отправляет спаны
(установите mmar-carl[langfuse]).
Логирование
Заголовок раздела «Логирование»import loggingfrom mmar_carl import set_log_level, get_logger
set_log_level(logging.DEBUG) # INFO by defaultget_logger().info("Starting analysis")| Уровень | Когда |
|---|---|
DEBUG | Разработка — подробный поток. |
INFO | Продакшн — старт/завершение цепочки (по умолчанию). |
WARNING | Неудачные шаги. |
ERROR | Критические ошибки. |
Смотрите также
Заголовок раздела «Смотрите также»- Визуализация — пироги токенов, тепловые карты, Mermaid.
- Оценка стоимости — предварительный расчёт расходов.