{
  "at": 1789647821.0168939,
  "state": {
    "Status": "exited",
    "Running": false,
    "Paused": false,
    "Restarting": false,
    "OOMKilled": false,
    "Dead": false,
    "Pid": 0,
    "ExitCode": 0,
    "Error": "",
    "StartedAt": "2026-09-17T12:22:47.619342267Z",
    "FinishedAt": "2026-09-17T12:23:40.633069373Z",
    "Health": {
      "Status": "unhealthy",
      "FailingStreak": 1,
      "Log": [
        {
          "Start": "2026-09-17T21:22:53.6800659+09:00",
          "End": "2026-09-17T21:22:53.982040277+09:00",
          "ExitCode": 1,
          "Output": "Traceback (most recent call last):\n  File \"/usr/lib/python3.12/urllib/request.py\", line 1344, in do_open\n    h.request(req.get_method(), req.selector, req.data, headers,\n  File \"/usr/lib/python3.12/http/client.py\", line 1356, in request\n    self._send_request(method, url, body, headers, encode_chunked)\n  File \"/usr/lib/python3.12/http/client.py\", line 1402, in _send_request\n    self.endheaders(body, encode_chunked=encode_chunked)\n  File \"/usr/lib/python3.12/http/client.py\", line 1351, in endheaders\n    self._send_output(message_body, encode_chunked=encode_chunked)\n  File \"/usr/lib/python3.12/http/client.py\", line 1111, in _send_output\n    self.send(msg)\n  File \"/usr/lib/python3.12/http/client.py\", line 1055, in send\n    self.connect()\n  File \"/usr/lib/python3.12/http/client.py\", line 1021, in connect\n    self.sock = self._create_connection(\n                ^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/usr/lib/python3.12/socket.py\", line 852, in create_connection\n    raise exceptions[0]\n  File \"/usr/lib/python3.12/socket.py\", line 837, in create_connection\n    sock.connect(sa)\nConnectionRefusedError: [Errno 111] Connection refused\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n  File \"<string>\", line 1, in <module>\n  File \"/usr/lib/python3.12/urllib/request.py\", line 215, in urlopen\n    return opener.open(url, data, timeout)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/usr/lib/python3.12/urllib/request.py\", line 515, in open\n    response = self._open(req, data)\n               ^^^^^^^^^^^^^^^^^^^^^\n  File \"/usr/lib/python3.12/urllib/request.py\", line 532, in _open\n    result = self._call_chain(self.handle_open, protocol, protocol +\n             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/usr/lib/python3.12/urllib/request.py\", line 492, in _call_chain\n    result = func(*args)\n             ^^^^^^^^^^^\n  File \"/usr/lib/python3.12/urllib/request.py\", line 1373, in http_open\n    return self.do_open(http.client.HTTPConnection, req)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/usr/lib/python3.12/urllib/request.py\", line 1347, in do_open\n    raise URLError(err)\nurllib.error.URLError: <urlopen error [Errno 111] Connection refused>\n"
        },
        {
          "Start": "2026-09-17T21:22:58.986599448+09:00",
          "End": "2026-09-17T21:22:59.276894505+09:00",
          "ExitCode": 1,
          "Output": "Traceback (most recent call last):\n  File \"/usr/lib/python3.12/urllib/request.py\", line 1344, in do_open\n    h.request(req.get_method(), req.selector, req.data, headers,\n  File \"/usr/lib/python3.12/http/client.py\", line 1356, in request\n    self._send_request(method, url, body, headers, encode_chunked)\n  File \"/usr/lib/python3.12/http/client.py\", line 1402, in _send_request\n    self.endheaders(body, encode_chunked=encode_chunked)\n  File \"/usr/lib/python3.12/http/client.py\", line 1351, in endheaders\n    self._send_output(message_body, encode_chunked=encode_chunked)\n  File \"/usr/lib/python3.12/http/client.py\", line 1111, in _send_output\n    self.send(msg)\n  File \"/usr/lib/python3.12/http/client.py\", line 1055, in send\n    self.connect()\n  File \"/usr/lib/python3.12/http/client.py\", line 1021, in connect\n    self.sock = self._create_connection(\n                ^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/usr/lib/python3.12/socket.py\", line 852, in create_connection\n    raise exceptions[0]\n  File \"/usr/lib/python3.12/socket.py\", line 837, in create_connection\n    sock.connect(sa)\nConnectionRefusedError: [Errno 111] Connection refused\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n  File \"<string>\", line 1, in <module>\n  File \"/usr/lib/python3.12/urllib/request.py\", line 215, in urlopen\n    return opener.open(url, data, timeout)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/usr/lib/python3.12/urllib/request.py\", line 515, in open\n    response = self._open(req, data)\n               ^^^^^^^^^^^^^^^^^^^^^\n  File \"/usr/lib/python3.12/urllib/request.py\", line 532, in _open\n    result = self._call_chain(self.handle_open, protocol, protocol +\n             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/usr/lib/python3.12/urllib/request.py\", line 492, in _call_chain\n    result = func(*args)\n             ^^^^^^^^^^^\n  File \"/usr/lib/python3.12/urllib/request.py\", line 1373, in http_open\n    return self.do_open(http.client.HTTPConnection, req)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/usr/lib/python3.12/urllib/request.py\", line 1347, in do_open\n    raise URLError(err)\nurllib.error.URLError: <urlopen error [Errno 111] Connection refused>\n"
        },
        {
          "Start": "2026-09-17T21:23:04.27901724+09:00",
          "End": "2026-09-17T21:23:04.512647943+09:00",
          "ExitCode": 1,
          "Output": "Traceback (most recent call last):\n  File \"/usr/lib/python3.12/urllib/request.py\", line 1344, in do_open\n    h.request(req.get_method(), req.selector, req.data, headers,\n  File \"/usr/lib/python3.12/http/client.py\", line 1356, in request\n    self._send_request(method, url, body, headers, encode_chunked)\n  File \"/usr/lib/python3.12/http/client.py\", line 1402, in _send_request\n    self.endheaders(body, encode_chunked=encode_chunked)\n  File \"/usr/lib/python3.12/http/client.py\", line 1351, in endheaders\n    self._send_output(message_body, encode_chunked=encode_chunked)\n  File \"/usr/lib/python3.12/http/client.py\", line 1111, in _send_output\n    self.send(msg)\n  File \"/usr/lib/python3.12/http/client.py\", line 1055, in send\n    self.connect()\n  File \"/usr/lib/python3.12/http/client.py\", line 1021, in connect\n    self.sock = self._create_connection(\n                ^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/usr/lib/python3.12/socket.py\", line 852, in create_connection\n    raise exceptions[0]\n  File \"/usr/lib/python3.12/socket.py\", line 837, in create_connection\n    sock.connect(sa)\nConnectionRefusedError: [Errno 111] Connection refused\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n  File \"<string>\", line 1, in <module>\n  File \"/usr/lib/python3.12/urllib/request.py\", line 215, in urlopen\n    return opener.open(url, data, timeout)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/usr/lib/python3.12/urllib/request.py\", line 515, in open\n    response = self._open(req, data)\n               ^^^^^^^^^^^^^^^^^^^^^\n  File \"/usr/lib/python3.12/urllib/request.py\", line 532, in _open\n    result = self._call_chain(self.handle_open, protocol, protocol +\n             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/usr/lib/python3.12/urllib/request.py\", line 492, in _call_chain\n    result = func(*args)\n             ^^^^^^^^^^^\n  File \"/usr/lib/python3.12/urllib/request.py\", line 1373, in http_open\n    return self.do_open(http.client.HTTPConnection, req)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/usr/lib/python3.12/urllib/request.py\", line 1347, in do_open\n    raise URLError(err)\nurllib.error.URLError: <urlopen error [Errno 111] Connection refused>\n"
        },
        {
          "Start": "2026-09-17T21:23:09.513929403+09:00",
          "End": "2026-09-17T21:23:09.797530584+09:00",
          "ExitCode": 0,
          "Output": ""
        },
        {
          "Start": "2026-09-17T21:23:39.800029166+09:00",
          "End": "2026-09-17T21:23:40.033543768+09:00",
          "ExitCode": 1,
          "Output": "Traceback (most recent call last):\n  File \"/usr/lib/python3.12/urllib/request.py\", line 1344, in do_open\n    h.request(req.get_method(), req.selector, req.data, headers,\n  File \"/usr/lib/python3.12/http/client.py\", line 1356, in request\n    self._send_request(method, url, body, headers, encode_chunked)\n  File \"/usr/lib/python3.12/http/client.py\", line 1402, in _send_request\n    self.endheaders(body, encode_chunked=encode_chunked)\n  File \"/usr/lib/python3.12/http/client.py\", line 1351, in endheaders\n    self._send_output(message_body, encode_chunked=encode_chunked)\n  File \"/usr/lib/python3.12/http/client.py\", line 1111, in _send_output\n    self.send(msg)\n  File \"/usr/lib/python3.12/http/client.py\", line 1055, in send\n    self.connect()\n  File \"/usr/lib/python3.12/http/client.py\", line 1021, in connect\n    self.sock = self._create_connection(\n                ^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/usr/lib/python3.12/socket.py\", line 852, in create_connection\n    raise exceptions[0]\n  File \"/usr/lib/python3.12/socket.py\", line 837, in create_connection\n    sock.connect(sa)\nConnectionRefusedError: [Errno 111] Connection refused\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n  File \"<string>\", line 1, in <module>\n  File \"/usr/lib/python3.12/urllib/request.py\", line 215, in urlopen\n    return opener.open(url, data, timeout)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/usr/lib/python3.12/urllib/request.py\", line 515, in open\n    response = self._open(req, data)\n               ^^^^^^^^^^^^^^^^^^^^^\n  File \"/usr/lib/python3.12/urllib/request.py\", line 532, in _open\n    result = self._call_chain(self.handle_open, protocol, protocol +\n             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/usr/lib/python3.12/urllib/request.py\", line 492, in _call_chain\n    result = func(*args)\n             ^^^^^^^^^^^\n  File \"/usr/lib/python3.12/urllib/request.py\", line 1373, in http_open\n    return self.do_open(http.client.HTTPConnection, req)\n           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n  File \"/usr/lib/python3.12/urllib/request.py\", line 1347, in do_open\n    raise URLError(err)\nurllib.error.URLError: <urlopen error [Errno 111] Connection refused>\n"
        }
      ]
    }
  },
  "outcomes": {
    "web-cam08-test": {
      "stream_id": "web-cam08-test",
      "site_id": null,
      "source_type": "rtsp",
      "state": "stopped",
      "desired_state": "stopped",
      "observed_state": "stopped",
      "run_generation": 1,
      "run_id": "607b680a-07be-40fb-a499-c8b01af1e5c6",
      "roles": {
        "det": {
          "state": "stopped",
          "required": true,
          "initialized": true,
          "last_frame_at": 1789647811.7708497,
          "source_stage": "native_completed",
          "source_stage_at": 1789647811.834347,
          "source_stages": {
            "pipeline_state_changed": 1789647803.908782,
            "decoded_frame_received": 1789647811.8069038,
            "preprocess_output": 1789647811.8077815,
            "infer_output": 1789647811.8217049,
            "consume_entered": 1789647811.8228254,
            "native_completed": 1789647811.834347,
            "inference_frame_completed": 1789647811.7707725
          },
          "stage_counts": {
            "pipeline_state_changed": 88,
            "decoded_frame_received": 85,
            "preprocess_output": 85,
            "infer_output": 85,
            "consume_entered": 85,
            "native_completed": 85,
            "inference_frame_completed": 84
          },
          "last_error": null,
          "stage_first_at": {
            "pipeline_state_changed": 1789647801.979058,
            "decoded_frame_received": 1789647803.7852223,
            "preprocess_output": 1789647803.8583648,
            "infer_output": 1789647803.8972967,
            "consume_entered": 1789647803.9029307,
            "native_completed": 1789647803.917315,
            "inference_frame_completed": 1789647804.0374384
          }
        }
      },
      "last_error": null,
      "cleanup_error": null,
      "cleanup_pending": false,
      "restart_pending": false,
      "last_cleanup": {
        "generation": 1,
        "completed": true,
        "child_reaped": true,
        "forced": false,
        "writer_released": true,
        "finished_monotonic_ns": 1500533848060855
      },
      "started_at": null,
      "uptime_s": null,
      "inference_profile": {
        "roles": [
          "det"
        ],
        "requested_models": {
          "det": "RFDETRMedium"
        },
        "active_models": {
          "det": "RFDETRMedium"
        },
        "degraded_roles": [],
        "score_threshold": 0.5,
        "class_min_confidence": {}
      },
      "metadata_path": {
        "state": "NOT_CONNECTED"
      },
      "scenarios": {
        "active": [],
        "disabled": []
      },
      "frames_in_window": 0,
      "detail_capabilities": {
        "full_collector": false,
        "bounded_metrics": true,
        "tracking_profiles": false
      },
      "publisher_metrics": {
        "sent": 86,
        "sent_status": 2,
        "sent_frames": 84,
        "queued": 0,
        "queuedBytes": 0,
        "channels": 1,
        "workers": 1,
        "profile": {
          "enabled": false,
          "revision": 0,
          "channels": {},
          "timing_scope": "sink_only_v2",
          "timeline_limit_per_channel": 256,
          "replacement_limit_per_channel": 32
        },
        "workerMode": "process-channel",
        "inflightBytes": 0,
        "inflightByteLimit": 10485760
      },
      "child_pid": null,
      "child_sampled_ns": 1500532837749748,
      "execution_mode": "process",
      "heartbeat_age_s": 1.095
    },
    "web-cam01-test": {
      "stream_id": "web-cam01-test",
      "site_id": null,
      "source_type": "rtsp",
      "state": "stopped",
      "desired_state": "stopped",
      "observed_state": "stopped",
      "run_generation": 1,
      "run_id": "e9b82028-6ede-46e2-bf39-5694dc52ca00",
      "roles": {
        "det": {
          "state": "stopped",
          "required": true,
          "initialized": true,
          "last_frame_at": 1789647813.3988197,
          "source_stage": "preprocess_output",
          "source_stage_at": 1789647813.4398923,
          "source_stages": {
            "pipeline_state_changed": 1789647810.843084,
            "decoded_frame_received": 1789647813.4388297,
            "preprocess_output": 1789647813.4398923,
            "infer_output": 1789647813.3673306,
            "consume_entered": 1789647813.3697352,
            "native_completed": 1789647813.3816493,
            "inference_frame_completed": 1789647813.3987842
          },
          "stage_counts": {
            "pipeline_state_changed": 88,
            "decoded_frame_received": 31,
            "preprocess_output": 31,
            "infer_output": 30,
            "consume_entered": 30,
            "native_completed": 30,
            "inference_frame_completed": 30
          },
          "last_error": null,
          "stage_first_at": {
            "pipeline_state_changed": 1789647807.5232103,
            "decoded_frame_received": 1789647810.801371,
            "preprocess_output": 1789647810.8034933,
            "infer_output": 1789647810.8305378,
            "consume_entered": 1789647810.8375509,
            "native_completed": 1789647810.8654647,
            "inference_frame_completed": 1789647810.9571643
          }
        }
      },
      "last_error": null,
      "cleanup_error": null,
      "cleanup_pending": false,
      "restart_pending": false,
      "last_cleanup": {
        "generation": 1,
        "completed": true,
        "child_reaped": true,
        "forced": false,
        "writer_released": true,
        "finished_monotonic_ns": 1500535259563054
      },
      "started_at": null,
      "uptime_s": null,
      "inference_profile": {
        "roles": [
          "det"
        ],
        "requested_models": {
          "det": "RFDETRMedium"
        },
        "active_models": {
          "det": "RFDETRMedium"
        },
        "degraded_roles": [],
        "score_threshold": 0.5,
        "class_min_confidence": {}
      },
      "metadata_path": {
        "state": "NOT_CONNECTED"
      },
      "scenarios": {
        "active": [],
        "disabled": []
      },
      "frames_in_window": 0,
      "detail_capabilities": {
        "full_collector": false,
        "bounded_metrics": true,
        "tracking_profiles": false
      },
      "publisher_metrics": {
        "sent": 33,
        "sent_status": 3,
        "sent_frames": 30,
        "queued": 0,
        "queuedBytes": 0,
        "channels": 1,
        "workers": 1,
        "profile": {
          "enabled": false,
          "revision": 0,
          "channels": {},
          "timing_scope": "sink_only_v2",
          "timeline_limit_per_channel": 256,
          "replacement_limit_per_channel": 32
        },
        "workerMode": "process-channel",
        "inflightBytes": 0,
        "inflightByteLimit": 10485760
      },
      "child_pid": null,
      "child_sampled_ns": 1500534449326197,
      "execution_mode": "process",
      "heartbeat_age_s": 1.038
    }
  }
}