{
  "analysis_logger": {
    "buffer_len": 0,
    "cap_bytes": 0,
    "dropped_count": 0,
    "dropped_record_count": 0,
    "enabled": false,
    "file_cap_bytes": 0,
    "file_path": "",
    "file_size_bytes": null,
    "flush_count": 0,
    "flush_interval_seconds": 0.0,
    "flush_state": {
      "count": 0,
      "last_at": "",
      "last_error": "",
      "last_record_count": 0,
      "status": "idle"
    },
    "flush_status": "idle",
    "last_flush_at": "",
    "last_flush_error": "",
    "last_flush_record_count": 0,
    "max_buffer_records": 0,
    "mode": "off",
    "policy_source": "default_off_inactive_policy",
    "record_counts": {
      "scenario_debug": 0,
      "scenario_event": 0,
      "session_start": 0,
      "session_stop": 0,
      "tracking_summary": 0
    },
    "started": false,
    "suppressed_count": 0,
    "suppressed_counts": {
      "scenario_debug": 0,
      "scenario_event": 0,
      "tracking_summary": 0
    },
    "suspend_reason": "",
    "suspended": false,
    "write_suspended": false,
    "written_count": 0,
    "written_record_count": 0
  },
  "buffers": {
    "frame_buffer_len": 50,
    "frame_buffer_maxlen": 50,
    "frame_queue_maxsize": 10,
    "frame_queue_size": 0
  },
  "cctv_id": "29",
  "cgroup_memory": {
    "current_mb": 3933.793,
    "limit_mb": null
  },
  "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": 14.52,
    "last_started_at": "2026-07-15T17:29:33+09:00",
    "pid": 539,
    "process": {
      "exists": false,
      "pid": 539
    },
    "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": 129.936,
      "sample_count": 92,
      "scenario_effective_fps_enabled": false,
      "target_fps": 10.0,
      "warmup_remaining_s": 285.377
    },
    "queue_clear_age_s": 3.0,
    "queue_max_age_s": 2.0,
    "queue_maxsize": 10,
    "reader_queue_enabled": false,
    "stats": {
      "analysis_frames": 92,
      "analysis_skipped": 0,
      "frames_dequeued": 0,
      "frames_queued": 0,
      "last_analysis_at": "2026-07-15T17:29:46+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": "2672a54d",
  "last_frame_pushed_age_sec": 0.755,
  "last_frame_pushed_at": "2026-07-15T17:29:46+09:00",
  "last_frame_read_age_sec": 1.495,
  "last_frame_read_at": "2026-07-15T17:29:46+09:00",
  "memory_observability": {
    "active_channels": [
      "20",
      "21"
    ],
    "capped": false,
    "configured_mode": "monitoring",
    "current_rows": 2,
    "debug_expires_at": null,
    "deduplicated_count": 1,
    "effective_mode": "monitoring",
    "error_count": 0,
    "last_sample_age_sec": 0.759,
    "last_sample_duration_ms": 681.392,
    "last_trigger": "pre_stop",
    "next_snapshot_in_sec": 47.487,
    "reason": "channel_unregistered_recovery_pending",
    "rotation_count": 5,
    "runtime_state": "active",
    "sample_count": 2,
    "storage_bytes": 106261
  },
  "mjpeg": {
    "age_sec": 0.742,
    "exists": true,
    "mtime": "2026-07-15T17:29:46.794647+09:00",
    "mtime_epoch": 1784104186.7946475,
    "path": "/data/playlist/streaming/29/mjpeg.jpg",
    "size_bytes": 222162
  },
  "monitor_url": "http://sapi.ssims.ai:80/mjpeg/29",
  "observed_at": "2026-07-15T17:29:47+09:00",
  "process": {
    "exists": true,
    "fd_count": 109,
    "hwm_mb": 684.758,
    "name": "celery",
    "pid": 217,
    "rss_mb": 681.215,
    "state": "R (running)",
    "threads": 70
  },
  "reason_codes": [
    "ffmpeg_not_running"
  ],
  "recommended_action": "channel_restart_recommended",
  "recorder": {
    "active_count": 1,
    "cooldown_sec": 100,
    "last_event_key_count": 1,
    "oldest_recorder_age_sec": 1.359,
    "recorders": [
      {
        "age_sec": 1.359,
        "frame_count": 51,
        "is_recording": true,
        "is_stopping": false,
        "pid": 675,
        "process": {
          "exists": true,
          "fd_count": 5,
          "hwm_mb": 186.57,
          "name": "ffmpeg",
          "pid": 675,
          "rss_mb": 186.57,
          "state": "S (sleeping)",
          "threads": 60
        },
        "remaining_frames": 49,
        "returncode": null,
        "running": true,
        "started_at": "2026-07-15T17:29:46+09:00",
        "total_frames_to_record": 100,
        "videoname": "/data/playlist/accident/29/20260715_172946_danger_area_loitering__zone:25__track5"
      }
    ],
    "running_ffmpeg_count": 1,
    "running_pids": [
      675
    ],
    "stopping_count": 0
  },
  "recovery_eligible": true,
  "scenario_state_metrics": {
    "danger_area_loitering": {
      "active_track_count": 2,
      "enabled": true,
      "inside_track_count": 1,
      "last_pruned_track_count": 0,
      "last_state_prune": {
        "enabled": true,
        "frame_idx": 92,
        "pruned_track_count": 0,
        "remaining_track_count": 10,
        "sample_track_ids": [],
        "ttl_s": 25.0
      },
      "last_state_prune_ttl_s": 25.0,
      "loitering_track_count": 1,
      "pruned_track_count": 0,
      "recent_event_memory_count": 1,
      "scene_scale_profile": "far",
      "track_count": 10
    },
    "enabled": true,
    "falldown_detected": {
      "enabled": false
    },
    "marine_vessel_monitoring": {
      "enabled": false
    },
    "ppe_check": {
      "active_violation_key_count": 0,
      "enabled": true,
      "last_event_key_count": 0,
      "off_candidate_key_count": 0,
      "state_prune": {
        "cap_eviction_total": 0,
        "enabled": true,
        "error_count": 0,
        "interval_s": 5.0,
        "key_cap_per_scenario": 512,
        "last_event_pruned_total": 0,
        "last_event_ttl_s": 120.0,
        "last_prune_age_s": 2.274,
        "off_candidate_pruned_total": 0
      },
      "top_level_key_count": 4
    },
    "scene_scale": {
      "decision": "far",
      "decision_basis": "strong_samples",
      "decision_frame": 60,
      "decision_locked": true,
      "enabled": true,
      "last_metrics": {
        "decision_basis": "strong_samples",
        "decision_locked": true,
        "sample_cap": 40,
        "sample_count": 40,
        "worker_height_ratio_median": 0.089112,
        "worker_small_worker_ratio": 0.95
      },
      "raw_area_sample_count": 0,
      "raw_height_sample_count": 0,
      "sample_count": 40
    }
  },
  "source_url": "file:///data/playlist/uploads/260414_아이티원업로드용_시험성적서샘플영상/input/작업자_위험구역_진입경고_테스트영상들/위험구역_접근경고_테스트영상_003.mp4",
  "stage_metrics": {
    "aggregate_counts": {
      "model_result_counts": {
        "model_count": 2,
        "models": {
          "yolo11_640_coco_Large_pretrained_by_Ultralytics_11": {
            "avg": 2.761,
            "max": 5.0,
            "p95": 4.0,
            "sample_count": 92
          },
          "yolo11m_640_worker_ppe_equipment_ops260616_28class": {
            "avg": 6.978,
            "max": 20.0,
            "p95": 17.0,
            "sample_count": 92
          }
        },
        "truncated_count": 0
      },
      "object_counts": {
        "by_category.굴착기": {
          "avg": 1.0,
          "max": 1.0,
          "p95": 1.0,
          "sample_count": 92
        },
        "by_category.안전모 착용": {
          "avg": 1.109,
          "max": 2.0,
          "p95": 2.0,
          "sample_count": 55
        },
        "by_category.작업자": {
          "avg": 1.417,
          "max": 2.0,
          "p95": 2.0,
          "sample_count": 72
        },
        "total": {
          "avg": 2.772,
          "max": 5.0,
          "p95": 5.0,
          "sample_count": 92
        }
      },
      "tracking_counts": {
        "active": {
          "avg": 1.783,
          "max": 3.0,
          "p95": 3.0,
          "sample_count": 92
        },
        "lost": {
          "avg": 0.0,
          "max": 0.0,
          "p95": 0.0,
          "sample_count": 92
        },
        "removed": {
          "avg": 0.033,
          "max": 1.0,
          "p95": 0.0,
          "sample_count": 92
        },
        "tracked": {
          "avg": 1.783,
          "max": 3.0,
          "p95": 3.0,
          "sample_count": 92
        },
        "unconfirmed": {
          "avg": 0.0,
          "max": 0.0,
          "p95": 0.0,
          "sample_count": 92
        }
      }
    },
    "counts": {
      "inference_timeouts": 0,
      "invalid_reads": 0,
      "processed_frames": 92,
      "pushed_frames": 92,
      "read_frames": 92,
      "select_timeouts": 0,
      "triton_result_errors": 0
    },
    "enabled": true,
    "fps": {
      "processed": 7.37,
      "pushed": 7.37,
      "read": 7.37
    },
    "hints": [
      "read_fps_below_target",
      "processed_fps_below_target",
      "push_fps_below_target",
      "frame_processing_p95_over_budget",
      "triton_wait_p95_dominant"
    ],
    "inference_client": {
      "effective_mode": "monitoring",
      "enabled": true,
      "inflight": {
        "current": 0,
        "max": 2,
        "source": "client_direct"
      },
      "model_key_cap": 30,
      "models": {
        "yolo11_640_coco_Large_pretrained_by_Ultralytics_11": {
          "attempt_count": 92,
          "client_acquire_ms": {
            "avg_ms": 0.354,
            "count": 92,
            "max_ms": 31.794,
            "p95_ms": 0.017,
            "reason": null,
            "sample_age_ms": 1422.723,
            "source": "client_direct"
          },
          "error_count": 0,
          "executor_queue_ms": {
            "avg_ms": 6.664,
            "count": 92,
            "max_ms": 16.223,
            "p95_ms": 9.871,
            "reason": null,
            "sample_age_ms": 1486.858,
            "source": "client_direct"
          },
          "instrumentation_overhead_ms": {
            "avg_ms": 0.04,
            "count": 92,
            "max_ms": 0.449,
            "p95_ms": 0.092,
            "reason": null,
            "sample_age_ms": 1494.006,
            "source": "client_direct"
          },
          "parse_ms": {
            "avg_ms": 0.235,
            "count": 92,
            "max_ms": 0.864,
            "p95_ms": 0.378,
            "reason": null,
            "sample_age_ms": 1422.733,
            "source": "client_direct"
          },
          "prepare_ms": {
            "avg_ms": 2.671,
            "count": 92,
            "max_ms": 13.146,
            "p95_ms": 4.232,
            "reason": null,
            "sample_age_ms": 1484.076,
            "source": "client_direct"
          },
          "request_count": 92,
          "request_tensor_bytes": {
            "avg": 2764808.0,
            "count": 92,
            "max": 2764808.0,
            "p95": 2764808.0,
            "reason": null,
            "sample_age_ms": 1484.021,
            "source": "client_direct"
          },
          "response_tensor_bytes": {
            "avg": 8.0,
            "count": 92,
            "max": 8.0,
            "p95": 8.0,
            "reason": null,
            "sample_age_ms": 1422.896,
            "source": "client_direct"
          },
          "retry_count": 0,
          "roundtrip_total_ms": {
            "avg_ms": 52.461,
            "count": 92,
            "max_ms": 90.605,
            "p95_ms": 68.658,
            "reason": null,
            "sample_age_ms": 1422.719,
            "source": "client_direct"
          },
          "sample_age_ms": 1422.716,
          "source": "client_direct",
          "task_total_ms": {
            "avg_ms": 55.883,
            "count": 92,
            "max_ms": 110.377,
            "p95_ms": 71.978,
            "reason": null,
            "sample_age_ms": 1422.716,
            "source": "client_direct"
          },
          "timeout_count": 0
        },
        "yolo11m_640_worker_ppe_equipment_ops260616_28class": {
          "attempt_count": 92,
          "client_acquire_ms": {
            "avg_ms": 0.314,
            "count": 92,
            "max_ms": 27.899,
            "p95_ms": 0.021,
            "reason": null,
            "sample_age_ms": 1423.323,
            "source": "client_direct"
          },
          "error_count": 0,
          "executor_queue_ms": {
            "avg_ms": 0.979,
            "count": 92,
            "max_ms": 8.536,
            "p95_ms": 3.137,
            "reason": null,
            "sample_age_ms": 1493.719,
            "source": "client_direct"
          },
          "instrumentation_overhead_ms": {
            "avg_ms": 0.361,
            "count": 92,
            "max_ms": 3.242,
            "p95_ms": 1.642,
            "reason": null,
            "sample_age_ms": 1494.171,
            "source": "client_direct"
          },
          "parse_ms": {
            "avg_ms": 0.318,
            "count": 92,
            "max_ms": 0.744,
            "p95_ms": 0.58,
            "reason": null,
            "sample_age_ms": 1423.331,
            "source": "client_direct"
          },
          "prepare_ms": {
            "avg_ms": 3.057,
            "count": 92,
            "max_ms": 13.413,
            "p95_ms": 5.031,
            "reason": null,
            "sample_age_ms": 1490.985,
            "source": "client_direct"
          },
          "request_count": 92,
          "request_tensor_bytes": {
            "avg": 2764808.0,
            "count": 92,
            "max": 2764808.0,
            "p95": 2764808.0,
            "reason": null,
            "sample_age_ms": 1490.965,
            "source": "client_direct"
          },
          "response_tensor_bytes": {
            "avg": 8.0,
            "count": 92,
            "max": 8.0,
            "p95": 8.0,
            "reason": null,
            "sample_age_ms": 1423.547,
            "source": "client_direct"
          },
          "retry_count": 0,
          "roundtrip_total_ms": {
            "avg_ms": 55.997,
            "count": 92,
            "max_ms": 97.302,
            "p95_ms": 70.947,
            "reason": null,
            "sample_age_ms": 1423.321,
            "source": "client_direct"
          },
          "sample_age_ms": 1423.318,
          "source": "client_direct",
          "task_total_ms": {
            "avg_ms": 59.9,
            "count": 92,
            "max_ms": 111.462,
            "p95_ms": 77.938,
            "reason": null,
            "sample_age_ms": 1423.318,
            "source": "client_direct"
          },
          "timeout_count": 0
        }
      },
      "process_executor": {
        "inflight_current": 0,
        "inflight_max": 2,
        "max_workers": 40,
        "pid": 217,
        "protocols": {
          "grpc": {
            "max_workers": 40,
            "queued_current": 0,
            "source": "thread_pool_executor_private_scalar"
          }
        },
        "queued_current": 0,
        "source": "client_direct_and_executor_scalar"
      },
      "protocol": "grpc",
      "reason": "active",
      "sample_cap": 512,
      "schema_version": "ssims.live_inference_client_summary.v1",
      "snapshot_overhead_ms": 2.583,
      "truncated_model_count": 0,
      "window_s": 30.0
    },
    "latency_ms": {
      "analyze": {
        "avg_ms": 7.52,
        "count": 92,
        "max_ms": 15.186,
        "p95_ms": 11.654
      },
      "analyze_detail": {
        "data_bus_build_ms": {
          "avg_ms": 2.185,
          "count": 92,
          "max_ms": 5.11,
          "p95_ms": 3.483
        },
        "detection_prepare_ms": {
          "avg_ms": 2.168,
          "count": 92,
          "max_ms": 7.329,
          "p95_ms": 3.399
        },
        "event_filter_ms": {
          "avg_ms": 0.005,
          "count": 92,
          "max_ms": 0.017,
          "p95_ms": 0.01
        },
        "id_reconcile_ms": {
          "avg_ms": 0.259,
          "count": 92,
          "max_ms": 1.414,
          "p95_ms": 0.461
        },
        "mcmt_ms": {
          "avg_ms": 0.005,
          "count": 92,
          "max_ms": 0.027,
          "p95_ms": 0.009
        },
        "scenario_analyze_ms": {
          "avg_ms": 0.792,
          "count": 92,
          "max_ms": 4.409,
          "p95_ms": 1.697
        },
        "setup_ms": {
          "avg_ms": 0.114,
          "count": 92,
          "max_ms": 0.388,
          "p95_ms": 0.21
        },
        "total_inside_ms": {
          "avg_ms": 7.448,
          "count": 92,
          "max_ms": 15.007,
          "p95_ms": 11.546
        },
        "track_match_ms": {
          "avg_ms": 0.159,
          "count": 92,
          "max_ms": 0.411,
          "p95_ms": 0.279
        },
        "tracker_update_ms": {
          "avg_ms": 1.762,
          "count": 92,
          "max_ms": 4.609,
          "p95_ms": 2.926
        }
      },
      "gstreamer_push": {
        "avg_ms": 3.966,
        "count": 92,
        "max_ms": 8.837,
        "p95_ms": 7.298
      },
      "io_detail": {
        "channel_analysis_record_ms": {
          "avg_ms": 0.01,
          "count": 92,
          "max_ms": 0.026,
          "p95_ms": 0.02
        }
      },
      "model_completion": {
        "model_count": 2,
        "models": {
          "yolo11_640_coco_Large_pretrained_by_Ultralytics_11": {
            "avg_ms": 63.454,
            "count": 92,
            "max_ms": 116.391,
            "p95_ms": 79.988
          },
          "yolo11m_640_worker_ppe_equipment_ops260616_28class": {
            "avg_ms": 61.335,
            "count": 92,
            "max_ms": 114.511,
            "p95_ms": 83.256
          }
        },
        "truncated_count": 0
      },
      "processing_total": {
        "avg_ms": 116.311,
        "count": 92,
        "max_ms": 732.874,
        "p95_ms": 132.528
      },
      "read_interval": {
        "avg_ms": 120.752,
        "count": 91,
        "max_ms": 215.319,
        "p95_ms": 145.592
      },
      "scenario_detail": {
        "dispatch_overhead_ms": {
          "avg_ms": 0.027,
          "count": 92,
          "max_ms": 0.099,
          "p95_ms": 0.041
        },
        "execute_total_ms": {
          "avg_ms": 0.715,
          "count": 92,
          "max_ms": 4.332,
          "p95_ms": 1.504
        },
        "resolve_scenarios_ms": {
          "avg_ms": 0.025,
          "count": 92,
          "max_ms": 0.087,
          "p95_ms": 0.051
        },
        "scenario.danger_area_loitering_ms": {
          "avg_ms": 0.33,
          "count": 92,
          "max_ms": 1.238,
          "p95_ms": 0.868
        },
        "scenario.equipment_approach_ms": {
          "avg_ms": 0.079,
          "count": 92,
          "max_ms": 0.36,
          "p95_ms": 0.186
        },
        "scenario.no_hardhat_persistent_ms": {
          "avg_ms": 0.187,
          "count": 92,
          "max_ms": 0.88,
          "p95_ms": 0.375
        },
        "scenario.ppe_status_check_ms": {
          "avg_ms": 0.093,
          "count": 92,
          "max_ms": 3.443,
          "p95_ms": 0.108
        },
        "worker_merge_ms": {
          "avg_ms": 0.009,
          "count": 92,
          "max_ms": 0.036,
          "p95_ms": 0.018
        }
      },
      "triton_wait": {
        "avg_ms": 64.571,
        "count": 92,
        "max_ms": 116.413,
        "p95_ms": 83.912
      },
      "visualize": {
        "avg_ms": 34.586,
        "count": 92,
        "max_ms": 58.14,
        "p95_ms": 45.642
      },
      "visualize_detail": {
        "visualize_draw_all_ms": {
          "avg_ms": 32.534,
          "count": 92,
          "max_ms": 52.435,
          "p95_ms": 43.678
        },
        "visualize_input_copy_ms": {
          "avg_ms": 2.033,
          "count": 92,
          "max_ms": 5.676,
          "p95_ms": 3.714
        },
        "visualize_roi_overlay_ms": {
          "avg_ms": 0.0,
          "count": 92,
          "max_ms": 0.0,
          "p95_ms": 0.0
        },
        "visualizer_overlay_draw_ms": {
          "avg_ms": 32.371,
          "count": 92,
          "max_ms": 51.707,
          "p95_ms": 43.545
        },
        "visualizer_prepare_ms": {
          "avg_ms": 0.099,
          "count": 92,
          "max_ms": 0.552,
          "p95_ms": 0.181
        }
      }
    },
    "scenario_detail_counts": {
      "error_count": {
        "avg": 0.0,
        "max": 0.0,
        "p95": 0.0,
        "sample_count": 92
      },
      "resolved_scenario_count": {
        "avg": 4.0,
        "max": 4.0,
        "p95": 4.0,
        "sample_count": 92
      },
      "returned_event_count": {
        "avg": 0.011,
        "max": 1.0,
        "p95": 0.0,
        "sample_count": 92
      }
    },
    "target_fps": 10.0,
    "target_frame_budget_ms": 100.0,
    "window_elapsed_s": 12.484,
    "window_s": 30.0
  },
  "started_at": "2026-07-15T17:29:32+09:00",
  "state": "stopped",
  "task_id": "c74499cf-9c5f-434a-870e-dfc284683616",
  "trigger": "start",
  "triton_protocol": "grpc"
}