📊 Kibana 대시보드 가이드
이터널 리턴 — 데이터 분석 & 모니터링
🔖 대시보드 바로가기
신규 유저 온보딩 대시보드 — 최근 변경사항
▼🔄 D1/D7 리텐션 수정 (2026-02-27)
- D1 리텐션 분모 변경: '가입일 게임 플레이 유저' → '전체 가입자' (업계 표준, Krafton 기준 일치)
- D7 리텐션 신규 추가: 가입 후 7일째 게임 플레이 기준
- 국가별 D1/D7 리텐션 패널 추가:
country-retention-metrics인덱스 활용 - 대시보드 차트 넘버링: ① ② ③ 형태로 패널 구분
- 신규 가입자 추이: 1일 단위 고정
- 첫 게임 진입률: 라인 그래프로 변경
- 7일 이탈률: Y축 max 20 고정
✅ Krafton NRU 보고서 대비 검증 (2026-02-27)
• D+1: 28.72% · D+7: 12.53%
• D1 (게임 플레이 기준): 24.98%
• D1 (로그인 기준): 26.82%
💡 일일 인사이트 2026-03-24 기준
활성 유저 59,184명, 플레이어 54,745명(-7.8%). 유저 증가 대비 판수 증가폭 작음.
전일 741명 대비 감소. KR 68.1%.
결제 유저 1,153명. KR $23,939, JP $2,975, US $1,362. 전일 대비 소폭 감소.
랭크 141,019판, 일반 128,375판, 코발트 39,873판(12.7%), 커스텀 4,386판. Asia 서버 95.3% 점유.
봇 포함 게임 15,682판, AFK 655건, 중도 이탈 1,404건. 안정적 수준.
매일 01:00 KST 자동 업데이트
📉 유저 이탈 추이 최근 30일 · 2026-03-24 기준
🔹 7일 단기 이탈 D+1~7일 내 미접속
🔸 28일 장기 이탈 D+1~28일 내 미접속
매일 01:00 KST 자동 업데이트
서버 성능 대시보드 NEW
▼게임 서버의 레이턴시, 네트워크 품질, 게임 성능을 13개 패널로 종합 모니터링합니다. 2개의 데이터소스를 활용하여 ISP 집계 레이턴시(battle_latency_release)와 유저별 게임 성능(battle-user-game-release-log)을 통합 분석합니다.
•
battle_latency_release (dv: 9a413bc0) — ISP별 집계 레이턴시, 게임 수, 구간 분포•
battle-user-game-release-log (dv: 2f731990) — 유저별 레이턴시 퍼센타일, 고레이턴시 비율, 게임 품질
📊 레이턴시 기본 — battle_latency_release
ISP별 집계 데이터 기반. 전체 레이턴시 추이와 ISP별 비교에 사용됩니다.
1. 📈 일별 평균 레이턴시
X축: statDtm, Y축: 평균 latency. 전체 서버의 일별 평균 레이턴시 변화를 추적합니다.
2. 📈 ISP별 일별 평균 레이턴시 추이 (Top 5)
Top 5 ISP의 일별 평균 레이턴시를 Split으로 비교. ISP별 네트워크 품질 차이를 파악합니다.
11. 📈 ISP별 일별 게임 수 추이 (Top 5)
Top 5 ISP별 sum(battleGames) 일별 추이. ISP별 트래픽 규모 변화를 확인합니다.
12. 📊 레이턴시 구간별 분포
레이턴시 구간별 히스토그램. 전체 유저의 레이턴시 분포를 한눈에 파악합니다.
📡 레이턴시 상세 — battle-user-game-release-log
유저별 게임 로그 기반. 퍼센타일 분포, 고레이턴시 비율, 스파이크 탐지에 사용됩니다.
3. 📈 일별 고레이턴시 유저 비율 (≥50ms/≥75ms/≥100ms)
3개 라인: ≥50ms / ≥75ms / ≥100ms. 각 column에 KQL 필터를 적용하여 고레이턴시 유저 비율 변화를 추적합니다.
4. 📈 일별 레이턴시 분포 (평균/P50/P95/P99)
일별 레이턴시 퍼센타일 분포. 평균, P50, P95, P99를 비교하여 전체 네트워크 품질을 파악합니다.
5. 📈 일별 고레이턴시 비율 (100ms+/200ms+)
formula 기반. 100ms 이상 / 200ms 이상 유저 비율을 일별로 추적하여 서비스 품질 추이를 모니터링합니다.
13. 📈 일별 최대 레이턴시 스파이크 (P95/P99)
일별 P95/P99 최대 레이턴시 스파이크를 추적하여 간헐적 네트워크 이슈를 감지합니다.
🌐 국가/ISP별 성능
9. 📊 국가별 레이턴시 & 게임 수
이중 메트릭: 국가별 평균 레이턴시(+P95)와 게임 수를 한 차트에서 비교합니다.
10. 📊 ISP별 레이턴시 & 게임 수
이중 메트릭: ISP별 평균 레이턴시(+P95)와 게임 수를 한 차트에서 비교합니다.
🎮 게임 품질
6. 📈 일별 게임 시간 분포 (평균/P50/P95)
percentile 기반. 일별 게임 시간의 평균/P50/P95 분포를 추적하여 게임 밸런스를 모니터링합니다.
7. 📊 게임모드별 레이턴시 (평균/P95)
게임모드별 평균 레이턴시와 P95를 비교하여 모드별 네트워크 부하를 파악합니다.
8. 📈 일별 총 게임 수 & 고유 유저 수
일별 총 게임 수(count)와 고유 유저 수(unique_count)를 전체 폭으로 표시하여 전체 활성도를 모니터링합니다.
🗄️ 데이터 소스
| 인덱스 | Data View | 사용 패널 | 주요 필드 |
|---|---|---|---|
battle_latency_release |
9a413bc0 |
일별 평균 레이턴시, ISP별 레이턴시 추이, ISP별 게임 수 추이, 레이턴시 구간 분포 (패널 1, 2, 11, 12) | statDtm, latency, battleGames, isp, percentile |
battle-user-game-release-log |
2f731990 |
고레이턴시 비율, 퍼센타일 분포, 국가/ISP별 성능, 게임 품질 (패널 3~10, 13) | avgLatency, maxLatency, minLatency, country, countryCode, serverName, isp, playTime, matchingMode |
⚙️ 패널별 상세 설정
• 3개 Column, 각각 KQL filter 적용:
- Column 1:
avgLatency >= 50- Column 2:
avgLatency >= 75- Column 3:
avgLatency >= 100• 시간에 따른 고레이턴시 유저 비율 변화를 추적합니다
• formula 기반:
count(kql='avgLatency >= 100') / count()• 100ms 이상, 200ms 이상 비율을 각각 계산하여 서비스 품질 트렌드를 모니터링합니다
• 이중 메트릭: 평균 레이턴시 + P95 레이턴시를 동시 표시
• 게임 수(count)와 함께 표시하여 트래픽 규모 대비 레이턴시를 비교합니다
이상 탐지 대시보드 NEW
▼핵/치팅 탐지, 비정상 전투, AFK/이탈, 봇 현황을 11개 패널로 종합 모니터링하는 대시보드입니다. 단일 데이터소스(battle-user-game-release-log)로 구성됩니다.
대시보드 ID:
45673451-7a5c-433e-8155-a5dbf7010133
🔍 핵/치팅 탐지
📊 일별 핵 의심 이벤트 (유형별)
hackAttemptLog 3종 sum: RAPID_ITEM_PICKUP, TARGET_OUT_OF_SIGHT, PING_TARGET. 유형별 일별 추이를 확인합니다.
📈 일별 핵 의심 유저 수
unique_count(userNum) with hack filter. 핵 의심 행위가 탐지된 고유 유저 수를 추적합니다.
👤 핵 의심 TOP 20 유저 (닉네임, 유형별)
nickname별 3종 breakdown. 핵 의심 이벤트가 가장 많은 유저 20명을 유형별로 표시합니다.
⚔️ 비정상 전투
📈 일별 비정상 킬 (20+) 건수 & 유저 수
20+킬 필터 적용. 비정상적으로 높은 킬 수를 기록한 건수와 유저 수를 일별로 추적합니다.
📈 일별 킬 수 분포 (평균/P95/P99)
percentile 기반. 킬 수의 평균, P95, P99 분포를 일별로 비교하여 이상치를 감지합니다.
📈 일별 데미지 분포 (평균/P95/P99)
percentile 기반. 데미지의 평균, P95, P99 분포를 일별로 추적하여 비정상 전투를 탐지합니다.
🚪 AFK & 이탈
📈 일별 AFK / 조기이탈 / creditRevival 전 이탈
formula count(kql=...) 기반. AFK, 조기이탈, creditRevival 전 이탈 건수를 일별로 추적합니다.
📊 일별 escapeState 분포
escapeState 값별 일별 분포. 정상 종료, AFK, 이탈 등 게임 종료 상태를 비율로 확인합니다.
📊 게임모드별 AFK / 조기이탈 비율 (%)
formula 비율 기반. 게임모드별 AFK 및 조기이탈 비율을 비교합니다.
📈 일별 AFK 비율 & 조기이탈 비율 (%)
formula 비율 기반. 전체 게임 대비 AFK 비율과 조기이탈 비율의 일별 추이를 추적합니다.
🤖 봇 모니터링
📈 일별 봇 현황 (추가/잔존/ML봇 게임)
봇 추가 수, 잔존 봇 수, ML봇이 포함된 게임 수를 일별로 모니터링합니다.
🗄️ 데이터 소스
| 인덱스 | 사용 패널 | 주요 필드 |
|---|---|---|
battle-user-game-release-log |
전체 11개 패널 | hackAttemptLog, userNum, nickname, playerKill, damageToPlayer, escapeState, botAdded, botRemainCount, mmBotCount, matchingMode |
데이터 인덱스 문서
▼대시보드에서 사용하는 주요 Elasticsearch 인덱스와 필드 설명입니다.
📋 new-user-release-log
신규 가입 유저 로그. 가입 시점의 유저 정보를 기록합니다.
| 필드 | 타입 | 설명 |
|---|---|---|
userNum | long | 유저 고유 번호 |
authProvider | keyword | 인증 방식 (Steam, Kakao 등) |
country | keyword | 국가 코드 |
language | keyword | 클라이언트 언어 |
pcCafe | boolean | PC방 유저 여부 |
@timestamp | date | 가입 시점 |
📋 tutorial-release-log
튜토리얼 진행 로그. 각 단계별 완료/스킵을 기록합니다.
| 필드 | 타입 | 설명 |
|---|---|---|
userNum | long | 유저 고유 번호 |
code | keyword | 튜토리얼 단계 (10001~10006) |
skip | boolean | 스킵 여부 |
clearDtm | date | 완료 시각 |
rewardDtm | date | 보상 수령 시각 |
📋 battle_latency_release
ISP별/시간대별 레이턴시 집계 데이터. 서버 성능 대시보드의 주요 소스입니다.
| 필드 | 타입 | 설명 |
|---|---|---|
statDtm | date | 통계 시각 |
latency | float | 평균 레이턴시 (ms) |
battleGames | long | 게임 수 |
isp | keyword | ISP 이름 |
percentile | float | 레이턴시 퍼센타일 |
📋 battle-user-game-release-log
유저별 게임 결과 로그. 국가별/서버별 레이턴시 분석에 사용됩니다.
| 필드 | 타입 | 설명 |
|---|---|---|
avgLatency | float | 평균 레이턴시 (ms) |
maxLatency | float | 최대 레이턴시 (ms) |
minLatency | float | 최소 레이턴시 (ms) |
country | keyword | 국가명 |
countryCode | keyword | 국가 코드 (2자리) |
serverName | keyword | 게임 서버 이름 |
isp | keyword | ISP 이름 |
characterNum | long | 캐릭터 번호 |
gameRank | integer | 게임 순위 |
📋 battle-latency-province-release-log
도/시 단위 레이턴시 집계. 지역별 네트워크 품질 분석용입니다.
| 필드 | 타입 | 설명 |
|---|---|---|
statDtm | date | 통계 시각 |
latency | float | 평균 레이턴시 (ms) |
battleGames | long | 게임 수 |
isp | keyword | ISP 이름 |
provinceName | keyword | 도/시 이름 |
provinceCode | keyword | 도/시 코드 |
percentile | float | 레이턴시 퍼센타일 |
battle-latency-province-release-log는 현재 데이터가 0건입니다. 인덱스는 준비되어 있으나 아직 데이터가 적재되지 않았습니다.
📋 country-retention-metrics NEW
국가별 D1/D7 리텐션 일별 집계 데이터. 자동화 파이프라인에서 매일 생성됩니다.
| 필드 | 타입 | 설명 |
|---|---|---|
date | date | 기준일 |
country | keyword | 국가 코드 |
d1_retention_rate | float | D1 리텐션율 (%) |
d7_retention_rate | float | D7 리텐션율 (%) |
total_signups | long | 해당 국가 가입자 수 |
d1_retained | long | D1 잔존 유저 수 |
d7_retained | long | D7 잔존 유저 수 |
📋 onboarding-metrics (필드 추가) UPDATED
기존 온보딩 메트릭 인덱스에 D1/D7 리텐션 필드가 추가되었습니다.
| 필드 | 타입 | 설명 | 상태 |
|---|---|---|---|
d1_retention_rate | float | D1 리텐션율 (전체 가입자 기준) | NEW |
d7_retention_rate | float | D7 리텐션율 (전체 가입자 기준) | NEW |
ES Transform 현황
▼Elasticsearch Transform으로 원본 로그를 집계하여 대시보드에 활용합니다.
| Transform | 설명 | 주기 | 상태 |
|---|---|---|---|
battle-user-daily-stats |
일별 게임 유저 통계 (DAU, 판수 등) | 1시간 | 🟢 운영 |
battle-user-game-stats |
유저별 게임 통계 집계 | 1시간 | 🟢 운영 |
new-user-list |
신규 유저 목록 (userNum별 가입일) | 1시간 | 🟢 운영 |
user-daily-activity |
유저별 일별 활동 (로그인/게임) | 1시간 | 🟢 운영 |
character-daily-stats |
캐릭터별 일별 통계 (승률/픽률) | 1시간 | 🟢 운영 |
자동화 (Cron Jobs)
▼매일 자동으로 실행되는 크론잡 5개가 운영되고 있습니다.
📰 ER 커뮤니티 리포트
실행 시각: 매일 00:05 KST
DC갤러리, 인방갤, Arca에서 이터널 리턴 관련 글을 수집하고 핫토픽을 분석합니다. 결과를 Slack으로 알림합니다.
📊 온보딩 메트릭 일별 계산
실행 시각: 매일 00:20 KST
전일 신규 유저의 첫 게임 진입률, D1 리텐션, 국가별 진입률, 첫 승리까지 게임 수를 계산합니다.
📈 D1/D7 리텐션 + 국가별
실행 시각: 매일 00:20 KST
D1/D7 리텐션을 전체 가입자 기준으로 계산하고, 국가별 리텐션을 country-retention-metrics 인덱스에 적재합니다.
📉 이탈률 계산
실행 시각: 매일 00:20 KST
7일/28일 단기·장기 이탈률을 계산하여 이탈 추이 차트에 반영합니다.
💡 Kibana 인사이트 업데이트
실행 시각: 매일 01:00 KST
Gemini를 활용하여 전일 데이터 기반 일일 인사이트를 생성하고 가이드 페이지에 자동 반영합니다.
KQL 예시 & 메트릭 방법론
▼📝 유용한 KQL 쿼리
country: "KR"
// PC방 유저만
pcCafe: true
// 튜토리얼 스킵한 유저
skip: true
// 튜토리얼 3단계(제작)
code: "10003"
// 레이턴시 50ms 이상 유저
avgLatency >= 50
// 레이턴시 100ms 이상 유저
avgLatency >= 100
// 특정 ISP
isp: "SK Broadband"
// 레이턴시 데이터 존재 확인
latency: exists
// 특정 국가 + 고레이턴시
country: "KR" and avgLatency >= 75
// Steam 유저 + 한국
authProvider: "Steam" and country: "KR"
📐 메트릭 계산 방법론
= (첫 게임 플레이한 신규 유저 수) / (전체 신규 가입 유저 수) × 100
• 소스:
new-user-first-game-stats Transform• 가입 당일 기준으로 계산
= (가입 다음 날 게임을 플레이한 유저 수) / (가입일 유저 수) × 100
• 소스:
new-user-list + battle-user-daily-stats• 가입 D+1일에 1회 이상 게임 기록이 있으면 리텐션
= (가입 7일 후 게임을 플레이한 유저 수) / (가입일 유저 수) × 100
• D1과 동일 로직, 기간만 D+7
= (skip=true인 유저 수) / (튜토리얼 시작 유저 수) × 100
• 소스:
tutorial-release-log (code=10001 기준)
게임 플레이 현황 대시보드 NEW
▼DAU, 게임 판수, 게임모드별/서버별 현황, 인당 평균 판수, 국가별 DAU를 21개 패널로 종합 분석하는 대시보드입니다. 2개 데이터소스(battle-user-game-release-log, login-release-log)를 사용하며, 전체 패널에 ML봇 제외 필터가 적용됩니다.
대시보드 ID:
aac4c678-e463-4712-a8ac-7b8d5811f8b5
• 게임모드 컬러 통일: NORMAL=초록, RANKING=빨강, COBALT=코발트블루, CUSTOM=노랑
• ML봇 제외 필터 전체 적용 (
isMLBot=false)• 서버별 상세 분석 — 5개 서버(Asia2/Asia3/NA/EU/SA) × 2패널
📊 전체 현황
📈 일별 DAU
unique_count(userNum), todayFirstLogin=true 필터. 일별 순 접속자 수 추이를 확인합니다.
📈 일별 게임 판수 & 플레이어 수
일별 총 게임 판수(count)와 고유 플레이어 수(unique_count(userNum))를 비교합니다.
📈 일별 인당 평균 판수
formula count / unique_count(userNum). 유저 1인당 하루 평균 게임 횟수를 추적합니다.
🎯 게임모드별 분석
📊 게임모드별 일별 판수 추이
gameMode 기준 split. NORMAL/RANKING/COBALT/CUSTOM별 일별 게임 판수를 영역 차트로 비교합니다.
📊 게임모드별 일별 플레이어 수
gameMode 기준 split. 각 게임모드별 일별 고유 플레이어 수를 영역 차트로 비교합니다.
📊 게임모드별 판수 & 유저 수
게임모드별 총 판수와 총 유저 수를 한눈에 비교하는 수평 바 차트입니다.
🌐 서버별 분석
📊 서버별 일별 판수 추이
serverName 기준 split. 서버별 일별 게임 판수를 영역 차트로 비교합니다.
📊 서버별 일별 플레이어 수
serverName 기준 split. 서버별 일별 고유 플레이어 수를 영역 차트로 비교합니다.
📊 서버별 판수 & 유저 수
서버별 총 판수와 총 유저 수를 한눈에 비교하는 수평 바 차트입니다.
🌍 국가별 분석
📊 국가별 DAU
국가별 DAU를 수평 바 차트로 비교합니다. todayFirstLogin=true 필터 적용.
📈 국가별 DAU 추이 Top 6
상위 6개 국가의 DAU 추이를 라인 차트로 비교합니다.
🏠 서버별 상세 분석 (5개 서버 × 2패널)
각 서버별 게임모드 판수 추이와 랭크 대전 판수 추이를 개별적으로 확인할 수 있습니다.
🌏 [Asia2] 모드별 판수 추이
Asia2 서버의 게임모드별 일별 판수를 영역 차트로 확인합니다.
🌏 [Asia2] 랭크 대전 판수 추이
Asia2 서버의 랭크 대전(RANKING) 일별 판수 추이를 확인합니다.
🌏 [Asia3] 모드별 판수 추이
Asia3 서버의 게임모드별 일별 판수를 영역 차트로 확인합니다.
🌏 [Asia3] 랭크 대전 판수 추이
Asia3 서버의 랭크 대전(RANKING) 일별 판수 추이를 확인합니다.
🌎 [NorthAmerica] 모드별 판수 추이
NorthAmerica 서버의 게임모드별 일별 판수를 영역 차트로 확인합니다.
🌎 [NorthAmerica] 랭크 대전 판수 추이
NorthAmerica 서버의 랭크 대전(RANKING) 일별 판수 추이를 확인합니다.
🌍 [Europe] 모드별 판수 추이
Europe 서버의 게임모드별 일별 판수를 영역 차트로 확인합니다.
🌍 [Europe] 랭크 대전 판수 추이
Europe 서버의 랭크 대전(RANKING) 일별 판수 추이를 확인합니다.
🌎 [SouthAmerica] 모드별 판수 추이
SouthAmerica 서버의 게임모드별 일별 판수를 영역 차트로 확인합니다.
🌎 [SouthAmerica] 랭크 대전 판수 추이
SouthAmerica 서버의 랭크 대전(RANKING) 일별 판수 추이를 확인합니다.
🗄️ 데이터 소스
| 인덱스 | 사용 패널 | 주요 필드 | 필터 |
|---|---|---|---|
battle-user-game-release-log |
19개 패널 | userNum, gameMode, serverName, countryCode | isMLBot: false |
login-release-log |
2개 패널 (DAU) | userNum, countryCode | todayFirstLogin: true |
🗺️ 구축 예정 대시보드
아래 대시보드들은 데이터 인프라 및 인덱스 확인 후 순차적으로 구축 예정입니다.
캐릭터 밸런스
예정캐릭터별 승률, 픽률, 밴률을 분석하고 티어별 비교. 패치 전후 밸런스 변화 추적.
battle-user-game-release-log (characterNum, gameRank, victory)
매치 품질
예정매칭 대기 시간, 게임 평균 시간, MMR 편차, 조기 이탈률, 봇 비율 모니터링.
matching-log-release, battle-user-game-release-log (duration, botAdded, giveUp)
변경 이력
▼| 날짜 | 변경 내용 |
|---|---|
| 2026-02-27 | D1/D7 리텐션 분모 수정 (전체 가입자 기준), 국가별 리텐션 추가 (country-retention-metrics 인덱스), Krafton NRU 보고서 대비 검증, 크론잡 5개로 확장 |
| 2026-02-26 | Gemini 인사이트 자동 업데이트 안정화 |
| 2026-02-24 | ES 인덱스 리네이밍 (new_user_log_release → new-user-release-log 등 kebab-case 통일) |
| 2026-02-08 | 이상 탐지 대시보드 구축, 게임 플레이 현황 대시보드 구축, 서버 성능 대시보드 구축 |