diff --git a/apps/worker/worker_app/tasks/compose_video.py b/apps/worker/worker_app/tasks/compose_video.py index 4509d5e02..854afcd0b 100755 --- a/apps/worker/worker_app/tasks/compose_video.py +++ b/apps/worker/worker_app/tasks/compose_video.py @@ -59,15 +59,30 @@ def compose_video(self, job_id: str, **kwargs): # 判断使用哪个渲染引擎 # 优先级:Redis Feature Flag(白名单 > 百分比) > 环境变量默认 from video_processing.render_engine_resolver import get_render_engine_resolver + from video_processing.render_metrics import render_task_metrics resolver = get_render_engine_resolver() user_id = job.created_by_user_id or None engine = resolver.get_engine(user_id=user_id) + # 灰度期间打印详细 flag 配置,便于排查 + config = resolver.get_config_snapshot() + logger.info( + "compose_video 引擎选择: job_id=%s engine=%s user_id=%s enabled=%s percentage=%s whitelist=%d default=%s", + job_id, + engine, + user_id, + config.get("enabled"), + config.get("percentage"), + len(config.get("whitelist", [])), + config.get("default_engine"), + ) - if engine == "unified": - return _compose_with_unified_engine(self, job_service, job, plan_id, db) - else: - return _compose_with_legacy_engine(self, job_service, job, plan_id, db) + # 灰度观测指标埋点 + with render_task_metrics(engine=engine, task_type="compose_video"): + if engine == "unified": + return _compose_with_unified_engine(self, job_service, job, plan_id, db) + else: + return _compose_with_legacy_engine(self, job_service, job, plan_id, db) except self.retry_exc as exc: logger.warning("视频合成重试中: job_id=%s, exc=%s", job_id, exc) diff --git a/apps/worker/worker_app/tasks/edit_plan_generation.py b/apps/worker/worker_app/tasks/edit_plan_generation.py index 9b422ab57..cfef30096 100755 --- a/apps/worker/worker_app/tasks/edit_plan_generation.py +++ b/apps/worker/worker_app/tasks/edit_plan_generation.py @@ -77,9 +77,21 @@ def _resolve_render_engine(user_id: str) -> str: from video_processing.render_engine_resolver import get_render_engine_resolver resolver = get_render_engine_resolver() - return resolver.get_engine(user_id=user_id) + engine = resolver.get_engine(user_id=user_id) + # 灰度期间打印详细 flag 配置,便于排查 + config = resolver.get_config_snapshot() + logger.info( + "edit_plan 引擎选择: user_id=%s engine=%s enabled=%s percentage=%s whitelist=%d default=%s", + user_id, + engine, + config.get("enabled"), + config.get("percentage"), + len(config.get("whitelist", [])), + config.get("default_engine"), + ) + return engine except Exception as exc: - logger.warning("获取渲染引擎配置失败,fallback 到 legacy: %s", exc) + logger.warning("获取渲染引擎配置失败,fallback 到 legacy: %s", exc, exc_info=True) return "legacy" diff --git a/apps/worker/worker_app/tasks/generation.py b/apps/worker/worker_app/tasks/generation.py index 6af97259a..9d475c463 100755 --- a/apps/worker/worker_app/tasks/generation.py +++ b/apps/worker/worker_app/tasks/generation.py @@ -787,10 +787,23 @@ def _resolve_render_engine(user_id: str) -> str: from video_processing.render_engine_resolver import get_render_engine_resolver resolver = get_render_engine_resolver() - return resolver.get_engine(user_id=user_id) + engine = resolver.get_engine(user_id=user_id) + # 灰度期间打印详细 flag 配置,便于排查 + config = resolver.get_config_snapshot() + logger.info( + "[渲染引擎] flag 解析: user_id=%s engine=%s enabled=%s percentage=%s whitelist=%d default=%s", + user_id, + engine, + config.get("enabled"), + config.get("percentage"), + len(config.get("whitelist", [])), + config.get("default_engine"), + ) + return engine except Exception as exc: - logger.warning("获取渲染引擎配置失败,fallback 到 unified: %s", exc) - return ENGINE_UNIFIED + # 异常时 fallback 到 legacy(保守策略,与 edit_plan_generation 一致) + logger.warning("获取渲染引擎配置失败,fallback 到 legacy: %s", exc, exc_info=True) + return ENGINE_LEGACY # ── 旧引擎渲染(FFmpeg filter_complex) ────────────────────────────────────────