API 및 인프라 모니터링 도구
1) 원칙: 목표에서 도구까지
SLO 우선: 제품 목적 (로그인, 예금, 요율) 에 맞는 도구를 선택하고 사용자 정의하십시오.
공개 표준: OpenTelemetry (트레일/메트릭/로그), Prometheus 박람회 형식, Loki JSON 로그.
단일 컨텍스트: 로그 및 메트릭의 'trace _ id '/' span _ id'; 링크 "대시 보드 → 추적 → 로그".
비용 인식: 사전에 메트릭 카디널리티, TTL 로그, 샘플링 트레일.
2) 메트릭: 컬렉션, 스토리지, 시각화
게: 프로 메테우스/에이전트-밀레 미니 에이전트 (VictoriaMetrics Agent, Grafana Agent, OpenTelemetry Collector).
스토리지 (TSDB): Prometheus (단일), Thanos/Cortex/Mimir (스케일 아웃), VictoriaMetrics (CPU/RAM 절약).
시각화: "유리 패널" 로 Grafana.
API (RED) 및 인프라 (USE) 에 대해 측정해야 할 사항:- RED: 'rate (요청)', 'orm _ ratio', 'latency p95/p99' 경로 ',' 메소드 ',' 제공자 '.
- 사용: CPU/Mem, 파일 디스크립터, 연결 풀, 대기열 지연, GC 일시 중지.
- k8: kube-state-metrics, 노드-내보내기, cAdvisor, 수입/게이트웨이 내보내기.
- 확장자: postgres _ producter, mysql _ extrater, redis _ extrater, kafka _ extrater, rabbitmq _ extrater.
- 서비스 매쉬: 특사 메트릭, istio/Linkerd 대시 보드.
- PSP/вне자체: 맞춤형 수출 업체 (웹 후크 성공, PSP 성공률, 콜백 대기 시간).
promql
예금 성공률 (SLI)
합계 (요율 (ig _ paymes _ quires _ total {route = "/payment/deposition ", 상태 = ~" 2 ".} [5m])))
/
합계 (요율 (ig _ paymes _ quires _ total {route = "/payment/deposit "} [5m])))
p95 대기 시간 API 히스토그램 _ quantile (0. (le, route) 에 의하여 95, sum (rate (http _ 요청 _ 지속 시간 _ secords _ bucket [5m]))
(PHP 3 = 3.0.6, PHP 4)3) 로그: 검색, 상관 관계, 불변성
스택: OpenSearch/Elastic검색 + Beats/Vector/Fluent Bit 또는 Grafana Loki (저장하기에 저렴하고 스트림 로그).
형식: 표준 필드 ts, 레벨, 서비스, env, trace _ id, user _ pid, 경로, 상태, 대기 시간 _ ms '가있는 JSON.
실습: PII 마스킹, WORM 감사 버킷, TTL/ILM 정책, 'env/region/brand' 파티션.
4) 추적: 밀리 초가 손실되는 곳
계정: OpenTelemetry SDK/Collector → Jaeger/Tempo/Honeycomb/New Relic Traces.
샘플링 정책: 100% 오류, "느린" 요청, 1-5% 성공.
계정: '제공자', 'psp', 'risk _ decision', 'borness _ id', 'market', 'ws _ table _ id'.
토론을위한 빠른 레시피: 문제 경로의 빨간색 그래프 SLO → 추적 → PSP/게임 제공 업체의 "두꺼운" 스팬 → 웹 후크 로그.
5) APM 플랫폼: 올인원
상업용 솔루션 (Datadog, New Relic, Dynatrace, Grafana Cloud) 은 APM, 통나무, 흔적, 합성, RUM을 닫습니다.
장점: 구현 속도, 상자에서 상관 관계. 단점: 비용/공급 업체 잠금.
하이브리드: OSS의 핵심 (Prometheus + Grafana + Tempo + Loki), 중요한 흐름에 대한 상용 모듈로 "완료" 합성/경고.
6) 합성 및 RUM: "외부" 및 "플레이어의 눈을 통한"
확인, Grafana 합성 모니터링, k6 클라우드, 업 트렌드, Pdel, Catchpoint, ThousandEyes.
스크립트: 로그인 → 증착 (샌드 박스) → 게임 출시 → 웹 후크 확인.
지오: EU/LatAm/MEA/APAC, 모바일 네트워크, ASN 믹스.
RUM: Web-SDK (TTFB/LCP/CLS), 모바일 SDK; 국가/네트워크/장치 별 세분화.
7) Kubernetes 모니터링 표면
제어 평면: etcd, API 서버 (apiserver _ 요청 _ total, 대기 시간), 스케줄러/컨트롤러 관리자.
데이터 평면: kubelet, CNI, 진입/게이트웨이; 'PodDisruptionBudget' 달력
Autoscale: HPA/VPA/Cluster Autoscaler 메트릭 및 이벤트; 따뜻한 수영장.
네트워크 정책: 이벤트 중단/거부, DNA 대기 시간.
8) 데이터베이스, 대기열, 캐시
Postgres/MySQL: 복제 지연, 교착 상태, 팽만감, WAL, 체크 포인트 지속 시간, 타임 아웃.
Kafka/RabbitMQ: 소비자 지연, 재조정, 대기열 깊이, 재배송.
Redis: 이벤트, 차단 된 클라이언트, 대기 시간 백분위 수, 복제 지연.
PITR/백업: 백업 운영자 작업 + 시간 복원 대시 보드.
9) 네트워크, CNC, WAF, 게임 제공 업체 및 PSP
CNC/Edge: 히트 비율, 지역별 TTFB, 쉴드 히트, "미스 스톰".
WAF/봇 관리자: 로그인/예금에 대한 공유 도전 과제/블록, ASN/국가, FPR.
게임 제공 업체: 테이블/슬롯 시작 시간, 스튜디오 별 실패/타임 아웃.
PSP: 방법/국가/BIN, 3DS/AVS 오류 코드, 웹 후크 성공 및 지연에 의한 성공률/대기 시간.
10) 경고 및 의무
라우팅: Alertmanner → PagerDuty/Opsgenie/Slack.
규칙: 증상 (SLO) + 인과 (리소스).
노이즈 방지: 그룹화, 체인 알림 억제, 릴리스를위한 침묵의 창.
CD의 SLO 게이트: 위반시 자동 일시 정지/롤백 (Argo Rollout/Flagger AnalysisRun).
경고의 예 (단순화):- 'logine _ success _ ratio <99. 10m의 경우 9%
- 'p95/결제/예금> 0. 10m를위한 4s '
- (PHP 3 = 3.0.6, PHP 4) 5m에 85
- 'kafka _ saver _ lag> 30'
- 'cdn _ hit _ ratio drop> 10m (지역당) 에서 15% 감소
11) 정말 도움이되는 대시 보드
예금 흐름: 깔때기, p95/p99, PSP/BIN/국가 오류, 웹 후크 지연.
라이브 게임/WS: 연결, RTT, 재 종료/재 연결, 공급자 별 오류.
API 상태: 경로, 포화, 상단 느린 엔드 포인트에 의한 RED
DR 패널: 복제 지연, WAL 배송, DR 지역의 합성 로그인/예금.
보안: WAF, 봇 점수, 401/403 이상, 서명 된 웹 후크.
12) 원격 측정 비용 관리
메트릭의 카디널리티: 레이블에 'user _ id', '경로' 및 '제공자' 에 대한 제한을 포함하지 마십시오.
다운 샘플링 및 보존 수업 (핫 7-14 일, 따뜻한 30-90, 콜드 아카이브).
로그: 이벤트 점프-샘플링/데드 업 가능; 스택 트레이스를 별도로 저장하십
추적: "고가의" 경로를 따라 동적 샘플링 (지불/결론).
13) 모니터링의 보안 및 개인 정보
에이전트에서 수집가까지의 mTLS; 정지 암호화.
'user _ pid' 의 의사 화, 로그의 전자 메일/전화/문서 금지.
감사를위한 RBAC/MFA, WORM; 타사 모니터링 제공 업체가있는 DPA.
14) CI/CD 및 자동 롤백과의 통합
CD 분석을위한 무도회 지표로 SLI에 노출됩니다.
메트릭/로그/추적에서 릴리스 레이블 ('버전', '롤아웃 _ 단계').
자동 카나리아 게이트: 하강은 녹색 SLO로만 계속됩니다.
15) 빠른 시작 스택 (참조)
수집/전송: OTEL Collector + Prometheus/VM Agent + Fluent Bit.
스토리지: VictoriaMetrics/Thanos (메트릭), Loki/OpenSearch (로그), Tempo/Jaeger (트레일).
시각화: Grafana + 기성품 대시 보드 k8/Envoy/Postgres.
& RUM 합성: Checkly/k6 + Grafana RUM (또는 상업적 등가).
경고: Alertmanner → PagerDuty/Slack; 참고 문헌의 런북.
16) 구현 점검표 (prod-ready)
- 로그인/예금/입찰/출력에 대해 정의 된 SLO/SLI.
- RED/USE + 비즈니스 SLI 지표; 단일 레이블 온톨로지.
- JSON은 감사를 위해 'trace _ id', PII 마스킹, WORM으로 로그합니다.
- OpenTelemetry 엔드 투 엔드; 100% 오류 샘플링.
- 주요 지역의 합성 + RUM 판매.
- 대시 보드 "흐름 예금", "WS", "API 건강", "DR".
- 경고: SLO 증상 + 자원 원인; 소음 방지.
- SLO 게이트는 CD에 연결됩니다. 자동 롤백.
- 비용 계획: 보존/샘플링/카디널리티.
- DPA/보안: mSL, RBAC, 로그 프라이버시.
요약 다시 시작
강력한 모니터링은 "아름다운 그래프" 세트가 아니라 일관된 시스템: RED/USE 메트릭, 'trace _ id' 로그, OpenTelemetry 흔적, 합성 및 RUM, CI/CD에 내장 된 대시 보드, 경고 및 SLO 게이트. 개방형 표준을 중심으로 스택을 구축하고 원격 측정 비용을 제어하고 라벨 온톨로지를 표준화하십시오. 그러면 모든 API 및 인프라 문제가 사전에 표시되고 플레이어가 발견하기 전에 수리됩니다.
