macOS에서 개인 대역폭 대시보드 만들기
macOS에서 개인 대역폭 대시보드를 구성하는 실용 가이드입니다. 무엇을 추적하고 무엇을 무시할지, 그리고 모든 데이터를 로컬에 두는 방법을 다룹니다.
- macOS
- Bandwidth
- Productivity
- Tutorial
6개월마다 누군가가 Hacker News에 "Prometheus와 Grafana로 개인 모니터링 스택을 만들었다"를 게시합니다. 아름답고, 토요일에 설정하기 재미있고, 실제 질문에 대해 터무니없이 과합니다. Mac의 각 앱이 얼마나 대역폭을 사용하고 있는가? TSDB도, Docker compose 파일도, TLS가 있는 리버스 프록시도 필요하지 않습니다. 한 화면에 맞고, 메뉴 바에 살고, 방해되지 않는 macOS 대역폭 대시보드가 필요합니다. 주말을 태우지 않고 만드는 방법이 여기 있습니다.
논제: 메뉴 바 앱이 라이브 및 최근 계층을 처리하고, 가끔의 CSV 내보내기가 보관 분석을 처리하면 끝입니다. 돌볼 서비스도 없고, 편집할 스크레이프 구성도 없으며, 유지할 패널도 없습니다.
macOS 대역폭 대시보드 사용자가 실제로 필요로 하는 것
Grafana 환상을 벗겨내고 실제로 무엇을 볼지 물어보세요.
- 현재 속도. "지금 무언가가 대역폭을 사용하고 있는가?" — 가장 흔한 질문, 하루에 수십 번 묻습니다.
- 앱별 분석. 답이 "예"일 때, 어떤 앱인지 알고 싶습니다.
- 최근 기록. 지난 한 시간, 지난 하루, 어쩌면 지난 일주일. 패턴을 발견하기에 충분.
- 가끔의 깊이 있는 다이빙. 한 달에 한 번 이번 달을 지난달과 비교하거나 다른 무언가와 상관시키고 싶습니다.
그게 다입니다. 그것이 전체 제품입니다. 대부분의 "개인 모니터링" 스택은 도구가 그것을 권장하기 때문에 수십 개의 대시보드와 함께 출시됩니다. 그것들은 필요하지 않습니다.
두 계층 디자인
문제를 라이브/최근 계층과 보관 계층으로 나누세요.
라이브 + 최근: 메뉴 바 앱
메뉴 바 앱은 처음 세 가지 필요에 적절한 모양입니다. 항상 실행되고, 현재 활동에서 한 번의 클릭 거리에 있으며, 보고 있지 않을 때는 화면 공간을 차지하지 않습니다. 메뉴 바 아이콘의 정보 밀도 — 작은 그래프나 두 개의 숫자로서의 현재 속도 — 가 정확히 "지금 무언가가 대역폭을 사용하고 있는가"가 원하는 것입니다.
다음 속성으로 하나를 고르면 준비됩니다.
- 메뉴 바에 한눈에 라이브 속도를 보여줌
- 앱별 분석이 있는 팝오버 또는 창이 있음
- 도우미 프로세스를 상위 앱 아래로 접음(그래서 "Slack"이 일곱 줄이 아니라 한 줄)
- 적어도 하루의 기록을 보관, 이상적으로 일주일 이상
- macOS가 표시하지 않도록 서명 및 공증됨
ova는 이 모든 것과 함께 출시됩니다. 약 3MB, 약 1Hz로 샘플링, macOS 14 이상에서 실행(Apple Silicon과 Intel), 데이터는 로컬에 머무르고, 텔레메트리 없음.
보관: 가끔의 CSV 내보내기
한 달에 한 번의 "이번 달을 지난달과 비교" 질문에는 라이브 시스템이 필요하지 않습니다. 평면 파일이 필요합니다. 대역폭 모니터에서 CSV를 내보내고, 노트북(Jupyter, Observable, 무엇이든)에 넣고, 쿼리를 실행하세요.
이는 흥미로운 분석을 하기에도 적절한 곳입니다. 시간대별 히트맵, 앱별 상위 목적지, 주간 성장. 라이브로 필요하지 않습니다 — 한 달에 한 번 실행하는 것이 괜찮습니다 — 그리고 노트북이 그것을 하기 위해 Grafana 인스턴스를 호스팅할 필요가 없습니다.
모니터가 SQLite에 데이터를 저장한다면(ova는 ~/Library/Application Support/ova/에 저장합니다), 내보내기는 한 명령입니다.
sqlite3 -header -csv \
~/Library/Application\ Support/ova/<file>.sqlite \
"SELECT timestamp, app, bytes_in, bytes_out FROM samples" \
> ~/Desktop/bandwidth.csv그 다음 Python이나 R이나 DuckDB에 로드하면, 한 쿼리와 0의 인프라로 Grafana 스택의 무거운 들기 계층을 갖게 됩니다.
왜 Grafana가 아닌가?
Grafana, Prometheus, InfluxDB, Loki — 플릿에는 훌륭한 도구입니다. Mac 한 대에는 운영 오버헤드가 비율에 맞지 않게 큽니다. 다음이 필요합니다.
- 로컬에서 실행되는 Prometheus 인스턴스(RAM, 디스크, 포트)
proc_pidinfo또는nettop출력을 읽는 사용자 정의 익스포터(누군가가 작성하고 유지해야 함)- 로컬에서 실행되는 Grafana(Java/Go 프로세스, 포트, 데이터베이스)
- 작성하고 버전 관리할 대시보드
- 정기적으로 대시보드에 로그인할 이유(하지 않을 것입니다)
처음 토요일 오후의 빛이 지난 후 스택은 썩습니다. macOS를 업그레이드하면 익스포터가 깨집니다. Grafana가 비밀번호 재설정을 요청합니다. 3주 동안 잊어버리고, 그것을 만든 바로 그 이상을 놓칩니다.
메뉴 바 앱은 방해가 되지 않습니다. 시계를 흘끗 볼 때마다 속도가 보입니다. macOS 대역폭 대시보드 워크플로는 방문할 것을 기억해야 하는 웹사이트가 아니라 일과에 내장됩니다.
단계별 설정
구체적으로, 15분 안에 대시보드를 함께 모으는 방법은 다음과 같습니다.
1단계: 메뉴 바 앱 설치
ova를 설치하세요. 약 3MB입니다. Applications에 끌어다 놓고, 실행하고, 네트워크 통계 읽기에 대한 요청된 권한을 허용하면 끝입니다. 즉시 약 1Hz로 샘플링을 시작하고 메뉴 바에 현재 속도를 보여줍니다.
2단계: 메뉴 바 디스플레이 구성
대부분의 메뉴 바 대역폭 도구는 무엇을 보여줄지 선택하게 합니다. 흔한 옵션:
- 현재 업/다운 속도(예:
↓ 2.1 MB/s ↑ 80 KB/s) - 지난 1분의 작은 스파크라인
- 활성일 때 켜지는 그저 아이콘
하나를 고르세요. 두 숫자 디스플레이가 가장 밀도가 높습니다. 스파크라인이 가장 "한눈에 볼 수 있습니다." 잘못된 답은 없습니다. 실제로 읽을 것을 고르세요.
3단계: 몇 개의 앱 고정
일부 모니터는 특정 앱을 "감시됨"으로 표시할 수 있게 합니다. 분석 뷰에서 먼저 나타납니다. 대부분의 사람에게 유용한 고정:
- 사는 브라우저(Chrome, Safari, Arc, Firefox)
- 작업 채팅(Slack, Discord, Teams)
- 개발 도구(Docker, VS Code, 모바일을 한다면 시뮬레이터)
- 클라우드 동기화(Dropbox, iCloud의
cloudd, Google Drive)
일주일 안에 실제로 어떤 앱을 고정하고 싶은지, 어떤 것이 낙관적이었는지 알게 됩니다.
4단계: 기록 작동 검증
최근 계층의 전체 요점은 거슬러 스크럽할 수 있는 것입니다. 팝오버나 창을 열고, "지난 24시간"과 같은 시간 범위를 고르고, 정점과 골이 있는 차트가 보이는지 확인하세요. 그렇지 않다면 앱은 데이터를 보존하지 않는 것이고, 부풀려진 nettop을 가진 것입니다. 다른 도구로 넘어가세요.
5단계: 월간 내보내기 일정
매월 1일에 캘린더 알림을 추가하세요. "대역폭 데이터 내보내기, 히트맵 노트북 실행." 한 달에 한 번 5분. 그것이 보관 계층입니다.
무엇을 볼 것인가
대시보드를 실행한 후, 정기적인 빈도로 확인할 만한 질문은 다음과 같습니다.
매일 시선
분석 뷰를 여세요. 의외의 것을 스캔하세요. Chrome이 상위에 있다면 정상입니다. 근무 시간 동안 cloudd가 상위에 있다면 왜인지 물어보세요(아마 iCloud가 따라잡는 것, 어쩌면 사진이 업로드되는 것). 인식하지 못하는 것이 상위에 있다면 조사하세요.
매주
일별 합계를 보세요. 일관적인가요? 단일 날의 5배 급증은 다른 일을 했거나(게임 다운로드, 큰 통화) 자동으로 무언가가 실행되었음을 의미합니다(원격 대상으로의 Time Machine, 시스템 업데이트).
매월
히트맵을 실행하세요. 월별 상위 앱. 이전 달과 비교하세요. 시간에 걸친 추세는 대역폭이 증가하고 있는지 알려줍니다. 보통 의문을 던지는 것을 잊은 새 앱 때문입니다.
ova 작동 모습 보기
한눈에 볼 수 있는 메뉴 바 대역폭 모니터 — 로컬, 서명, 약 3MB.
작업한 예
한 사용자 설정의 실제 패턴:
- 라이브 속도: 메뉴 바의 작은 스파크라인. 시선에 0의 시간이 듭니다.
- 앱별 뷰: ova 팝오버를 여는 단축키에 바인딩됨.
- 주간 점검: 매주 금요일 오후, 사용자는 7일 뷰를 열고 상위 세 개 앱을 기록합니다. 이전 금요일과 다른 상위 세 개의 어떤 것이든 왜인지 설명하는 일기의 한 문장을 받습니다.
- 월간 내보내기: launchd 작업이 매월 1일에 CSV를 덤프합니다. 작은 Observable 노트북이 히트맵과 앱별 상위 10 목록을 그립니다. 총 시간: 한 달에 한 번 90초.
그것이 전체 시스템입니다. Prometheus도, Grafana도, 리버스 프록시도, 인증도, 포트도, 회전할 로그도 없습니다. "대시보드"는 메뉴 바와 한 달에 한 번 열리는 노트북입니다.
정말로 서버가 필요할 때
중앙화된 스택이 옳은 경우가 있습니다.
- 여러 Mac을 관리(소규모 팀, 가정, 빌드 컴퓨터의 플릿)
- Mac이 아닌 데이터와의 상관관계를 원함(라우터 로그, 스마트 홈 트래픽, 직장 VPN 사용량)
- 실시간 알림 필요("업로드가 5분 이상 100MB/s를 초과하면 호출")
이 경우는 운영 비용을 정당화합니다. 개인 Mac 한 대에는 그렇지 않습니다.
마무리
macOS 대역폭 대시보드 사용자가 실제로 열 것은 스택을 필요로 하지 않습니다. 항상 현재 속도를 보여주는 메뉴 바 앱, 무언가가 이상해 보일 때를 위한 앱별 분석, 드문 깊이 있는 다이빙을 위한 내보내기 경로가 필요합니다. 그것이 전부입니다.
간단한 버전을 원한다면, ova를 설치하세요. 약 3MB, macOS 14 이상, 약 1Hz로 샘플링, 모든 데이터는 컴퓨터의 ~/Library/Application Support/ova/에 머무르고, 계정 불필요, 평생 업데이트와 14일 환불이 있는 일회성 결제. 다운로드에서 대시보드까지 5분, compose 파일은 보이지 않음.