신호 및 메트릭 분포
(섹션: 생태계 및 네트워크)
1) 목적과 지역
신호 및 메트릭 배포는 운영자, 콘텐츠 제공 업체, 지불/CCM 서비스, 교량, 네트워크 노드, 계열사 및 SRE/BI/준수 팀. 목표:- 통합 원격 측정 언어 및 데이터 계약.
- 관리 된 QoS 채널: 중요 신호의 우선 순위.
- 투명한 SLI/SLO 및 예측 가능한 경고.
- 개인 정보 보호, 격리 및 예산 절감 지표.
2) 신호 분류법
1. 비즈니스 이벤트: 온 보딩, 예금/결제, 게임 이벤트, 귀속.
2. 기술 지표: 대기 시간/처리량/오류 코드, 대기열, CPU/RAM/IO 사용.
3. 로그: 작업 및 오류에 대한 구조화 된 항목.
4. 추적: 쿼리/주제 범위, 홉 대 홉 상관 관계.
5. 건강 상태: 합성 프로브, 준비/활력, 심장 박동 노드.
6. 위험/준수 신호: KYC/KYB/AML 적중, 제재 사건.
각 클래스에는 자체 중요 수준 및 스토리지/전달 정책이 있습니다.
3) 배포 아키텍처 (참조)
에지 수집기 (SDK/에이전트) → Ingress (TH/OTLP/gRPC/QUIC) → 버스 (Kafka/Pulsar) → 프로세서 (스트림 작업) → 스토리지 (메트릭을위한 TSDB, 오브젝트/열-로그/이벤트, 추적자) → 쇼케이스/디쉬 보드/경고.
멀티 테넌시: 키의 네임 스페이스/테넌트 -id, 개별 할당량/제한/ACL.
QoS 세분화: 중요 (P0), 중요 (P1), 배경 (P2).
탈퇴: 주제 구독 및 구체화 된 견해를 통해 가입자 (Ops/BI/Third-party).
4) 계약 및 체계 (이벤트/메트릭/트레일)
4. 1 개의 이벤트 (단순화, YAML)
yaml event:
id: uuid kind: business ops risk ts: timestamp # ISO8601 tenant: string # org_id/namespace source: string # service/peer-id trace_id: string type: string # deposit. created payout. failed probe. ok...
attrs: object # semantic fields (no PII)
severity: info warn error critical qos: P0 P1 P2
4. 2 메트릭 (OpenMetrics/OTLP)
안정적인 라벨이있는 게이지/카운터/히스토그램 (제한된 카디널리티).
식별자: 'metric _ name {service, region, Tennent, version, route}'.
코드에서 p99 대신 대기 시간/치수에 대한 히스토그램.
4. 3 트레일
필요한 필드는 'trace _ id', 'span _ id', 'parent _ id', 'service', 'peer', 'route', 'qos' 입니다.
도메인 (소비자/생산자) 과 네트워크 홉 (릴레이/브리지) 간의 연결
5) QoS 및 우선 순위
P0 (중요): SLI 지불/지불, 브리지/노드 상태, 연소 율 SLO → 엄격한 배송 (ack, retries, demempotency), 최소 타임 아웃.
P1 (중요): 제품 이벤트/키 메트릭 → SLO 내에서의 배송 보장.
P2 (배경): 자세한 로그, 디버깅 → 최선의 노력으로 과부하시 떨어질 수 있습니다.
정치인: 'dedempotency _ key' 에 의한 다른 대기열, 생산자 할당량, 역압, 요율 제한.
6) 카디널리티 및 지표 예산
규칙 6 레이블: 값의 고정 사전 인 메트릭 당 6 개 이하의 키.
카디널리티는 10k 시계열/메트릭/테넌트입니다.
샘플링: 흔적을위한 헤드/테일 기반; 다운 샘플링 10s → 1m → 5m → 1h 메트릭.
쿼타: 텐트 당 및 QoS 클래스 당 포인트/초 및 바이트/초의 한계.
라이터 체계: "폭발" 레이블 (id, 이메일, ip 등) 이있는 메트릭을 거부합니다.
7) 수집 및 전달: 푸시 대 풀
푸시 (OTLP/StatsD/HTT): 유연성, 모바일/엣지 클라이언트, P0 채널.
풀 (Prometheus): 내부 인프라, 예측 가능한 대상.
하이브리드: 수출 업체 → 게이트웨이 → TSDB; 지역에 대한 연합 스크랩.
전송: QUIC/HT/2, 압축, 버칭, TLS/mTLS, 지터가있는 retrai.
8) SLI/SLO 및 경고
8. 기본 SLI 1 개
가용성% 엔드 포인트/게이트웨이,
중요한 경로에서 대기 시간 p50/p95/p99,
오류율 (5xx/타임 아웃/중단),
버스에 의한 배송 지연, 대기열 깊이,
상점 창문의 신선도 (가장 중요한 → 지연을 제공합니다).
8. SLO 예 2 개
P0 파이프 라인: 가용성 95%, p99 대기 시간
P1: 가용성 9%, 신선도 p95 약 3 분.
P2: 신선도 p95
8. 3 번 연소 경고 (예)
2 시간 창: '오류 _ 예산 _ 연소 보통 2 ×' → 페이지.
6 시간 창: '오류 _ 예산 _ 연소 느낌 1 ×' → 페이지/에스컬레이션.
'queu _ lag' 및 'drop _ rate' P0과 결합하십시오.
9) 금고 및 보류
TSDB 지표: 고주파-7-14 일; 집계-6-12 개월
이벤트/로그: 핫 스토리지 7-30 일, 차가운 (객체) 6-24 개월.
트레일: 1-10% 샘플링; "느린/잘못된" 스팬 저장 (꼬리 기반).
PII 및 데이터 주제 요청에 대한 삭제/개정 정책.
10) 개인 정보 보호, 보안 및 격리
PII 최소화: 필드의 토큰 화/가명 화, 측정 항목의 "원시" 식별자 금지.
mSL/이벤트 서명, 프로듀서 키 고정.
주제/서비스/테넌트에 대한 ACL/ABAC, 쓰기/읽기를위한 별도의 키.
세입자 샌드 박싱: 세입자 당 논리/물리적 분리, 한계 및 속도 제한.
감사 흔적: 구성 요소에 대한 액세스/변경 로그가 변경되지 않습니다.
11) 처리 스트림 (스트림 작업)
Enrich: 정규화, 지리/버전/트래픽 클래스.
집계: 창 10/1m/5m, 히스토그램, 양자 스케치.
탐지: 이상 (EWMA/ESD), 분포 드리프트, 대기열 버스트.
경로: 팬 아웃, 쇼케이스/경고/웹 후크 파트너.
가드: "빨간색 버튼" -소스/주제별 스로틀 링/킬 스위치.
12) 대시 보드 (참조 레이아웃)
Ops Core (시간/실시간): p95 대기 시간, 오류율, 배송 지연, 대기열 깊이, 성공률 섭취.
파이프 라인 건강: 파이프 라인 당 신선도, 낙하 률, 역압, 연소 율 SLO.
임차인 사용: 행/초, 바이트/초, 카디널리티, 상단 레이블.
보안/규정 준수: mSL 상태, 만료 키, 액세스, PII 개정.
비즈니스 렌즈: 기술 지표 옆에 전환/지불/브리지 SLI.
13) 설정 예
QoS 클래스 및 한계 (YAML)
yaml telemetry:
qos:
P0:
topics: [payout. sli, bridge. finality, gateway. availability]
delivery: guaranteed retry:
attempts: 3 backoff_ms: [100, 400, 800]
max_queue_lag_ms: 2000
P1:
topics: [product. events, api. metrics]
delivery: at-least-once sampling: 1. 0
P2:
topics: [debug. logs, verbose. traces]
delivery: best-effort sampling: 0. 1 quotas:
tenant_default:
metrics_points_per_sec: 50_000 logs_mb_per_hour: 500 traces_spans_sampled_pct: 5
메트릭 라벨 (정치)
yaml metrics_policy:
allowed_labels: [service, route, code, region, tenant, version]
forbidden_labels: [user_id, email, ip, session_id]
max_label_value_count: 1000
연소율 경고
yaml alerts:
- name: "p0_error_burn_2h"
expr: burn_rate_p0_2h > 2 action: [page_oncall, open_incident]
- name: "queue_lag_p0"
expr: queue_lag_ms_p95 > 2000 action: [page_oncall]
14) 데이터 스키마 및 쿼리
메트릭 레지스터 (디렉토리)
sql
CREATE TABLE metric_catalog(
name TEXT PRIMARY KEY,
unit TEXT, description TEXT,
labels JSONB, owner TEXT, qos TEXT, sla JSONB
);
대기열 및 지연
sql
SELECT topic,
PERCENTILE_CONT(0. 95) WITHIN GROUP (ORDER BY lag_ms) AS lag_p95,
SUM(dropped) AS drops
FROM queue_metrics
WHERE ts >= now() - INTERVAL '24 hours'
GROUP BY topic;
텐트 카디널리티
sql
SELECT tenant, metric_name, COUNT(DISTINCT series_id) AS series
FROM tsdb_series
WHERE day = current_date
GROUP BY tenant, metric_name
ORDER BY series DESC
LIMIT 50;
15) 프로세스 및 역할
원격 측정 소유자-제도/정책/할당량, 카디널리티 제어.
SRE/Ops-SLO, 경고, 사건, 스케일링.
보안/준수-키, 액세스, PII, 감사.
제품/BI-KPI 쇼케이스, 분석, A/B 메트릭.
임차인 (파트너) -올바른 SDK 통합, 계약 준수.
16) 플레이 북 사건
카디널리티 폭발
1. 자동 차단 프로듀서/메트릭, 2) "나쁜" 레이블을 차단, 3) 복고풍 집계, 4) 사후 및 린터 규칙.
대기열 지연 P0의 상승
1. 우선 순위, 2) 확장 당사자/소비자, 3) 일시적으로 P2 샘플링 감소, 4) 병목 현상 분석.
C. 신선도의 몰락 상점
1. 백업 커넥터로 전환, 2) 저하 모드 ("마지막 마지막"), 3) 를 켜면 소스 소유자에게 알립니다.
메트릭스의 D. PII 누출
1. 즉각적인 흐름 차단, 2) 핫 레이어의 수정, 3) DPO/준수 알림, 4) 렌터/SDK 업데이트.
E. Massive 5xx/추적 오류
1. 페이지, 2) 테일 기반 샘플링 오류, 3) 중요한 경로 추적 진단, 4) 롤백/기능 플래그 해제.
17) 구현 점검표
1. 이벤트/메트릭/추적 계약 승인 및 허용 가능한 레이블 목록.
2. QoS 클래스, 주제/대기열, 할당량 및 메트릭 예산을 작성하십시오.
3. 가장 많이 섭취하는 (푸시/풀), TLS/mTLS, retrai 및 demempotency를 설정하십시오.
4. 메트릭/이벤트 디렉토리 및 스키마 린터를 포함합니다.
5. SLI/SLO, 번 레이트 경고 및 에스컬레이션을 정의하십시오.
6. 대시 보드 Ops/Pipelines/Tenant/Security를 빌드하십시오.
7. 원격 측정 혼돈 테스트 실행 (손실/지터/접착).
8. 카디널리티, 보존 및 보관 비용을 정기적으로 개선하십시오.
18) 용어집
QoS-배송 품질/우선 순위 클래스.
신선도-쇼케이스에서 데이터 출현 지연.
연소율-SLO에 대한 오류 예산 소비율.
카디널리티-고유 한 메트릭 행 수 (레이블 조합).
꼬리 기반 샘플링 - "느린/잘못된" 흔적을 선택합니다.
이데올로기 키-이벤트 반복 중복의 키.
결론: 신호 및 메트릭의 분포는 "그래프를 수집하고 표시" 하는 것이 아니라 계약, QoS 채널 및 예산의 규율입니다. 이 프레임 워크를 따라 생태계는 예측 가능한 관찰 가능성, 서지 방지, 데이터 비공개 및 운영 및 비즈니스 윤곽의 의사 결정에 유용합니다.