{
  "analysis_logger": {
    "buffer_len": 0,
    "enabled": true,
    "file_path": "/data/playlist/logs/18/tracking_analysis_20260701_141144_b50cdfe7.jsonl",
    "flush_interval_seconds": 15.0,
    "max_buffer_records": 32,
    "record_counts": {
      "scenario_debug": 0,
      "scenario_event": 0,
      "tracking_summary": 4
    },
    "started": false
  },
  "buffers": {
    "frame_buffer_len": 50,
    "frame_buffer_maxlen": 50,
    "frame_queue_maxsize": 10,
    "frame_queue_size": 0
  },
  "cctv_id": "18",
  "cgroup_memory": {
    "current_mb": 6265.754,
    "limit_mb": 8796093022207.996
  },
  "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": 54.356,
    "last_started_at": "2026-07-01T14:11:44+09:00",
    "pid": 12476,
    "process": {
      "exists": false,
      "pid": 12476
    },
    "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": false,
      "effective_analysis_fps": 10.0,
      "enabled": false,
      "last_decision": "initial",
      "processing_p95_ms": 109.398,
      "sample_count": 530,
      "scenario_effective_fps_enabled": false,
      "target_fps": 10.0,
      "warmup_remaining_s": 245.582
    },
    "queue_clear_age_s": 3.0,
    "queue_max_age_s": 2.0,
    "queue_maxsize": 10,
    "reader_queue_enabled": false,
    "stats": {
      "analysis_frames": 530,
      "analysis_skipped": 0,
      "frames_dequeued": 0,
      "frames_queued": 0,
      "last_analysis_at": "2026-07-01T14:12:39+09:00",
      "last_queue_age_ms": null,
      "last_skip_at": "",
      "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": "b50cdfe7",
  "last_frame_pushed_age_sec": 0.075,
  "last_frame_pushed_at": "2026-07-01T14:12:39+09:00",
  "last_frame_read_age_sec": 0.149,
  "last_frame_read_at": "2026-07-01T14:12:39+09:00",
  "mjpeg": {
    "age_sec": 0.053,
    "exists": true,
    "mtime": "2026-07-01T14:12:39.303422+09:00",
    "mtime_epoch": 1782882759.3034222,
    "path": "/data/playlist/streaming/18/mjpeg.jpg",
    "size_bytes": 273243
  },
  "monitor_url": "http://192.168.50.244:1223/mjpeg/18",
  "observed_at": "2026-07-01T14:12:39+09:00",
  "process": {
    "exists": true,
    "fd_count": 116,
    "hwm_mb": 704.363,
    "name": "celery",
    "pid": 239,
    "rss_mb": 701.977,
    "state": "R (running)",
    "threads": 117
  },
  "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,
  "source_url": "file:///data/playlist/uploads/260430_steam_테스트용/260430_2509서초서리풀_1분짜리샘플영상들_720_10fps편집본/CAM1__segment_290-350s__preprocessed.mp4",
  "stage_metrics": {
    "counts": {
      "inference_timeouts": 0,
      "invalid_reads": 0,
      "processed_frames": 309,
      "pushed_frames": 309,
      "read_frames": 309,
      "select_timeouts": 0,
      "triton_result_errors": 0
    },
    "enabled": true,
    "fps": {
      "processed": 10.3,
      "pushed": 10.3,
      "read": 10.3
    },
    "hints": [
      "frame_processing_p95_over_budget",
      "triton_wait_p95_dominant"
    ],
    "latency_ms": {
      "analyze": {
        "avg_ms": 7.419,
        "count": 309,
        "max_ms": 14.391,
        "p95_ms": 10.87
      },
      "gstreamer_push": {
        "avg_ms": 1.15,
        "count": 309,
        "max_ms": 3.194,
        "p95_ms": 2.641
      },
      "model_completion": {
        "model_count": 2,
        "models": {
          "yolo11_640_coco_Large_pretrained_by_Ultralytics_11": {
            "avg_ms": 54.231,
            "count": 309,
            "max_ms": 86.205,
            "p95_ms": 74.127
          },
          "yolo11m_640_worker_ppe_equipment_ops260616_28class": {
            "avg_ms": 56.627,
            "count": 309,
            "max_ms": 102.083,
            "p95_ms": 78.927
          }
        },
        "truncated_count": 0
      },
      "processing_total": {
        "avg_ms": 83.608,
        "count": 309,
        "max_ms": 126.78,
        "p95_ms": 104.633
      },
      "read_interval": {
        "avg_ms": 96.928,
        "count": 309,
        "max_ms": 141.038,
        "p95_ms": 116.248
      },
      "triton_wait": {
        "avg_ms": 57.735,
        "count": 309,
        "max_ms": 102.094,
        "p95_ms": 79.007
      },
      "visualize": {
        "avg_ms": 17.756,
        "count": 309,
        "max_ms": 28.47,
        "p95_ms": 23.692
      }
    },
    "target_fps": 10.0,
    "target_frame_budget_ms": 100.0,
    "window_elapsed_s": 29.999,
    "window_s": 30.0
  },
  "started_at": "2026-07-01T14:11:44+09:00",
  "state": "stopped",
  "task_id": "c3f29df6-f3ba-4749-a43c-229d64c56f74",
  "trigger": "start"
}