## 배경 트래픽 모니터링 3축(웹 RPS, 스트리밍 세션, DB/캐시 TPS) 점검 중 발견. DB/캐시 축은 "읽기 TPS와 쓰기 TPS를 분리해서 본다"가 기준인데, 현재는 이게 안 된다. ## 현재 상태 - `mysqld_exporter`는 `obs` 프로파일로 이미 구성돼 있고 실제로 동작 확인까지 됐다 (`monitoring/README.md:143-176`, #151, 2026-08-09 실측 확인). - 다만 그때 검증한 지표는 `innodb_os_log_fsyncs`·`Handler_commit`·`threads_running`·`innodb_row_lock_waits`·`buffer_pool_pages`뿐이다 (`monitoring/README.md:167-176`) — 전부 커밋 fsync 천장 실험을 뒷받침하려고 고른 지표들이고, **읽기/쓰기 커맨드별 TPS(`Com_select`/`Com_insert`/`Com_update`/`Com_delete` 또는 `Handler_read_*`/`Handler_write` 계열)는 이 검증 목록에 없다.** - `monitoring/grafana/dashboards/shadowfit-backend.json`에 `Com_select`/`Com_insert`/`commands_total` 관련 패널이 0건이다(grep 확인). - `monitoring/README.md:177-188` "한계·넣지 않은 것" 목록에도 이 갭은 명시돼 있지 않다 — 즉 의도적으로 뺀 게 아니라 그냥 다뤄진 적이 없다. ## 확인이 필요한 것 (미검증) - `mysqld_exporter`의 기본 컬렉터가 `Com_*`/`Handler_read_*` 류를 이미 노출하고 있는지 자체는 미검증 — exporter 자체는 노출할 가능성이 높지만(기본 컬렉터 범위), 이 레포에서 직접 스크레이프해서 값이 찍히는지 확인한 적은 없다. - 확인되면 대시보드에 읽기 TPS(`rate(mysql_global_status_commands_total{command=~"select"}[1m])`류)와 쓰기 TPS(`insert|update|delete` 합)를 분리한 패널을 추가하는 작업. ## 참고 - `monitoring/README.md:143-176`, `:177-188` - `monitoring/grafana/dashboards/shadowfit-backend.json` - #151 (mysqld_exporter 도입 이슈)