측정 방식
버전을 지정하지 않은 호출만 측정합니다. 이런 호출은 LexQ가 운영 중 버전으로 보내고, A/B 테스트가 진행 중이면 일부를 테스트 버전으로 보냅니다.
전체 실행 시간은 엔진이 요청 하나(배치는 항목 하나)를 받아 결과를 낼 때까지 걸린 시간입니다.
평가와 동기 액션이 들어가고, 캐시
MISS일 때는 규칙 로딩과 컴파일도 들어갑니다. 표본으로 뽑힌
호출에서는 규칙마다 조건 평가 시간을 재고, 발동한 규칙(decisionTraces의 SELECTED)은 액션 실행
시간도 잽니다.
- 결정론적 샘플링. 표본 포함 여부는
traceId만으로 결정됩니다. 누구든 같은 판정을 재계산할 수 있고, 우연은 개입하지 않습니다. - 캐시(Cache) 차원. 캐시된 규칙으로 실행된
HIT와 규칙을 새로 불러와 컴파일까지 수행한MISS(첫 호출, 배포 직후)는 의도적으로 분리된 분포로 관리합니다. 섞으면 두 신호가 모두 가려집니다. - 60초 구간. 관측은 60초 구간 단위로 집계됩니다. 비어 있는 구간은 결측 그대로 보여주고, 보간하지 않습니다.
- 정직한 백분위수. 모든 백분위수에는 측정 수(Samples)
n이 함께 제공됩니다. 각 백분위수는 그 등수 너머의 관측이 3개 이상일 때만 표시합니다 (n×(1−q) ≥ 3, p50은 6건, p95는 60건, p99는 300건부터). 미달이면 값을 지어내는 대신 유보합니다. API에서는null, 콘솔에서는–로 표시됩니다.
느린 규칙 판정 · 상대 기준만
같은 그룹, 버전, 구간(Phase), 캐시 상태 안에서 규칙의 p50이 규칙별 p50 중앙값의 10배 이상이면 느림(Slow)으로 판정합니다. 판정에는n ≥ 100인 규칙이 3개 이상 필요합니다. 이 판정
기준은 백분위수 표시 기준과 별개의 축이라, p99가 아직 유보된 규칙도 느림으로 판정될 수 있습니다.
의도된 선택 두 가지:
- 절대 임계값 없음. “느리다”의 기준은 도메인마다 다릅니다. 배치 파이프라인에서 50ms는 무난하지만 결제 경로에서는 치명적일 수 있습니다. LexQ는 어디에도 밀리초 기준값을 고정해 두지 않습니다.
- 평균이 아니라 중앙값. 규칙이 1, 1, 1, 1, 40ms일 때 평균 기준(8.8ms × 10 = 88ms)은 40ms 규칙이 자신이 끌어올린 평균 뒤에 숨게 합니다. 중앙값 기준(1ms × 10 = 10ms)은 잡아냅니다.
콘솔
정책 그룹 상세에서 성능(Performance) 탭을 엽니다. 탭은 왼쪽 버전 목록에서 고른 버전을 보여줍니다. 따로 고르지 않았다면 운영 중 버전입니다. 맨 위 전체 실행 시간 카드에 캐시 상태별 p50 / p95 / p99가 나옵니다.- 기간 프리셋 1h / 24h / 7d와 HIT / MISS 캐시 토글을 제공합니다. 백분위수별 색상(p50 / p95 / p99)은 카드·표·차트에서 동일하게 쓰입니다.
- 규칙 표에는 측정 수, 백분위수, 기준 대비 배율(
×1.2)이 표시되고, 판정되면 느림 배지가 함께 붙습니다. - 규칙을 클릭하면 상세 화면이 열립니다. 구간 × 캐시 상태별 요약과, 점 하나가 60초 구간 하나인 시계열을 보여줍니다. 점은 구간의 원본값이며, 빈 곳은 그 구간에 이 규칙의 표본이 없다는 뜻입니다.
API
파트너 API의 읽기 엔드포인트 2개입니다 (x-api-key 인증).
versionId(기본값: 운영 중 버전), from / to(ISO-8601 시각,
반개구간 [from, to), 기본값: 최근 24시간), cacheState(HIT | MISS, 기본 HIT,
개요 전용). 시작이 종료와 같거나 늦으면 P-035 오류가 반환됩니다.
응답에서 알아둘 규약:
- 표시 기준(
n×(1−q) ≥ 3) 미달인 백분위수 필드는null이며,n은 항상 포함됩니다. p50은 보이고 p99만null인 응답이 정상입니다. - 판정 가능한 규칙이 3개 미만이면
baselines[].status가INSUFFICIENT_COHORT입니다. droppedRows는 손상되어 건너뛴 기록 수입니다. 결손은 숨기지 않고 셉니다.
CLI & MCP
lexq_profile_overview, lexq_profile_rule.
오버헤드와 보존
프로파일링이 결정 경로를 방해하지 않도록 설계했습니다.- 기본 1% 샘플링에서 실측 오버헤드: 엔진 p50 기준 +0.12% (JMH, 규칙 20개 픽스처). 계측이 실패해도 격리해 집계할 뿐, 결정 경로로는 전파되지 않습니다.
- 구간 데이터는 35일간 조회 가능하며 이후 아카이브됩니다. 모든 플랜에서 제공됩니다.
규칙별 시간은 1% 표본에서 잽니다. 그래서 규칙별 백분위수가 나오려면, 고른 기간 안에 그 백분위수가
요구하는 표본 수(정직한 백분위수 참고)의 100배쯤 되는 호출이 있어야 합니다. 그때까지는
–로
표시되니, 트래픽이 적은 그룹은 7d처럼 긴 기간을 고르세요. 전체 실행 시간은 단일 그룹 호출과 배치
항목마다 기록하므로 백분위수가 더 빨리 나옵니다.
