본문으로 건너뛰기

Metrics Client

근처의 Metrics Server를 검색하고 Bluetooth LE를 통해 스트리밍되는 실시간 기기 정보를 확인하세요.

Discovery 탭: 상태 및 새로 고침 컨트롤과 함께 근처 Metrics Server를 스캔 중입니다.
서버가 발견되지 않을 때 문제 해결을 돕는 체크리스트가 표시됩니다.
스캔 표시기와 사용 가능한 서버 목록이 있는 Discovery 탭.

개요

Metrics Client는 다른 기기에서 실행 중인 **Metrics Server**에 연결하여 서버의 실시간 기기 정보를 실시간으로 표시합니다. CPU 사용량, 코어별 CPU 활동, 기기 식별 정보(서버 이름, 기기 모델, 기기 이름), 타임스탬프를 Bluetooth Low Energy를 통해 스트리밍으로 수신합니다.

목차

Metrics Client에는 두 개의 탭이 있습니다. 스와이프하거나 탭 제목을 눌러 전환할 수 있습니다.

  • Discovery — 근처 서버를 검색하고 연결합니다.
  • Metrics — 연결된 서버의 실시간 데이터를 확인합니다.

Discovery 탭

Discovery 탭은 시작 화면입니다. 근처의 Metrics Server 주변기기를 스캔하고 하나에 연결할 수 있습니다.

Discovery 상태 카드

상태 카드에는 다음이 표시됩니다:

  • 스캔 표시기 — 색상 점과 레이블:
    • Scanning (파란색, 로딩 애니메이션 포함) — 주변기기를 적극적으로 스캔 중입니다.
    • Idle (회색) — 스캔이 일시 중지됨.
  • 발견된 서버 수 — 현재 보이는 Metrics Server 주변기기 수.
  • 새로 고침 버튼 — BLE 스캔을 중지했다가 다시 시작하여 새로운 서버를 검색합니다.

도구를 열면 스캔이 자동으로 시작됩니다.

사용 가능한 서버 목록

상태 카드 아래에 발견된 서버가 나열됩니다. Metrics Server BLE 서비스 UUID를 광고하는 주변기기만 표시되며, 다른 블루투스 기기는 필터링됩니다.

서버가 발견되지 않으면 문제 해결 체크리스트가 표시됩니다:

  • 기기에서 Metrics Server 도구가 실행 중인지 확인
  • 설정에서 로컬 네트워크 권한이 허용되었는지 확인
  • 두 기기가 동일한 네트워크에 있거나 BLE 범위 내에 있는지 확인

BLE 광고에서 사라진 서버는 깜빡임을 방지하기 위해 짧은 유예 기간(3초) 동안 목록에 유지됩니다.

서버 행

발견된 각 서버는 다음을 포함하는 행으로 표시됩니다:

  • 서버 이름 — Metrics Server에서 설정한 이름 (예: "iPhone 16 Pro Max (iPhone17,2)"). BLE 광고 이름이 변경될 때 빠른 깜빡임을 방지하기 위해 표시 이름은 1.5초 동안 디바운스 처리됩니다.
  • RSSI — dBm 단위의 신호 세기와 색상으로 구분된 3단계 신호 표시기:
    • 녹색 (3단계) — 강한 신호 (≥ -60 dBm)
    • 주황색 (2단계) — 보통 신호 (≥ -75 dBm)
    • 빨간색 (1단계) — 약한 신호 (< -75 dBm)
  • 서비스 가용성 — 서버가 Metrics 서비스 UUID를 광고하는지 여부를 나타내는 녹색 또는 회색 점.
  • 연결 / 연결 해제 버튼:
    • 연결 (파란색) — 이 서버에 BLE 연결을 시작합니다.
    • 연결 중 (회색, 로딩 스피너 포함) — 연결 진행 중.
    • 연결 해제 (빨간색) — 현재 서버와의 연결을 종료합니다.

한 번에 하나의 서버 연결만 지원됩니다. 한 서버에 연결 중일 때 다른 서버 행은 비활성화됩니다.


Metrics 탭

연결되면 Metrics 탭에 서버에서 스트리밍되는 실시간 데이터가 표시됩니다. 연결이 성공하면 클라이언트가 자동으로 이 탭으로 전환됩니다.

연결 상태 카드

상단 카드에는 다음이 표시됩니다:

  • 연결 상태 — 색상 점과 레이블:
    • 연결됨 (녹색)
    • 연결 끊김 (빨간색)

연결되면 추가 정보가 나타납니다:

  • 신호 세기 — 5단계 표시기와 품질 레이블(Excellent, Good, Fair, Poor, Very Poor) 및 원시 RSSI 값(dBm):

    RSSI 범위품질단계
    ≥ -50 dBmExcellent5
    -51 ~ -65 dBmGood4
    -66 ~ -75 dBmFair3
    -76 ~ -85 dBmPoor2
    -85 dBm 미만Very Poor1
  • RSSI 기록 — 최대 120개 샘플의 신호 세기 선 그래프로 연결 안정성을 시각적으로 제공합니다.

  • 서버 식별 정보 — 서버가 전송한 세 가지 키-값 행:

    필드설명
    서버 이름Metrics Server에서 설정한 이름 (예: "iPhone 16 Pro Max (iPhone17,2)").
    기기 모델서버 기기의 마케팅 이름 (예: "iPhone 16 Pro Max").
    기기 이름iOS 설정에서 사용자가 지정한 기기 이름 (예: "Rogerio's iPhone 16ProMax").
  • 오류 메시지 — BLE 오류(연결 실패, 연결 끊김 등)가 발생하면 빨간색 경고로 표시됩니다.

  • 연결 해제 버튼 (빨간색, 전체 너비)으로 연결을 종료할 수 있습니다.

