이제 linux를 만질 일도 없네요. prometheus / grafana 작업
코드작성은 커녕 원격 oracle cloud 인스턴스에 ssh 접속, 파일/디렉토리 권한, 프로그램 설치, 스케줄링 작업, 바이너리빌드 배포 테스트까지 codex가 다 했네요. 기존의 웹프론트, 백엔드서버까지 다 감시프로그램에 맞춰서 다시 코드리팩터링해서 빌드 배포 정합성 검사까지 싹 다하네요. prometheus, grafana 설치가 제일 오래 걸렸네요.
총시간 딱 30분

아래는 codex가 작성한 작업 내역입니다
오늘 재미있는 홈서버 실험을 했다.
갤럭시 S20+를 Android Termux 서버로 쓰고, Cloudflare Tunnel로 외부에 WebSocket 백엔드를 열어둔 상태였다.
구조는 대략 이렇다.
Browser
-> Cloudflare Pages / CDN
-> Cloudflare Tunnel
-> Galaxy S20+ Termux Rust backend
문제는 실시간 WebSocket 게임에서 가끔 jitter가 보인다는 점이었다.
그래서 “감으로 느끼는 jitter”가 아니라, 외부에서 계속 측정하고 Grafana로 볼 수 있는 관측 시스템을 만들었다.
이번에 만든 구조:
OCI San Jose VM
-> WebSocket probe
-> Prometheus
-> Grafana
Probe target:
wss://galaxy-ws.cording.ai/ws
S20+ metrics:
https://galaxy-ws.cording.ai/metrics
30분 동안 한 작업:
1. OCI Ubuntu 인스턴스에 SSH 접속
2. WebSocket probe 코드 작성
3. probe가 1초마다 WebSocket ping/pong RTT 측정
4. backend binary snapshot을 파싱해서 tick gap, snapshot gap, jitter 측정
5. Python probe를 systemd 서비스로 등록
6. Prometheus 설치 및 scrape 설정
7. Grafana 설치 및 dashboard provisioning
8. Galaxy S20+ Rust backend에 /metrics 엔드포인트 추가
9. battery %, battery temp, thermal max, memory, backend RSS, client count 노출
10. Cloudflare Tunnel 경유 metrics scrape 검증
11. Grafana dashboard에서 시각화 확인
12. 웹앱 화면에 raw metrics 링크 버튼 추가
관측 가능한 값들:
- Cloudflare Tunnel WebSocket RTT
- WebSocket snapshot jitter
- server tick drift
- reconnect count
- snapshot age
- Galaxy S20+ backend clients
- backend RSS memory
- S20+ battery percentage
- S20+ battery temperature
- S20+ thermal max
- available memory
실제로 측정된 예:
OCI San Jose -> Cloudflare Tunnel WSS RTT: 약 190ms
snapshot jitter p95 abs dev: 약 36ms
Galaxy S20+ battery temp: 약 25.7 C
backend RSS: 약 7MB
cloudflared RSS: 약 55MB
인상적이었던 점은 Rust backend 자체는 매우 가볍고, 오히려 Cloudflare Tunnel과 네트워크 경로가 실시간성에 더 큰 영향을 준다는 점이었다.
그리고 /metrics 페이지는 사람이 보기 좋은 화면이 아니라 Prometheus가 읽는 원시 텍스트 포맷이다.
galaxy_backend_clients 2
galaxy_s20_battery_temp_celsius 25.7
galaxy_s20_thermal_max_celsius 30.0
이런 식으로 노출하고, 실제 시각화는 Grafana에서 한다.
결론:
낡은 갤럭시폰도 Termux + Rust + Cloudflare Tunnel 조합이면 꽤 쓸 만한 홈서버가 된다.
다만 실시간 WebSocket 게임은 서버 성능보다 네트워크 jitter와 tunnel 특성이 더 중요하다.
그래서 이런 관측 시스템을 먼저 붙여두면, “느낌상 버벅인다”가 아니라 “RTT가 얼마고, jitter가 얼마고, 서버 온도와 부하는 어떤지” 숫자로 볼 수 있다.
작은 실험이지만, 홈서버 운영이 갑자기 진짜 인프라 프로젝트처럼 느껴졌다.