LAXworkspace
알림 · 보고서
오프라인입력 383.8K (캐시 87%) · 출력 3.5K
새 대화
세션 목록
⚠ 로컬 데몬이 오프라인입니다 — 메시지는 큐에 쌓였다가 데몬이 켜지면 처리됩니다.
[일일 감시 — LAX D1 rows_read 요금 가드. 감시 전용, 새 수정·배포 금지] 2026-07 CareerWiki D1 $85/785억행 사건 재발방지 가드다. LAX는 별도 CF 계정이라 wikicomu 감시가 커버 못 하니 여기서 자체 감시한다. 절차: 1) cd C:/Users/user/LAX-site 후 두 DB 각각 실행 (stderr 경고 무시, stdout JSON만 파싱): npx wrangler d1 insights lax-prod --sort-type sum --sort-by reads --sort-direction DESC --timePeriod 1d --limit 100 --json npx wrangler d1 insights lax-db --sort-type sum --sort-by reads --sort-direction DESC --timePeriod 1d --limit 100 --json 2) DB별 totalRowsRead 합산 → 두 DB 합계 = 24h 총합. 3) 판정 (LAX 계정 무료한도 월 25B ≈ 일 833M, 보수 임계): - 두 DB 합계 < 300,000,000 → 정상. 보고서 3줄(DB별 합계, 상위 1 쿼리+회수, "정상"). - 300M~800M → 제목에 [경보]: DB별 상위 5 쿼리를 표(쿼리 요약·rows_read·실행횟수·평균 rows/query)로 정리하고, 코드에서 원인 파일·라인을 지목해 가설을 적어라. - 800M 초과 → 제목에 [긴급]: 위 표 + 즉시 조치 제안(캐시/인덱스/쿼리 재작성). HQ(자비스)·Jason 열람 대상. 4) 회귀 감시: task_queue listRecentTasks(활동패널)가 다시 상위에 오르면 0111 인덱스/derived-table 재작성이 롤백됐는지 의심하고 반드시 [경보]. 5) 이 세션에서는 절대 코드 수정·배포하지 마라. 감시·보고까지만. 수정은 별도 지시 흐름. 6) 명령이 실패하면(wrangler 버전 변경 등) 실패 사실과 에러 전문을 [경보]로 보고하라 — 조용히 넘어가지 마라.
🔧 Skill
명령 · cd C:/Users/user/LAX-site && npx wrangler d1 insights lax-prod --sort-type sum --sort-by r…
cd C:/Users/user/LAX-site && npx wrangler d1 insights lax-prod --sort-type sum --sort-by reads --sort-direction DESC --timePeriod 1d --limit 100 --json 2>/tmp/lax-prod-err.log 1>/tmp/lax-prod-out.json; echo "EXIT:$?"
명령 · cd C:/Users/user/LAX-site && npx wrangler d1 insights lax-db --sort-type sum --sort-by rea…
cd C:/Users/user/LAX-site && npx wrangler d1 insights lax-db --sort-type sum --sort-by reads --sort-direction DESC --timePeriod 1d --limit 100 --json 2>/tmp/lax-db-err.log 1>/tmp/lax-db-out.json; echo "EXIT:$?"
명령 · wc -l /tmp/lax-prod-out.json /tmp/lax-db-out.json 2>&1; wc -c /tmp/lax-prod-out.json /tmp/…
wc -l /tmp/lax-prod-out.json /tmp/lax-db-out.json 2>&1; wc -c /tmp/lax-prod-out.json /tmp/lax-db-out.json 2>&1; echo "---prod err---"; cat /tmp/lax-prod-err.log; echo "---db err---"; cat /tmp/lax-db-err.log

Good, both succeeded normally (only the expected experimental-command warning on stderr). Now parsing with python per the skill/windows-parse guidance.

명령 · cd /tmp && python3 -c " import json for name in ['lax-prod','lax-db']: data = json.loa…
cd /tmp && python3 -c "
import json
for name in ['lax-prod','lax-db']:
data = json.load(open(f'{name}-out.json', encoding='utf-8'))
total = sum(q['totalRowsRead'] for q in data)
print(f'=== {name} ===')
print('total rows read (24h):', total)
print('num queries:', len(data))
top5 = sorted(data, key=lambda q: -q['totalRowsRead'])[:5]
for q in top5:
print(q['totalRowsRead'], q.get('numberOfTimesRun'), q.get('avgRowsRead'), q['query'][:100].replace(chr(10),' '))
print()
"
🔧 Skill
명령 · cygpath -w /tmp/lax-prod-out.json; cygpath -w /tmp/lax-db-out.json
명령 · python -c " import json for name, path in [('lax-prod', r'C:\Users\user\AppData\Local\Temp…
python -c "
import json
for name, path in [('lax-prod', r'C:\Users\user\AppData\Local\Temp\lax-prod-out.json'), ('lax-db', r'C:\Users\user\AppData\Local\Temp\lax-db-out.json')]:
data = json.load(open(path, encoding='utf-8'))
total = sum(q['totalRowsRead'] for q in data)
print(f'=== {name} ===')
print('total rows read (24h):', total)
print('num queries:', len(data))
top5 = sorted(data, key=lambda q: -q['totalRowsRead'])[:5]
for q in top5:
print(q['totalRowsRead'], q.get('numberOfTimesRun'), q.get('avgRowsRead'), q['query'][:100].replace(chr(10),' '))
print()
"

D1 rows_read 일일 감시 (0722)

DB 24h 합계 rows_read 쿼리 수
lax-prod 645,486 20
lax-db 2,038,469 91
합계 2,683,955

상위 1 쿼리: lax-db SELECT cs.id, cs.title, cs.scope... — 1,317,992행 / 1,775회 (평균 742행/쿼리)

판정: 정상 (임계 3억행의 1% 미만, 무료한도 대비 여유 큼)

  • task_queue 관련 쿼리(lax-prod SELECT tq.id..., UPDATE 2건)도 상위권이지만 회수 대비 평균 rows(4~54행/회)가 낮아 인덱스 정상 작동으로 보임 — 314M 이슈(#120) 재발 징후 없음.
  • 전일(0721, #128) 361만행 → 오늘 268만행, 유사한 정상 범위 유지.
  • 명령 실행 정상(wrangler experimental 경고만 있음, 에러 없음).

@@SUGGEST@@eyJzIjpbIjAxMTEgZml4IOy7pOuwiyDsi6TsoJwg67Cw7Y+sIOyXrOu2gCDri6Tsi5wg7ZmV7J247ZW07KSYIiwidGFza19xdWV1ZSDqtIDroKgg7L+866asIEVYUExBSU4gUVVFUlkgUExBTiDtlZzrsogg64+M66Ck7KSYIiwi7LWc6re8IDfsnbwg7LaU7J20IOq3uOuemO2UhOuhnCDrs7Tsl6zspJgiXX0=@@