실시간 기기 정보 카드

기기 정보가 수신 중일 때 이 카드에 다음이 표시됩니다:

필드설명
CPU 사용량서버 기기의 현재 전체 CPU 사용률(예: 30.0%)을 큰 숫자로 표시합니다.
코어 수서버 기기의 CPU 코어 수(예: 6).
최종 업데이트가장 최근 기기 정보 패킷의 타임스탬프를 시간 문자열로 표시합니다.

CPU 사용량 기록

서버의 CPU 사용량 변화를 보여주는 선 그래프입니다. 최대 100개의 데이터 포인트를 보유하며, 1초 업데이트 간격으로 약 100초 분량의 기록을 제공합니다.

코어별 사용량

서버가 코어별 CPU 데이터를 제공하면, 기록 그래프 아래에 코어별 사용량 뷰가 표시됩니다. CPU Monitor 도구에서 사용하는 것과 동일한 코어별 시각화로 각 CPU 코어의 현재 사용률을 보여줍니다.

기기 정보 없음 상태

연결되지 않았거나 아직 기기 정보가 도착하지 않은 경우, Metrics 탭에 차트 아이콘과 Discovery 탭을 사용해 서버에 연결하라는 안내가 표시됩니다.


Metrics Server와 함께 사용하는 방법

  1. 관찰하려는 기기에서 도구 > Metrics Server를 열고 서버 시작을 탭하세요.
  2. Metrics Client가 실행 중인 기기에서 도구 > Metrics Client를 엽니다.
  3. Discovery 탭에서 서버를 찾아 연결을 탭하세요.
  4. 클라이언트가 자동으로 Metrics 탭으로 전환되어 실시간 데이터를 표시합니다.

권한

  • 블루투스 권한 — BLE 스캔 및 연결에 필요합니다. 권한이 거부되면 iOS 설정에서 Lirum에 대한 블루투스 접근을 허용하세요.
  • 블루투스 권한은 CoreBluetooth가 자동으로 처리하며, 도구가 처음 초기화될 때 시스템 권한 요청이 표시됩니다.

기술 세부 정보

  • 클라이언트는 CBCentralManager를 사용하여 BLE 중앙 역할을 수행합니다. 근처 모든 주변기기를 스캔하고 Metrics Server 서비스 UUID를 광고하는 기기만 필터링하여 표시합니다.
  • 연결 시 클라이언트는 Metrics Server GATT 서비스를 발견하고 summaryper-core 알림 특성에 구독합니다.
  • 기기 정보는 약 1초 간격으로 바이너리 페이로드로 도착하며, 클라이언트는 다음을 디코딩합니다:
    • Summary: 서버 이름, 기기 모델, 기기 이름, 전체 CPU 사용률(Float), 코어 수(UInt16), 타임스탬프(UInt64 밀리초).
    • Per-core: 코어 수, 코어별 사용률 배열(Float 각 코어별), 타임스탬프(UInt64 밀리초).
  • 클라이언트는 이전 버전 호환을 위해 v1(레거시) 및 v2(현재) 페이로드 형식을 모두 지원합니다. v2는 기기 모델, 서버 이름을 별도 필드로 추가하고 밀리초 정밀 타임스탬프를 포함합니다.
  • 연결된 서버의 RSSIreadRSSI()를 통해 2초마다 폴링됩니다. 최대 120개 샘플의 RSSI 기록이 신호 그래프에 사용됩니다.
  • 신호 평활화 — 검색 목록에서 RSSI 값은 시각적 떨림을 줄이기 위해 지수 평활화(alpha = 0.15) 처리됩니다.
  • 이름 안정화 — 검색 목록의 서버 표시 이름은 BLE 광고 이름이 빠르게 변경될 때 깜빡임을 방지하기 위해 1.5초 디바운스 처리됩니다.
  • 사라짐 유예 기간 — BLE 광고에서 사라진 서버는 목록에서 제거되기 전 3초간 유지되어 목록 깜빡임을 방지합니다.
  • CoreBluetooth 상태 복원이 활성화되어 앱이 시스템에 의해 재실행될 때 기존 연결을 복구할 수 있습니다.
  • 기기 정보 기록은 최대 100개 항목으로 제한되며, 기본 1초 업데이트 간격으로 약 100초 분량의 데이터를 저장합니다.

주의 사항 및 제한 사항

  • 이 도구는 Bluetooth LE를 사용하며 Wi-Fi 네트워킹을 사용하지 않습니다. 두 기기는 BLE 범위 내에 있어야 합니다.
  • 한 번에 하나의 서버 연결만 지원됩니다.
  • RSSI는 신호 세기의 대략적인 지표이며 환경 요인에 따라 변동될 수 있습니다.
  • 기기 정보 스트림에는 CPU 사용량, 코어별 사용량, 코어 수, 기기 식별 정보가 포함되며, 메모리, 저장 공간, 온도 등 다른 기기 정보는 현재 전송되지 않습니다.
  • visionOS에서는 BLE 중앙 역할이 지원되지 않아 Metrics Client를 사용할 수 없습니다.