GH GambleHub

분석 API 및 성능 지표

1) 왜 필요한가

API - 플랫폼 "순환계. "엄격한 지표 없이는 다음을 수행 할 수 없습니다

SLO와 SLA의 구현을 증명하고

대역폭과 쿼리 경제학을 관리합니다

분해 (p99 테일, 5xx 버스트) 를 신속하게 국소화하고

비즈니스 영향 최적화를 우선시하십시오.

목표: 공통 식별자 및 일관된 SLI를 사용하여 각 요청이 경계에서 DB로 추적되는 단일 관찰 가능성 모델.

2) 지표 분류

기술: RPS, 대기 시간 (p50/p95/p99), 오류율 (4xx/5xx), 채도 (CPU, 메모리, 파일 데스크), 대기열 시간.
제품: 성공적인 운영/분, 단계 변환 (총 200/), 요율 제한 점유율 (429), 배상, 사용자 세그먼트.
비용: 비용/요청 (CPU-ms + 이탈 + 데이터베이스 요청), 기능 비용/엔드 포인트, $/테넌트, $/1k 통화.

3) "황금 신호": RED 및 사용

RED (API의 경우):
  • 요청/초 (엔드 포인트/테넌트/플랜 별)
  • 오류-4xx/5xx/429 분수 및 절대.
  • 기간 - p50/p95/p99 엔드 투 엔드 및 단계별 (ingress → app → DB → 타사).
USE (리소스):
  • 활용 - CPU/IO/채널로드.
  • 포화 - 대기열 (런큐, 백 로그, DB 대기).
  • 오류-드라이버 오류/타임 아웃.

4) 기본 정의 및 공식

가용성 SLI: '1- (5xx + 게이트웨이 _ 타임 아웃 )/all _ 요청'.
성공 SLI: '2xx/( all-429 _ shadow)' (그림자 잠금 제외).
Apdex: '(| T 계정 T | + 0. 5· | T 계정 4T | )/all ', 여기서' T '는 대상 "좋은" 임계 값입니다.
테일 증폭: 'p99 _ total-max (p99 _ stage _ i)' -대기열/구성의 기여.
99에서 오류 예산 (월) 9%: '예산 = 0. 1% 기간 _ time '.

대기 시간 히스토그램의 권장 백분위 수 쓰레기통: '[5ms, 10ms, 25ms, 50ms, 100ms, 250ms, 500ms, 1, 2. 5s, 5s] '.

5) SLI/SLO 및 연소율에 의한 경고

SLO (공개 API) 예:
  • 가용성: 99 이상. 9 %/30 일.
  • p95 대기 시간 'GET/지갑/밸런스' <150 ms; 'POST/payment' <400 ms.
  • 오류 '5xx' <0. 2%. 전체 트래픽의 '429' (고체) <1%.
번 레이트 경고 (2 창):
  • 1 시간 예산의 2% 또는 6 시간 동안 5% → 엔지니어에게 페이지.
  • 하루 10% → RCA 우선 순위.

6) 지표 세트 (수집 할 내용은 필수입니다)

주변 (게이트웨이/WAF):
  • 'http _ 요청 _ total {경로, 방법, 상태, 세입자, 계획}'
  • (PHP 3 = 3.0.6, PHP 4)
  • 'retries _ total {reason}', 'rate _ limited _ total {key, policy}'
  • 바디 크기: '요청 _ 바이트', '응답 _ 바이트'
첨부 파일을 찾으십시오:
  • (PHP 3 = 3.0.6, PHP 4)
  • 'cash _ ops _ total {op}', 캐시 히트 레이트 외부 통화: 'outbound _ calls _ total {provider, op}', 대기 시간/오류/큐 타임 아웃/풀: 길이/지연, 활성 자원 사용 작업자: CPU, RSS, FD, GC 일시 중지

비즈니스 레이블: 'tenit _ id', 'region', 'kyc _ level', 'plan', 'feature _ flag'.

7) 추적 및 상관 관계 (OpenTelemetry)

