{
  "analysis_logger": {
    "buffer_len": 0,
    "enabled": true,
    "file_path": "/data/playlist/logs/17/tracking_analysis_20260522_173137_fb948127.jsonl",
    "flush_interval_seconds": 15.0,
    "max_buffer_records": 32,
    "record_counts": {
      "scenario_event": 1712,
      "tracking_summary": 7761
    },
    "started": false
  },
  "buffers": {
    "frame_buffer_len": 50,
    "frame_buffer_maxlen": 50,
    "frame_queue_maxsize": 10,
    "frame_queue_size": 0
  },
  "cctv_id": "17",
  "cgroup_memory": {
    "current_mb": 8058.176,
    "limit_mb": null
  },
  "detail": {
    "cctv_id": "17",
    "celery_child": {
      "exists": true,
      "fd_count": 118,
      "hwm_mb": 1486.891,
      "name": "celery",
      "pid": 217,
      "rss_mb": 1483.117,
      "state": "R (running)",
      "threads": 48
    },
    "ffmpeg_process_candidates": {
      "candidate_count": 0,
      "candidates": [],
      "enabled": true,
      "known_recorder_pids": [],
      "orphan_candidate_count": 0
    },
    "input_ffmpeg": {
      "pid": 1172154,
      "process": {
        "exists": false,
        "pid": 1172154
      },
      "returncode": -9,
      "running": false
    },
    "instance_id": "fb948127",
    "is_running": false,
    "monitor_url": "http://192.168.50.221:1223/mjpeg/17",
    "phase": "channel_stop_complete",
    "recorder": {
      "active_count": 0,
      "cooldown_sec": 100,
      "last_event_key_count": 2,
      "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": 219,
            "ppid": 1,
            "process": {
              "exists": true,
              "fd_count": 118,
              "hwm_mb": 1594.871,
              "name": "celery",
              "pid": 219,
              "rss_mb": 1565.008,
              "state": "R (running)",
              "threads": 49
            }
          },
          {
            "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": 221,
            "ppid": 1,
            "process": {
              "exists": true,
              "fd_count": 124,
              "hwm_mb": 1569.051,
              "name": "celery",
              "pid": 221,
              "rss_mb": 1536.395,
              "state": "S (sleeping)",
              "threads": 49
            }
          },
          {
            "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": 217,
            "ppid": 1,
            "process": {
              "exists": true,
              "fd_count": 118,
              "hwm_mb": 1486.891,
              "name": "celery",
              "pid": 217,
              "rss_mb": 1483.117,
              "state": "R (running)",
              "threads": 48
            }
          },
          {
            "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": 247,
            "ppid": 1,
            "process": {
              "exists": true,
              "fd_count": 136,
              "hwm_mb": 988.16,
              "name": "celery",
              "pid": 247,
              "rss_mb": 953.359,
              "state": "S (sleeping)",
              "threads": 51
            }
          },
          {
            "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.688,
              "name": "celery",
              "pid": 1,
              "rss_mb": 721.688,
              "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": 243,
            "ppid": 1,
            "process": {
              "exists": true,
              "fd_count": 105,
              "hwm_mb": 451.832,
              "name": "celery",
              "pid": 243,
              "rss_mb": 451.832,
              "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": 245,
            "ppid": 1,
            "process": {
              "exists": true,
              "fd_count": 106,
              "hwm_mb": 451.832,
              "name": "celery",
              "pid": 245,
              "rss_mb": 451.832,
              "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": 239,
            "ppid": 1,
            "process": {
              "exists": true,
              "fd_count": 103,
              "hwm_mb": 451.828,
              "name": "celery",
              "pid": 239,
              "rss_mb": 451.828,
              "state": "S (sleeping)",
              "threads": 2
            }
          }
        ],
        "total_fd_count": 1819,
        "total_rss_mb": 11680.858,
        "total_threads": 222
      },
      "cgroup_memory": {
        "current_mb": 8051.93,
        "limit_mb": null
      },
      "enabled": true,
      "ffmpeg": {
        "processes": {
          "count": 1,
          "top": [
            {
              "cmdline": "ffmpeg -y -f rawvideo -vcodec rawvideo -s 1280x720 -pix_fmt bgr24 -r 10 -i - -c:v libx264 -preset ultrafast -pix_fmt yuv420p /data/playlist/accident/16/20260522_203609_no_hardhat_persistent.mp4",
              "name": "ffmpeg",
              "pid": 378642,
              "ppid": 247,
              "process": {
                "exists": true,
                "fd_count": 5,
                "hwm_mb": 189.457,
                "name": "ffmpeg",
                "pid": 378642,
                "rss_mb": 189.457,
                "state": "S (sleeping)",
                "threads": 60
              }
            }
          ],
          "total_fd_count": 5,
          "total_rss_mb": 189.457,
          "total_threads": 60
        },
        "source": {
          "hash": "828c292f59d5",
          "length": 67,
          "scheme": "rtsp"
        }
      },
      "observed_epoch": 1779754093.916,
      "self": {
        "exists": true,
        "fd_count": 118,
        "hwm_mb": 1486.891,
        "name": "celery",
        "pid": 217,
        "rss_mb": 1483.117,
        "state": "R (running)",
        "threads": 48
      },
      "triton": {
        "active_model_count": 6,
        "active_models": [
          "yolo11-pose_640_pose_pretrained_by_Ultralytics_11s",
          "yolo11_640_coco_Large_pretrained_by_Ultralytics_11",
          "yolo11_960_fall_1class",
          "yolo11_960_ppe_og_9class",
          "yolo11_960_workAndHeavyEquipment_39class",
          "yolo8_640_workPPEHeavy"
        ],
        "gpu": {
          "available": true,
          "enabled": true,
          "gpus": [
            {
              "index": 0,
              "memory_total_mb": 49140.0,
              "memory_used_mb": 12967.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": [
        "falldown_detected",
        "no_hardhat_persistent"
      ],
      "ai_config_error_message": null,
      "ai_config_mode": "category",
      "ai_on": true,
      "configured_model_count": 6,
      "configured_models": [
        "yolo11-pose_640_pose_pretrained_by_Ultralytics_11s",
        "yolo11_640_coco_Large_pretrained_by_Ultralytics_11",
        "yolo11_960_fall_1class",
        "yolo11_960_ppe_og_9class",
        "yolo11_960_workAndHeavyEquipment_39class",
        "yolo8_640_workPPEHeavy"
      ],
      "effective_categories": [
        "굴착기",
        "덤프트럭",
        "중장비",
        "작업자",
        "포즈",
        "안전모 미착용"
      ],
      "enabled_scenarios": [
        "falldown_detected",
        "no_hardhat_persistent"
      ],
      "explicit_scenario_selection": true,
      "render_categories": [
        "굴착기",
        "덤프트럭",
        "중장비",
        "작업자",
        "포즈",
        "안전모 미착용"
      ],
      "requested_visual_categories": [
        "굴착기",
        "덤프트럭",
        "중장비"
      ],
      "required_model_count": 6,
      "required_model_error": null,
      "required_models": [
        "yolo11-pose_640_pose_pretrained_by_Ultralytics_11s",
        "yolo11_640_coco_Large_pretrained_by_Ultralytics_11",
        "yolo11_960_fall_1class",
        "yolo11_960_ppe_og_9class",
        "yolo11_960_workAndHeavyEquipment_39class",
        "yolo8_640_workPPEHeavy"
      ],
      "scenario_required_categories": [
        "작업자",
        "포즈",
        "안전모 미착용"
      ]
    },
    "source_url": "rtsp://admin:smart1357%21@223.171.153.32:554/Streaming/Channels/101",
    "task_id": "7c06ea33-57cf-43b2-8d01-6bb8b9b83b3f",
    "trigger": "start"
  },
  "event_type": "channel_stop_complete",
  "ffmpeg": {
    "error_count": 443,
    "h264_decode_error_count": 840,
    "h264_decode_error_count_per_hour": 1,
    "input_options": [
      "-rtsp_transport",
      "tcp",
      "-timeout",
      "10000000"
    ],
    "last_error_at": "2026-05-26T09:08:12+09:00",
    "last_error_summary": "[h264 @ 0x5ed8aefff7c0] error while decoding MB 21 36, bytestream -32",
    "last_exit_at": "2026-05-25T10:52:50+09:00",
    "last_returncode": 0,
    "last_stable_duration_sec": 80123.653,
    "last_started_at": "2026-05-25T10:52:50+09:00",
    "pid": 1172154,
    "process": {
      "exists": false,
      "pid": 1172154
    },
    "restart_count": 462,
    "restart_count_per_hour": 0,
    "rtsp_timeout_count": 203,
    "rtsp_timeout_count_per_hour": 0,
    "rtsp_tolerant_mode": false,
    "running": false,
    "start_count": 463
  },
  "frame_flow": {
    "analysis": {
      "adaptive_enabled": false,
      "analysis_cap_enabled": true,
      "effective_analysis_fps": 5.0,
      "enabled": true,
      "last_decision": "initial",
      "processing_p95_ms": 209.877,
      "sample_count": 1146,
      "scenario_effective_fps_enabled": false,
      "target_fps": 10.0,
      "warmup_remaining_s": 0.0
    },
    "queue_clear_age_s": 3.0,
    "queue_max_age_s": 2.0,
    "queue_maxsize": 10,
    "reader_queue_enabled": false,
    "stats": {
      "analysis_frames": 931326,
      "analysis_skipped": 67073,
      "frames_dequeued": 0,
      "frames_queued": 0,
      "last_analysis_at": "2026-05-26T09:08:11+09:00",
      "last_queue_age_ms": null,
      "last_skip_at": "2026-05-26T08:29:08+09:00",
      "max_queue_age_ms": 0.0,
      "queue_cleared": 0,
      "queue_dropped": 0
    }
  },
  "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": "fb948127",
  "last_frame_pushed_age_sec": 2.224,
  "last_frame_pushed_at": "2026-05-26T09:08:11+09:00",
  "last_frame_read_age_sec": 2.384,
  "last_frame_read_at": "2026-05-26T09:08:11+09:00",
  "mjpeg": {
    "age_sec": 2.216,
    "exists": true,
    "mtime": "2026-05-26T09:08:11.768571+09:00",
    "mtime_epoch": 1779754091.7685711,
    "path": "/data/playlist/streaming/17/mjpeg.jpg",
    "size_bytes": 126619
  },
  "monitor_url": "http://192.168.50.221:1223/mjpeg/17",
  "observed_at": "2026-05-26T09:08:14+09:00",
  "process": {
    "exists": true,
    "fd_count": 118,
    "hwm_mb": 1486.891,
    "name": "celery",
    "pid": 217,
    "rss_mb": 1483.117,
    "state": "R (running)",
    "threads": 48
  },
  "reason_codes": [
    "ffmpeg_not_running"
  ],
  "recommended_action": "channel_restart_recommended",
  "recorder": {
    "active_count": 0,
    "cooldown_sec": 100,
    "last_event_key_count": 2,
    "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": 219,
          "ppid": 1,
          "process": {
            "exists": true,
            "fd_count": 118,
            "hwm_mb": 1594.871,
            "name": "celery",
            "pid": 219,
            "rss_mb": 1571.227,
            "state": "R (running)",
            "threads": 49
          }
        },
        {
          "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": 221,
          "ppid": 1,
          "process": {
            "exists": true,
            "fd_count": 124,
            "hwm_mb": 1569.051,
            "name": "celery",
            "pid": 221,
            "rss_mb": 1536.395,
            "state": "S (sleeping)",
            "threads": 49
          }
        },
        {
          "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": 217,
          "ppid": 1,
          "process": {
            "exists": true,
            "fd_count": 118,
            "hwm_mb": 1486.891,
            "name": "celery",
            "pid": 217,
            "rss_mb": 1483.117,
            "state": "R (running)",
            "threads": 48
          }
        },
        {
          "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": 247,
          "ppid": 1,
          "process": {
            "exists": true,
            "fd_count": 136,
            "hwm_mb": 988.16,
            "name": "celery",
            "pid": 247,
            "rss_mb": 953.359,
            "state": "S (sleeping)",
            "threads": 51
          }
        },
        {
          "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.688,
            "name": "celery",
            "pid": 1,
            "rss_mb": 721.688,
            "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": 243,
          "ppid": 1,
          "process": {
            "exists": true,
            "fd_count": 105,
            "hwm_mb": 451.832,
            "name": "celery",
            "pid": 243,
            "rss_mb": 451.832,
            "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": 245,
          "ppid": 1,
          "process": {
            "exists": true,
            "fd_count": 106,
            "hwm_mb": 451.832,
            "name": "celery",
            "pid": 245,
            "rss_mb": 451.832,
            "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": 239,
          "ppid": 1,
          "process": {
            "exists": true,
            "fd_count": 103,
            "hwm_mb": 451.828,
            "name": "celery",
            "pid": 239,
            "rss_mb": 451.828,
            "state": "S (sleeping)",
            "threads": 2
          }
        }
      ],
      "total_fd_count": 1819,
      "total_rss_mb": 11687.077,
      "total_threads": 222
    },
    "cgroup_memory": {
      "current_mb": 8058.426,
      "limit_mb": null
    },
    "enabled": true,
    "ffmpeg": {
      "processes": {
        "count": 1,
        "top": [
          {
            "cmdline": "ffmpeg -y -f rawvideo -vcodec rawvideo -s 1280x720 -pix_fmt bgr24 -r 10 -i - -c:v libx264 -preset ultrafast -pix_fmt yuv420p /data/playlist/accident/16/20260522_203609_no_hardhat_persistent.mp4",
            "name": "ffmpeg",
            "pid": 378642,
            "ppid": 247,
            "process": {
              "exists": true,
              "fd_count": 5,
              "hwm_mb": 189.457,
              "name": "ffmpeg",
              "pid": 378642,
              "rss_mb": 189.457,
              "state": "S (sleeping)",
              "threads": 60
            }
          }
        ],
        "total_fd_count": 5,
        "total_rss_mb": 189.457,
        "total_threads": 60
      },
      "source": {
        "hash": "828c292f59d5",
        "length": 67,
        "scheme": "rtsp"
      }
    },
    "observed_epoch": 1779754093.987,
    "self": {
      "exists": true,
      "fd_count": 118,
      "hwm_mb": 1486.891,
      "name": "celery",
      "pid": 217,
      "rss_mb": 1483.117,
      "state": "R (running)",
      "threads": 48
    },
    "triton": {
      "active_model_count": 6,
      "active_models": [
        "yolo11-pose_640_pose_pretrained_by_Ultralytics_11s",
        "yolo11_640_coco_Large_pretrained_by_Ultralytics_11",
        "yolo11_960_fall_1class",
        "yolo11_960_ppe_og_9class",
        "yolo11_960_workAndHeavyEquipment_39class",
        "yolo8_640_workPPEHeavy"
      ],
      "gpu": {
        "available": true,
        "enabled": true,
        "gpus": [
          {
            "index": 0,
            "memory_total_mb": 49140.0,
            "memory_used_mb": 12967.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": "rtsp://admin:smart1357%21@223.171.153.32:554/Streaming/Channels/101",
  "stage_metrics": {
    "counts": {
      "inference_timeouts": 0,
      "invalid_reads": 0,
      "processed_frames": 106,
      "pushed_frames": 106,
      "read_frames": 106,
      "select_timeouts": 0,
      "triton_result_errors": 0
    },
    "enabled": true,
    "fps": {
      "processed": 3.534,
      "pushed": 3.534,
      "read": 3.534
    },
    "hints": [
      "read_fps_below_target",
      "processed_fps_below_target",
      "push_fps_below_target",
      "frame_processing_p95_over_budget",
      "frame_processing_p95_backlog_risk",
      "triton_wait_p95_dominant"
    ],
    "latency_ms": {
      "analyze": {
        "avg_ms": 65.619,
        "count": 106,
        "max_ms": 106.338,
        "p95_ms": 94.576
      },
      "gstreamer_push": {
        "avg_ms": 1.783,
        "count": 106,
        "max_ms": 5.676,
        "p95_ms": 3.381
      },
      "model_completion": {
        "model_count": 6,
        "models": {
          "yolo11-pose_640_pose_pretrained_by_Ultralytics_11s": {
            "avg_ms": 84.839,
            "count": 106,
            "max_ms": 166.582,
            "p95_ms": 126.375
          },
          "yolo11_640_coco_Large_pretrained_by_Ultralytics_11": {
            "avg_ms": 90.692,
            "count": 106,
            "max_ms": 167.86,
            "p95_ms": 136.211
          },
          "yolo11_960_fall_1class": {
            "avg_ms": 45.569,
            "count": 106,
            "max_ms": 74.441,
            "p95_ms": 64.499
          },
          "yolo11_960_ppe_og_9class": {
            "avg_ms": 83.041,
            "count": 106,
            "max_ms": 172.222,
            "p95_ms": 132.627
          },
          "yolo11_960_workAndHeavyEquipment_39class": {
            "avg_ms": 90.831,
            "count": 106,
            "max_ms": 168.57,
            "p95_ms": 139.716
          },
          "yolo8_640_workPPEHeavy": {
            "avg_ms": 89.232,
            "count": 106,
            "max_ms": 181.882,
            "p95_ms": 139.228
          }
        },
        "truncated_count": 0
      },
      "processing_total": {
        "avg_ms": 165.281,
        "count": 106,
        "max_ms": 241.064,
        "p95_ms": 213.347
      },
      "read_interval": {
        "avg_ms": 262.99,
        "count": 106,
        "max_ms": 325.186,
        "p95_ms": 310.821
      },
      "triton_wait": {
        "avg_ms": 94.033,
        "count": 106,
        "max_ms": 181.891,
        "p95_ms": 145.898
      },
      "visualize": {
        "avg_ms": 3.813,
        "count": 106,
        "max_ms": 8.689,
        "p95_ms": 5.658
      }
    },
    "target_fps": 10.0,
    "target_frame_budget_ms": 100.0,
    "window_elapsed_s": 29.997,
    "window_s": 30.0
  },
  "started_at": "2026-05-22T17:31:37+09:00",
  "state": "stopped",
  "task_id": "7c06ea33-57cf-43b2-8d01-6bb8b9b83b3f",
  "trigger": "start"
}