{
  "analysis_logger": {
    "buffer_len": 0,
    "enabled": true,
    "file_path": "/data/playlist/logs/32/tracking_analysis_20260522_172350_eb5fb112.jsonl",
    "flush_interval_seconds": 15.0,
    "max_buffer_records": 32,
    "record_counts": {
      "scenario_event": 0,
      "tracking_summary": 0
    },
    "started": false
  },
  "buffers": {
    "frame_buffer_len": 50,
    "frame_buffer_maxlen": 50,
    "frame_queue_maxsize": 10,
    "frame_queue_size": 1
  },
  "cctv_id": "32",
  "cgroup_memory": {
    "current_mb": 2672.414,
    "limit_mb": null
  },
  "detail": {
    "cctv_id": "32",
    "celery_child": {
      "exists": true,
      "fd_count": 119,
      "hwm_mb": 661.277,
      "name": "celery",
      "pid": 246,
      "rss_mb": 660.383,
      "state": "R (running)",
      "threads": 6
    },
    "ffmpeg_process_candidates": {
      "candidate_count": 0,
      "candidates": [],
      "enabled": true,
      "known_recorder_pids": [],
      "orphan_candidate_count": 0
    },
    "input_ffmpeg": {
      "pid": 301,
      "process": {
        "exists": false,
        "pid": 301
      },
      "returncode": -9,
      "running": false
    },
    "instance_id": "eb5fb112",
    "is_running": false,
    "monitor_url": "http://192.168.50.221:1223/mjpeg/32",
    "phase": "channel_stop_complete",
    "recorder": {
      "active_count": 0,
      "cooldown_sec": 100,
      "last_event_key_count": 0,
      "oldest_recorder_age_sec": null,
      "recorders": [],
      "running_ffmpeg_count": 0,
      "running_pids": [],
      "stopping_count": 0
    },
    "resource": {
      "celery": {
        "count": 17,
        "top": [
          {
            "cmdline": "/usr/bin/python3 /usr/local/bin/celery -A tasks worker --pool=prefork -c 16 -Q celery,cctv_queue,frames_queue,test_celery -n cctv_worker@%h --loglevel=warning",
            "name": "celery",
            "pid": 1,
            "ppid": null,
            "process": {
              "exists": true,
              "fd_count": 117,
              "hwm_mb": 721.133,
              "name": "celery",
              "pid": 1,
              "rss_mb": 721.133,
              "state": "S (sleeping)",
              "threads": 1
            }
          },
          {
            "cmdline": "/usr/bin/python3 /usr/local/bin/celery -A tasks worker --pool=prefork -c 16 -Q celery,cctv_queue,frames_queue,test_celery -n cctv_worker@%h --loglevel=warning",
            "name": "celery",
            "pid": 246,
            "ppid": 1,
            "process": {
              "exists": true,
              "fd_count": 119,
              "hwm_mb": 661.277,
              "name": "celery",
              "pid": 246,
              "rss_mb": 660.383,
              "state": "R (running)",
              "threads": 6
            }
          },
          {
            "cmdline": "/usr/bin/python3 /usr/local/bin/celery -A tasks worker --pool=prefork -c 16 -Q celery,cctv_queue,frames_queue,test_celery -n cctv_worker@%h --loglevel=warning",
            "name": "celery",
            "pid": 216,
            "ppid": 1,
            "process": {
              "exists": true,
              "fd_count": 101,
              "hwm_mb": 466.902,
              "name": "celery",
              "pid": 216,
              "rss_mb": 466.902,
              "state": "S (sleeping)",
              "threads": 7
            }
          },
          {
            "cmdline": "/usr/bin/python3 /usr/local/bin/celery -A tasks worker --pool=prefork -c 16 -Q celery,cctv_queue,frames_queue,test_celery -n cctv_worker@%h --loglevel=warning",
            "name": "celery",
            "pid": 238,
            "ppid": 1,
            "process": {
              "exists": true,
              "fd_count": 103,
              "hwm_mb": 451.684,
              "name": "celery",
              "pid": 238,
              "rss_mb": 451.684,
              "state": "S (sleeping)",
              "threads": 2
            }
          },
          {
            "cmdline": "/usr/bin/python3 /usr/local/bin/celery -A tasks worker --pool=prefork -c 16 -Q celery,cctv_queue,frames_queue,test_celery -n cctv_worker@%h --loglevel=warning",
            "name": "celery",
            "pid": 240,
            "ppid": 1,
            "process": {
              "exists": true,
              "fd_count": 104,
              "hwm_mb": 451.684,
              "name": "celery",
              "pid": 240,
              "rss_mb": 451.684,
              "state": "S (sleeping)",
              "threads": 2
            }
          },
          {
            "cmdline": "/usr/bin/python3 /usr/local/bin/celery -A tasks worker --pool=prefork -c 16 -Q celery,cctv_queue,frames_queue,test_celery -n cctv_worker@%h --loglevel=warning",
            "name": "celery",
            "pid": 242,
            "ppid": 1,
            "process": {
              "exists": true,
              "fd_count": 105,
              "hwm_mb": 451.684,
              "name": "celery",
              "pid": 242,
              "rss_mb": 451.684,
              "state": "S (sleeping)",
              "threads": 2
            }
          },
          {
            "cmdline": "/usr/bin/python3 /usr/local/bin/celery -A tasks worker --pool=prefork -c 16 -Q celery,cctv_queue,frames_queue,test_celery -n cctv_worker@%h --loglevel=warning",
            "name": "celery",
            "pid": 234,
            "ppid": 1,
            "process": {
              "exists": true,
              "fd_count": 101,
              "hwm_mb": 451.68,
              "name": "celery",
              "pid": 234,
              "rss_mb": 451.68,
              "state": "S (sleeping)",
              "threads": 2
            }
          },
          {
            "cmdline": "/usr/bin/python3 /usr/local/bin/celery -A tasks worker --pool=prefork -c 16 -Q celery,cctv_queue,frames_queue,test_celery -n cctv_worker@%h --loglevel=warning",
            "name": "celery",
            "pid": 236,
            "ppid": 1,
            "process": {
              "exists": true,
              "fd_count": 102,
              "hwm_mb": 451.68,
              "name": "celery",
              "pid": 236,
              "rss_mb": 451.68,
              "state": "S (sleeping)",
              "threads": 2
            }
          }
        ],
        "total_fd_count": 1730,
        "total_rss_mb": 8171.647,
        "total_threads": 42
      },
      "cgroup_memory": {
        "current_mb": 2672.363,
        "limit_mb": null
      },
      "enabled": true,
      "ffmpeg": {
        "processes": {
          "count": 1,
          "top": [
            {
              "cmdline": "ffmpeg -nostdin -loglevel error -rtsp_transport tcp -timeout 10000000 -i rtsp://nk20001.iptime.org:554/live02 -f rawvideo -pix_fmt bgr24 -vf fps=10:round=down,scale=1280:720 pipe:1",
              "name": "ffmpeg",
              "pid": 711,
              "ppid": 216,
              "process": {
                "exists": true,
                "fd_count": 4,
                "hwm_mb": 46.645,
                "name": "ffmpeg",
                "pid": 711,
                "rss_mb": 46.645,
                "state": "S (sleeping)",
                "threads": 1
              }
            }
          ],
          "total_fd_count": 4,
          "total_rss_mb": 46.645,
          "total_threads": 1
        },
        "source": {
          "hash": "cd417316f8c3",
          "length": 74,
          "scheme": "file"
        }
      },
      "observed_epoch": 1779438248.185,
      "self": {
        "exists": true,
        "fd_count": 119,
        "hwm_mb": 661.277,
        "name": "celery",
        "pid": 246,
        "rss_mb": 660.383,
        "state": "R (running)",
        "threads": 6
      },
      "triton": {
        "active_model_count": 1,
        "active_models": [
          "yolo11_640_fire_11class"
        ],
        "gpu": {
          "available": true,
          "enabled": true,
          "gpus": [
            {
              "index": 0,
              "memory_total_mb": 49140.0,
              "memory_used_mb": 11645.0,
              "name": "NVIDIA RTX A6000",
              "util_gpu_pct": 0.0
            }
          ]
        },
        "protocol": "http",
        "visible_triton_processes": {
          "count": 0,
          "top": [],
          "total_fd_count": 0,
          "total_rss_mb": 0.0,
          "total_threads": 0
        }
      }
    },
    "selection": {
      "active_scenarios": [
        "fire_detected"
      ],
      "ai_config_error_message": null,
      "ai_config_mode": "category",
      "ai_on": true,
      "configured_model_count": 1,
      "configured_models": [
        "yolo11_640_fire_11class"
      ],
      "effective_categories": [
        "화재징후"
      ],
      "enabled_scenarios": [
        "fire_detected"
      ],
      "explicit_scenario_selection": true,
      "render_categories": [
        "화재징후"
      ],
      "requested_visual_categories": [],
      "required_model_count": 1,
      "required_model_error": null,
      "required_models": [
        "yolo11_640_fire_11class"
      ],
      "scenario_required_categories": [
        "화재징후"
      ]
    },
    "source_url": "file:///data/playlist/uploads/260521_화재추론샘플_시뮬레이션영상/화재추론_테스트용_시뮬레이션_11.mp4",
    "task_id": "133bd84d-c086-453a-a1f9-cbe8a2787a45",
    "trigger": "start"
  },
  "event_type": "channel_stop_complete",
  "ffmpeg": {
    "error_count": 0,
    "h264_decode_error_count": 0,
    "h264_decode_error_count_per_hour": 0,
    "input_options": [],
    "last_error_at": "",
    "last_error_summary": "",
    "last_exit_at": "",
    "last_returncode": null,
    "last_stable_duration_sec": 17.409,
    "last_started_at": "2026-05-22T17:23:50+09:00",
    "pid": 301,
    "process": {
      "exists": false,
      "pid": 301
    },
    "restart_count": 0,
    "restart_count_per_hour": 0,
    "rtsp_timeout_count": 0,
    "rtsp_timeout_count_per_hour": 0,
    "rtsp_tolerant_mode": false,
    "running": false,
    "start_count": 1
  },
  "frame_flow": {
    "analysis": {
      "adaptive_enabled": false,
      "analysis_cap_enabled": true,
      "effective_analysis_fps": 5.0,
      "enabled": true,
      "last_decision": "initial",
      "processing_p95_ms": 39.72,
      "sample_count": 56,
      "scenario_effective_fps_enabled": false,
      "target_fps": 10.0,
      "warmup_remaining_s": 282.56
    },
    "queue_clear_age_s": 3.0,
    "queue_max_age_s": 2.0,
    "queue_maxsize": 10,
    "reader_queue_enabled": true,
    "stats": {
      "analysis_frames": 56,
      "analysis_skipped": 90,
      "frames_dequeued": 146,
      "frames_queued": 156,
      "last_analysis_at": "2026-05-22T17:24:06+09:00",
      "last_queue_age_ms": 0.14,
      "last_skip_at": "2026-05-22T17:24:07+09:00",
      "max_queue_age_ms": 924.194,
      "queue_cleared": 0,
      "queue_dropped": 9
    }
  },
  "health": {
    "criticals": [
      "ffmpeg_not_running"
    ],
    "level": "critical",
    "thresholds": {
      "ffmpeg_restart_count_per_hour": {
        "critical": 6,
        "warning": 3
      },
      "h264_decode_error_count_per_hour": {
        "critical": 50,
        "warning": 10
      },
      "last_frame_pushed_age_sec": {
        "critical": 30,
        "warning": 10
      },
      "last_frame_read_age_sec": {
        "critical": 30,
        "warning": 10
      },
      "last_stable_duration_sec": {
        "critical_below": 180,
        "warning_below": 600
      },
      "mjpeg_age_sec": {
        "critical": 30,
        "warning": 10
      },
      "rtsp_timeout_count_per_hour": {
        "critical": 30,
        "warning": 10
      }
    },
    "warnings": []
  },
  "instance_id": "eb5fb112",
  "last_frame_pushed_age_sec": 1.152,
  "last_frame_pushed_at": "2026-05-22T17:24:07+09:00",
  "last_frame_read_age_sec": 1.056,
  "last_frame_read_at": "2026-05-22T17:24:07+09:00",
  "mjpeg": {
    "age_sec": 1.145,
    "exists": true,
    "mtime": "2026-05-22T17:24:07.105629+09:00",
    "mtime_epoch": 1779438247.1056287,
    "path": "/data/playlist/streaming/32/mjpeg.jpg",
    "size_bytes": 170207
  },
  "monitor_url": "http://192.168.50.221:1223/mjpeg/32",
  "observed_at": "2026-05-22T17:24:08+09:00",
  "process": {
    "exists": true,
    "fd_count": 119,
    "hwm_mb": 661.277,
    "name": "celery",
    "pid": 246,
    "rss_mb": 660.383,
    "state": "R (running)",
    "threads": 6
  },
  "reason_codes": [
    "ffmpeg_not_running"
  ],
  "recommended_action": "channel_restart_recommended",
  "recorder": {
    "active_count": 0,
    "cooldown_sec": 100,
    "last_event_key_count": 0,
    "oldest_recorder_age_sec": null,
    "recorders": [],
    "running_ffmpeg_count": 0,
    "running_pids": [],
    "stopping_count": 0
  },
  "recovery_eligible": true,
  "resource": {
    "celery": {
      "count": 17,
      "top": [
        {
          "cmdline": "/usr/bin/python3 /usr/local/bin/celery -A tasks worker --pool=prefork -c 16 -Q celery,cctv_queue,frames_queue,test_celery -n cctv_worker@%h --loglevel=warning",
          "name": "celery",
          "pid": 1,
          "ppid": null,
          "process": {
            "exists": true,
            "fd_count": 117,
            "hwm_mb": 721.133,
            "name": "celery",
            "pid": 1,
            "rss_mb": 721.133,
            "state": "S (sleeping)",
            "threads": 1
          }
        },
        {
          "cmdline": "/usr/bin/python3 /usr/local/bin/celery -A tasks worker --pool=prefork -c 16 -Q celery,cctv_queue,frames_queue,test_celery -n cctv_worker@%h --loglevel=warning",
          "name": "celery",
          "pid": 246,
          "ppid": 1,
          "process": {
            "exists": true,
            "fd_count": 119,
            "hwm_mb": 661.277,
            "name": "celery",
            "pid": 246,
            "rss_mb": 660.383,
            "state": "R (running)",
            "threads": 6
          }
        },
        {
          "cmdline": "/usr/bin/python3 /usr/local/bin/celery -A tasks worker --pool=prefork -c 16 -Q celery,cctv_queue,frames_queue,test_celery -n cctv_worker@%h --loglevel=warning",
          "name": "celery",
          "pid": 216,
          "ppid": 1,
          "process": {
            "exists": true,
            "fd_count": 101,
            "hwm_mb": 466.902,
            "name": "celery",
            "pid": 216,
            "rss_mb": 466.902,
            "state": "S (sleeping)",
            "threads": 7
          }
        },
        {
          "cmdline": "/usr/bin/python3 /usr/local/bin/celery -A tasks worker --pool=prefork -c 16 -Q celery,cctv_queue,frames_queue,test_celery -n cctv_worker@%h --loglevel=warning",
          "name": "celery",
          "pid": 238,
          "ppid": 1,
          "process": {
            "exists": true,
            "fd_count": 103,
            "hwm_mb": 451.684,
            "name": "celery",
            "pid": 238,
            "rss_mb": 451.684,
            "state": "S (sleeping)",
            "threads": 2
          }
        },
        {
          "cmdline": "/usr/bin/python3 /usr/local/bin/celery -A tasks worker --pool=prefork -c 16 -Q celery,cctv_queue,frames_queue,test_celery -n cctv_worker@%h --loglevel=warning",
          "name": "celery",
          "pid": 240,
          "ppid": 1,
          "process": {
            "exists": true,
            "fd_count": 104,
            "hwm_mb": 451.684,
            "name": "celery",
            "pid": 240,
            "rss_mb": 451.684,
            "state": "S (sleeping)",
            "threads": 2
          }
        },
        {
          "cmdline": "/usr/bin/python3 /usr/local/bin/celery -A tasks worker --pool=prefork -c 16 -Q celery,cctv_queue,frames_queue,test_celery -n cctv_worker@%h --loglevel=warning",
          "name": "celery",
          "pid": 242,
          "ppid": 1,
          "process": {
            "exists": true,
            "fd_count": 105,
            "hwm_mb": 451.684,
            "name": "celery",
            "pid": 242,
            "rss_mb": 451.684,
            "state": "S (sleeping)",
            "threads": 2
          }
        },
        {
          "cmdline": "/usr/bin/python3 /usr/local/bin/celery -A tasks worker --pool=prefork -c 16 -Q celery,cctv_queue,frames_queue,test_celery -n cctv_worker@%h --loglevel=warning",
          "name": "celery",
          "pid": 234,
          "ppid": 1,
          "process": {
            "exists": true,
            "fd_count": 101,
            "hwm_mb": 451.68,
            "name": "celery",
            "pid": 234,
            "rss_mb": 451.68,
            "state": "S (sleeping)",
            "threads": 2
          }
        },
        {
          "cmdline": "/usr/bin/python3 /usr/local/bin/celery -A tasks worker --pool=prefork -c 16 -Q celery,cctv_queue,frames_queue,test_celery -n cctv_worker@%h --loglevel=warning",
          "name": "celery",
          "pid": 236,
          "ppid": 1,
          "process": {
            "exists": true,
            "fd_count": 102,
            "hwm_mb": 451.68,
            "name": "celery",
            "pid": 236,
            "rss_mb": 451.68,
            "state": "S (sleeping)",
            "threads": 2
          }
        }
      ],
      "total_fd_count": 1730,
      "total_rss_mb": 8171.647,
      "total_threads": 42
    },
    "cgroup_memory": {
      "current_mb": 2672.414,
      "limit_mb": null
    },
    "enabled": true,
    "ffmpeg": {
      "processes": {
        "count": 1,
        "top": [
          {
            "cmdline": "ffmpeg -nostdin -loglevel error -rtsp_transport tcp -timeout 10000000 -i rtsp://nk20001.iptime.org:554/live02 -f rawvideo -pix_fmt bgr24 -vf fps=10:round=down,scale=1280:720 pipe:1",
            "name": "ffmpeg",
            "pid": 711,
            "ppid": 216,
            "process": {
              "exists": true,
              "fd_count": 4,
              "hwm_mb": 46.645,
              "name": "ffmpeg",
              "pid": 711,
              "rss_mb": 46.645,
              "state": "S (sleeping)",
              "threads": 1
            }
          }
        ],
        "total_fd_count": 4,
        "total_rss_mb": 46.645,
        "total_threads": 1
      },
      "source": {
        "hash": "cd417316f8c3",
        "length": 74,
        "scheme": "file"
      }
    },
    "observed_epoch": 1779438248.252,
    "self": {
      "exists": true,
      "fd_count": 119,
      "hwm_mb": 661.277,
      "name": "celery",
      "pid": 246,
      "rss_mb": 660.383,
      "state": "R (running)",
      "threads": 6
    },
    "triton": {
      "active_model_count": 1,
      "active_models": [
        "yolo11_640_fire_11class"
      ],
      "gpu": {
        "available": true,
        "enabled": true,
        "gpus": [
          {
            "index": 0,
            "memory_total_mb": 49140.0,
            "memory_used_mb": 11645.0,
            "name": "NVIDIA RTX A6000",
            "util_gpu_pct": 0.0
          }
        ]
      },
      "protocol": "http",
      "visible_triton_processes": {
        "count": 0,
        "top": [],
        "total_fd_count": 0,
        "total_rss_mb": 0.0,
        "total_threads": 0
      }
    }
  },
  "source_url": "file:///data/playlist/uploads/260521_화재추론샘플_시뮬레이션영상/화재추론_테스트용_시뮬레이션_11.mp4",
  "stage_metrics": {
    "counts": {
      "inference_timeouts": 0,
      "invalid_reads": 0,
      "processed_frames": 146,
      "pushed_frames": 146,
      "read_frames": 156,
      "select_timeouts": 0,
      "triton_result_errors": 0
    },
    "enabled": true,
    "fps": {
      "processed": 9.527,
      "pushed": 9.527,
      "read": 10.179
    },
    "hints": [],
    "latency_ms": {
      "analyze": {
        "avg_ms": 0.203,
        "count": 56,
        "max_ms": 0.812,
        "p95_ms": 0.359
      },
      "gstreamer_push": {
        "avg_ms": 2.821,
        "count": 146,
        "max_ms": 6.791,
        "p95_ms": 5.333
      },
      "model_completion": {
        "model_count": 1,
        "models": {
          "yolo11_640_fire_11class": {
            "avg_ms": 31.354,
            "count": 56,
            "max_ms": 81.122,
            "p95_ms": 32.837
          }
        },
        "truncated_count": 0
      },
      "processing_total": {
        "avg_ms": 14.693,
        "count": 146,
        "max_ms": 94.082,
        "p95_ms": 37.955
      },
      "read_interval": {
        "avg_ms": 92.062,
        "count": 155,
        "max_ms": 647.6,
        "p95_ms": 102.624
      },
      "triton_wait": {
        "avg_ms": 31.362,
        "count": 56,
        "max_ms": 81.134,
        "p95_ms": 32.845
      },
      "visualize": {
        "avg_ms": 3.65,
        "count": 56,
        "max_ms": 7.894,
        "p95_ms": 6.525
      }
    },
    "target_fps": 10.0,
    "target_frame_budget_ms": 100.0,
    "window_elapsed_s": 15.326,
    "window_s": 30.0
  },
  "started_at": "2026-05-22T17:23:50+09:00",
  "state": "stopped",
  "task_id": "133bd84d-c086-453a-a1f9-cbe8a2787a45",
  "trigger": "start"
}