모든 홉에서 W3C 추적 컨텍스트 ('traceparent', 'tracestate').
단계별로 스팬: intress → autZ → 앱 핸들러 → DB/Redis → PSP/external.
속성/레이블: 'http. 경로 ',' 최종 사용자. id ',' 세입자. id ',' demempotency. 열쇠 ',' 위험. 점수 '.
Exemplars: 특정 추적 ID가있는 대기 시간/오류 그래프의 준회원 포인트.

샘플링:
  • "정상적인" 경로의 헤드 기반 1-10%
  • 꼬리를위한 꼬리 기반 (느리게/잘못 복용),
  • 최고점과 사건에 적응합니다.
  • 수하물: 각 이벤트를 표시하지 않고 '테넌트 '/' 위험' 을 삭감합니다.

8) 로그: 구조 및 개인 정보 보호

구조화 된 JSON; 필요한 필드는 'ts', 'trace _ id', 'span _ id', 'route', 'state', 'latency _ ms', 'tenit', 'user _ id _ hash' 입니다.
PII 정책: 마스크 PAN/PII; 비밀/토큰을 거부합니다.
로그 샘플링: 4xx/5xx/429 및 "긴" 요청이 높습니다.

9) 대시 보드 맵 (최소 세트)

1. 추출 요약: RPS, 가용성, 오류율, p95/p99 대기 시간, 429 주, 연소율 예산.
2. 경로당: RPS/오류/꼬리에 의한 최고 내부; 버전의 비교 (카나리아).
3. 임차인/계획: 부하/비용/오류 리더.
4. 의존성 건강: DB, 캐시, PSP/외부-대기 시간, 오류, 채도.
5. 용량: CPU/RAM/FD, 대기열, 연결 풀, GC, 컨테이너 제한.
6. 보안/남용: 401/403, 429/정치인, 지리/ASN 슬라이스, 트레이 스파이크.

10) 경고 (임계 값 및 추세)

'오류 _ rate {경로}'> 2% (5 분) 및 RPS> N → 호출기.
'p99 _ latency {critical}'> 목표 임계 값 (10 분).
'burn _ rate' 예산 (§ 5 참조).
DB '타임 아웃 '/' 교착 상태' 또는 성장 '큐 _ time'> X ms.
외부 공급자: 'outbound _ 5xx _ rate {provider}'> 1% + SLO 의존적.

11) 용량 계획 및 성능

리틀의 법칙: 'L = λ· W' (평균 큐 길이 = 트래픽 × 평균 시간).
대상 p95가 분해됩니다: 'intress + app + DB + external + 큐'.
동시성 예산: 최대 동시 쓰기 작업 수를 수정합니다.
예산 측정법: "요청 당 CPU ms"; 우리는 최고점까지 30-50% 의 마진을 유지합니다.
요율 제한과의 상호 작용: 할당량 "한도" 에서의 요청 비율 및 대기 시간에 미치는 영향 측정.

12) 부하 및 합성 점검

유형: 기본 하중, 버스트 × 10, "단계", 장기 고원, 스트레스/혼돈 (노드 살해, 네트워크 지연), 중요한 클라이언트 시나리오에 따른 합성.
프로파일 링: CPU/alloc/lock-contrtion, N + 1 (SQL/HTT), 느린 코드.
회귀 제어: 릴리스 전/후 (카나리아) p95/p99/오류 비교.

13) 비용 관찰

비용 측정 항목: 'cpu _ ms', 'egress _ bytes', 'db _ calls', '1k 요청 당 $'.
엔드 포인트/테넌트/기능 할당: 오케 스트레이터 + 로드 메트릭스의 청구 태그 → API 단위 경제 보고서.
최적화 알고리즘: '트래픽 × 비용 × (p95- 대상)' 제품별로 TOP 엔드 포인트를 선택하십시오.

14) 임차인 당 분석 및 "정의"

