보편적인 사용 사례에서 효과적인 데이터 스토리를 만드는 방법을 보여주는 노트북 예시를 확인해보시기 바랍니다. 각 예시는 쿼리, 시각화, 서술 텍스트를 결합하여 효과적인 분석 문서를 작성하는 방법을 보여줍니다.
인시던트 조사 노트북
팀이 무슨 일이 일어났는지, 그리고 앞으로 어떻게 이를 방지할 수 있는지 이해하는 데 도움이 되는 포괄적인 인지던트 조사 문서를 작성할 수 있습니다.
Structure
마크다운 블록: 인시던트 개요
# Production API Outage - October 15, 2024
**Incident Start**: 2024-10-15 14:32 UTC**Incident End**: 2024-10-15 15:18 UTC**Duration**: 46 minutes**Impact**: 15% of API requests failed
## SummaryOur main API experienced elevated error rates starting at 14:32 UTC...쿼리 블록: 오류율 타임라인
SELECT count(*) AS 'Total Requests', filter(count(*), WHERE httpResponseCode >= 400) AS 'Errors'FROM TransactionWHERE appName = 'api-production'TIMESERIES 1 minuteSINCE '2024-10-15 14:00:00' UNTIL '2024-10-15 16:00:00'쿼리 블록: 엔드포인트별 오류 분석
SELECT count(*) AS 'Error Count', average(duration) AS 'Avg Duration (ms)'FROM TransactionWHERE appName = 'api-production' AND httpResponseCode >= 400FACET request.uriSINCE '2024-10-15 14:00:00' UNTIL '2024-10-15 16:00:00'ORDER BY count(*) DESC마크다운 블록: 근본 원인 분석
## Root Cause Analysis
### Timeline of Events- **14:32**: Error rates began climbing for `/api/users` endpoint- **14:35**: Database connection pool exhaustion detected- **14:45**: Database scaling initiated- **15:18**: Service fully recovered
### Contributing Factors1. Unusual traffic spike during product launch2. Database connection pool too small for peak load3. Missing rate limiting on user registration endpoint쿼리 블록: 인시던트 발생 중 데이터베이스 성능
SELECT average(duration) AS 'Query Duration (ms)', count(*) AS 'Query Count'FROM DatabaseSampleWHERE host = 'prod-db-01'TIMESERIES 5 minutesSINCE '2024-10-15 14:00:00' UNTIL '2024-10-15 16:00:00'성능 분석 노트북
시간 경과에 따른 애플리케이션 성능 추세를 추적 및 분석하여 최적화 기회를 파악할 수 있습니다.
Structure
마크다운 블록: 분석 개요
# Weekly Performance Review - Week of October 14, 2024
## Objectives- Review application response times across all services- Identify performance regressions- Track progress on optimization initiatives
## Key Metrics- P95 response time target: < 500ms- Error rate target: < 0.1%- Apdex score target: > 0.85쿼리 블록: 응답 시간 추세
SELECT percentile(duration, 50) AS 'P50', percentile(duration, 95) AS 'P95', percentile(duration, 99) AS 'P99'FROM TransactionWHERE appName IN ('web-frontend', 'api-backend', 'auth-service')FACET appNameTIMESERIES 1 daySINCE 7 days ago쿼리 블록: 오류율 비교
SELECT percentage(count(*), WHERE error IS true) AS 'Error Rate %'FROM TransactionWHERE appName IN ('web-frontend', 'api-backend', 'auth-service')FACET appNameTIMESERIES 1 daySINCE 7 days agoCOMPARE WITH 1 week ago마크다운 블록: 분석 및 권장 사항
## Key Findings
### Performance Improvements ✅- API backend P95 improved from 650ms to 420ms- Authentication service error rate down 50%
### Areas for Attention ⚠️- Web frontend P95 increased 15% week-over-week- Database query timeouts up 25%
### Action Items1. Investigate frontend asset loading delays2. Optimize top 5 slowest database queries3. Implement caching for user profile data기능 도입 추적
사용자가 새로운 기능과 어떻게 상호 작용하는지 모니터링하고 도입 성공 여부를 측정할 수 있습니다.
Structure
마크다운 블록: 기능 개요
# New Dashboard Feature Adoption - 30 Days Post-Launch
**Launch Date**: September 15, 2024**Analysis Period**: September 15 - October 15, 2024
## Feature DescriptionNew interactive dashboard builder with drag-and-drop widgets...
## Success Metrics- **Primary**: 25% of active users create at least one custom dashboard- **Secondary**: Average 3 widgets per custom dashboard- **Tertiary**: < 5% bounce rate on dashboard creation page쿼리 블록: 대시보드를 생성하는 일일 활성 사용자
SELECT uniqueCount(userId) AS 'Users Creating Dashboards'FROM PageViewWHERE pageUrl LIKE '%/dashboard/create%'TIMESERIES 1 daySINCE 30 days ago쿼리 블록: 대시보드 생성 퍼널
SELECT funnel(userId, WHERE pageUrl LIKE '%/dashboard/create%' AS 'Started Creation', WHERE pageUrl LIKE '%/dashboard/create%' AND eventType = 'widget_added' AS 'Added Widget', WHERE eventType = 'dashboard_saved' AS 'Saved Dashboard')FROM PageView, UserActionSINCE 30 days ago보안 모니터링 노트북
잠재적인 위협과 시스템 취약점을 추적하기 위해 지속적인 보안 분석을 생성할 수 있습니다.
Structure
마크다운 블록: 보안 개요
# Weekly Security Review - October 21, 2024
## Monitoring Scope- Failed authentication attempts- Unusual API access patterns- Database query anomalies- File system access violations
## Alert Thresholds- Failed logins: > 100/hour from single IP- API rate limiting: > 1000 requests/minute- Suspicious queries: containing SQL injection patterns쿼리 블록: 실패한 인증 패턴
SELECT count(*) AS 'Failed Attempts', latest(remoteAddr) AS 'Source IP'FROM LogWHERE message LIKE '%authentication failed%'FACET remoteAddrSINCE 7 days agoHAVING count(*) > 50ORDER BY count(*) DESC쿼리 블록: API 액세스 이상 징후
SELECT count(*) AS 'Request Count', uniqueCount(userAgent) AS 'Unique User Agents'FROM TransactionWHERE appName = 'api-gateway'FACET request.headers.x-forwarded-forSINCE 24 hours agoHAVING count(*) > 10000ORDER BY count(*) DESC비즈니스 메트릭 대시보드
기술 메트릭과 함께 주요 비즈니스 KPI를 추적하여 전체적인 그림을 파악할 수 있습니다.
Structure
마크다운 블록: 비즈니스 맥락
# Monthly Business & Technical Review - October 2024
## Business Objectives- Increase user engagement by 15%- Reduce customer support tickets by 20%- Improve conversion rate to 3.5%
## Technical Performance Targets- 99.9% uptime- < 2 second page load times- Zero security incidents쿼리 블록: 사용자 참여 메트릭
SELECT count(*) AS 'Page Views', uniqueCount(userId) AS 'Active Users', average(duration) AS 'Avg Session Duration'FROM PageViewTIMESERIES 1 daySINCE 30 days ago쿼리 블록: 전환 퍼널
SELECT funnel(userId, WHERE pageUrl = '/signup' AS 'Signup Page', WHERE pageUrl = '/signup/verify' AS 'Email Verified', WHERE pageUrl = '/onboarding/complete' AS 'Onboarding Complete', WHERE eventType = 'subscription_created' AS 'Converted')FROM PageView, UserActionSINCE 30 days ago템플릿: 조사 시작
이 템플릿을 모든 데이터 조사의 시작점으로 활용할 수 있습니다.
Structure
마크다운 블록: 조사 템플릿
# Investigation: [ISSUE DESCRIPTION]
**Date**: [TODAY'S DATE]**Investigator**: [YOUR NAME]**Priority**: [HIGH/MEDIUM/LOW]
## Problem Statement[Describe what you're investigating and why]
## Hypothesis[What do you think might be causing the issue?]
## Investigation Plan1. [First thing to check]2. [Second thing to check]3. [Third thing to check]
## Findings_[Update this section as you discover information]_
## Next Steps_[What actions should be taken based on your findings?]_쿼리 블록: 초기 데이터 탐색
-- Replace with your initial querySELECT count(*)FROM [YourEventType]WHERE [YourConditions]SINCE 1 hour ago팁
각 조사는 범위를 파악하기 위해 광범위한 쿼리로 시작한 다음, 조사 결과를 바탕으로 구체적인 영역으로 범위를 좁혀 나갑니다.
노트북 예시의 모범 사례
스토리 구성
- 맥락 제공: 목적을 설명하는 마크다운 블록으로 시작합니다.
- 논리적 흐름: 자연스럽게 조사를 하게되는 순서대로 쿼리를 정렬합니다.
- 결론 제공: 결과와 다음 단계를 요약하는 마크다운 블록으로 마무리합니다.
쿼리를 재사용 가능하게 만들기
- 날짜, 애플리케이션 이름, 한도 등의 변수를 사용합니다.
- 복잡한 로직은 NRQL에 주석을 달아 설명을 포함합니다.
- 분석 유형에 적합한 시간 범위를 선택합니다.
시각 디자인 팁
- 관련 쿼리 전체에서 통일된 차트 유형을 사용합니다.
- 서술을 뒷받침하는 색상을 선택합니다.
- 모든 시각화에 명확한 제목과 레이블을 추가합니다.
- 자세한 데이터는 표를 사용하고 추세와 패턴은 차트를 사용합니다.
다음 단계는?
- 노트북에 쿼리를 추가하는 방법을 알아보세요.
- 노트북 공유 옵션을 알아보세요.
- NRQL 예시를 살펴보고 더 많은 쿼리 영감을 얻어보세요.