Plotly 시각화
Plotly 선, 점, 도넛 그래프의 입력, 축, 색과 표시 방법, 실습의 그래프 생성 코드, 임계값별 색상 코드와 추가 그래프 결과는 기재 없음
#핵심 요약
실습 모니터는 화면을 Streamlit으로, 그래프를 Plotly로 그림
그래프로 그린 지표는 Logical, Physical Reads 추이선, 실행 중 SQL의 경과 시간 점(SQL Elapsed), 대기 분포(Wait Class, Wait Event Type) 등임
기준을 넘으면 색으로 표시함
PG 게이지는 SQL 경과 10초를 넘으면 분홍, 캐시 적중률 90% 미만이면 빨강임
이행 도구의 분석 화면에는 이행 준비도 도넛(자동 가능 4/5)이 있음
#개념과 동작 원리
| 그래프 | 실습 도구 | 데이터와 표시 |
|---|---|---|
| Reads 추이선 | 오라클 게이지 | 스냅숏 델타로 구한 초당 Logical, Physical Reads 읽기 부하 중 두 선이 함께 오름 |
| SQL Elapsed 점 | 오라클 게이지 | 최근 SQL을 점으로 표시 실습 확인 300개 |
| Running SQL Elapsed Time | PG 게이지 | query_start로 3초마다 실행 중 SQL을 점으로, 10초 넘으면 분홍 |
| 행 읽기, 디스크 블록 읽기 | PG 게이지 | 풀스캔 부하를 건 순간 함께 치솟음 |
| Wait Class / Wait Event Type | 두 게이지 | 대기 종류 분포 PG는 비어 있으면 CPU |
| 이행 준비도 도넛 | 마이그레이터 | 자동, 검토, 수동 비율 |
실습에서 사용한 그림 종류별 코드, 축, 색 설정값과 Streamlit 결합 코드는 기재 없음
위 표의 그래프 형태는 실습 캡션의 "추이선", "점", "도넛" 표현을 따른 것임
그래프의 숫자를 만드는 방식은 Oracle 지표 수집과 PostgreSQL 지표 수집에 있음
#주요 용어와 구성 요소
| 구문 | 의미 |
|---|---|
| px.line | x, y 열로 점을 잡고 입력 행 순서대로 선으로 연결함 |
| px.scatter | x, y 열을 점으로 표시하며 color, size, hover_data로 추가 정보를 표현함 |
| px.pie | names가 분류, values가 비중 계산에 사용할 값이며 hole로 도넛 형태를 지정함 |
#필수 명령어 또는 SQL
| 항목 | 실행 조건 |
|---|---|
| 작업 대상 | 실제 수집 표의 시간순 선 그래프 객체 생성 |
| 필요 권한 | 준비된 DataFrame 접근 권한, 수집 SQL 실행 권한은 별도임 |
| 바꿀 입력값 | df, <TIME_COLUMN>, <VALUE_COLUMN>, 범례, 색에 대응할 실제 열 |
| 결과 해석 | 그래프 객체를 생성하는 코드임 실제 측정값과 그래프 출력은 기재 없음 |
import plotly.express as px
ordered = df.sort_values("<TIME_COLUMN>")
fig = px.line(ordered, x="<TIME_COLUMN>", y="<VALUE_COLUMN>")결과 해석: 수집 시각순 추이선 객체를 만드는 API 예시이며 실제 그래프, 측정값은 기재 없음
#구문과 옵션 설명
Plotly 선 그래프는 입력을 자동 정렬하지 않으므로 시각 열을 정렬한 표를 전달함
만든 Figure를 Streamlit의 st.plotly_chart에 전달하면 화면에서 표시할 수 있음
color 인수는 색을 결정할 데이터를 지정하는 것이며 업무 임계값 판단 자체를 대신하지 않음
#사용 조건과 주의사항
평상시에는 읽기 수치가 0에 가까워 그래프가 움직이지 않음
실습에서는 부하 도구로 일부러 부하를 걸어 추이선을 확인했음
PostgreSQL은 누적 통계를 SQL이 끝날 때 반영하므로, 몇 분째 도는 긴 SQL은 끝날 때까지 행 읽기 그래프에 보이지 않음
실습에서는 그래프 확인에 짧은 SQL을 반복하는 부하를 썼음
실습 그래프의 수치는 캡션과 확인 표가 시점마다 다름
기존 실습 임계값, 캡션 수치와 새 API 예시의 역할을 구분함
누적 통계 수집 지연과 그래프의 화면 갱신 지연은 따로 확인함