모든 키 메트릭에는 '테넌트 _ id/플랜' 이라는 레이블이 붙어 있습니다.
p99 꼬리의 "무거운" 고객 공유; 개별 제한/할당량 및 재 트레이 예산.
공정한 전단: 과부하가 걸리면 "높은" 세입자의 점유율을 줄입니다.

15) iGaming/Finance의 세부 사항

(PHP 3 = 3.0.6, PHP 4)

"돈" 경로 용 SLI ('POST/예금', 'POST/인출'): 낮은 대상 p95, 별도의 오류 예산.
TTW (Time-to-Wallet) 메트릭, 사기 방지 자동 잠금 장치 공유, 지불 전환.
감사: 재무 조치 및 사기 방지 결정에 대한 불변의 로그.

16) 계측: 구현 관행

명명 메트릭 (예):
  • 'api _ http _ 요청 _ total' (카운터)
  • 'api _ http _ 요청 _ 지속 시간 _ 초' (히스토그램)
  • (PHP 3 = 3.0.6, PHP 4)
  • 'api _ rate _ limited _ total', 'api _ rish _ total {reason}'

확인: '경로', '방법', '상태 _ 클래스', '테넌트', '지역', '버전', '카나리아', '제공자', 'db _ table'.
카디널리티: 자유 값 (user _ id) 을 피하고 "버킷 "/해시를 사용하십시오.
Exemplars: histograms p95/p99 → 추적을 클릭하십시오.

17) 안티 패턴

백분위 수 대신 매체; 상태 클래스로 나누지 않습니다.
일관성이없는 '경로 '/' 경로' (동적 ID는 라벨에 "바느질" 됨).
카디널리티가 높은 레이블 (원시 사용자 _ id, IP).
외부 제공 업체 (PSP/타사) 에 대한 별도의 회계가 없습니다.
"노이즈" (단일 창 및 하나의 임계 값) 에 의한 경고.
대기열 시간을 제외한 p99 (실제 열화를 숨깁니다).

18) Prod 준비 점검표

  • SLI/SLO 및 오류 예산이 정의되어 비즈니스에 동의했습니다.
  • 단일 대기 시간 히스토그램 및 상태 클래스; 대시 보드에서 p95/p99.
  • 전체 추적 (OTel), 로그/메트릭/추적 상관 관계.
  • 번 레이트 경고 (2 창), p99 임계 값 및 오류율.
  • 임차인/계획 당 섹션 및 비용 보고서.
  • 대시 보드: Exec, Per-Route, 의존성, 용량, 학대.
  • 로드 시나리오 (버스트/고원/스트레스), 프로파일 링.
  • Jitter Retrai Policies; 배신이 RPS에 미치는 영향을 설명합니다.
  • 파트너 및 공공 고객을위한 SLA/SLO 문서.
  • 유지/로그 마스킹, PII 보호.

19) TL; DR

SLI/SLO 및 오류 예산을 중심으로 관찰 가능성을 구축하고, RED/USE를 측정하고, p95/p99 및 대기열 시간으로 대기 시간 히스토그램을 수집하고, 주변에서 DB로 단일 미량 ID를 분배하고, 꼬리/적응 샘플링을 사용하고, 테넌트/비용 및 2 창 연소 비율 경고. 대기열 법률에 따른 용량 계획 및 비즈니스 지표에 미치는 영향; 안티 패턴-백분위 수, 높은 카디널리티 및 설명되지 않은 외부 종속성 대신 매체.

Contact

문의하기

질문이나 지원이 필요하시면 언제든지 연락하십시오.우리는 항상 도울 준비가 되어 있습니다!

Telegram
@Gamble_GC
통합 시작

Email — 필수. Telegram 또는 WhatsApp — 선택 사항.

이름 선택 사항
Email 선택 사항
제목 선택 사항
메시지 선택 사항
Telegram 선택 사항
@
Telegram을 입력하시면 Email과 함께 Telegram에서도 답변드립니다.
WhatsApp 선택 사항
형식: +국가 코드 + 번호 (예: +82XXXXXXXXX).

버튼을 클릭하면 데이터 처리에 동의하는 것으로 간주됩니다.