Grafana는 시각화도구로서 Metric정보를 읽어와서 Query를 이용하여 사용자가 알아보기 쉽게 여러 형태로 Dashboard를 구성, 정보들을 확인할 수 있습니다. 수집된 Metric정보들이 일정수치 이상이나 상태가 변동되었을 때 설정된 alarm을 통해서 여러 곳으로(slack, opsgenie, E-mail 등) 관련내용을 전달할 수도 있습니다.
Grafana에 대한 자세한 내용이나 다운로드를 하고 싶으시다면 Grafana 홈페이지를 참고하시기 바랍니다.
본 가이드에서는 Grafana의 Dashboard 사용법 및 각 항목에 대해 설명 합니다.
서비스를 사용하기 위해서는 ZCP Console 사이드 메뉴에서 모니터링 을 클릭 합니다.
모니터링 화면 - Grafana
Grafana Dashborad
- 상단의 Home 메뉴 선택
- 펼쳐진 메뉴들 확인
최근에 선택했던 Dashboard(Recent)와 기본구성 Dashboard(4개) - 기본구성 Dashboard 선택
- 선택한 Dashboard 확인
Dashboard 종류 (13개)
Addon Dashboards
ElasticSearch : elasticsearch에 대한 정보들을 표시 (JVM, CPU, Memory, Documents, Indices 등)
Group 명 | Pannel 명 | 설명 |
---|---|---|
KPI | Cluster health | elasticsearch cluster의 현재 상태 (N/A / Green / Yellow / Red) |
Tripped for breakers | cluster가 깨져서 tripeed된 평균값 | |
CPU usage Avg. | CPU 평균 사용량 | |
JVM memory used Avg. | JVM memory 평균 사용량 | |
Nodes | Number of nodes in the cluster. | |
Data nodes | Number of data nodes in the cluster. | |
Pending tasks | Cluster level changes which have not yet been executed. | |
Openfile descriptors per cluster | elasticsearch에서 진행되는 open file수의 합계 | |
Shards | Active primary shards | The number of primary shards in your cluster. This is an aggregate total across all indices. |
Active shards | Aggregate total of all shards across all indices, which includes replica shards. | |
Initializing shards | Count of shards that are being freshly created. | |
Relocating shards | The number of shards that are currently moving from one node to another node. | |
Delayed shards | Shards delayed to reduce reallocation overhead. | |
Unassigned shards | The number of shards that exist in the cluster state, but cannot be found in the cluster itself. | |
JVM Garbage Collection | GC count | Gabage Collection에서 처리하는 개수 |
GC time | Gabage Collection에서 처리하는 시간 | |
CPU and Memory | Load average | elasticsearch에서 사용하는 Load 평균 |
CPU usage | elasticsearch에서 사용하는 CPU 사용량 | |
JVM memory usage | elasticsearch에서 사용하는 JVM memory 사용량 | |
JVM memory committed | elasticsearch에서 commit하는데 사용하는 JVM memory 사용량 | |
Disk and Network | Disk usage | elasticsearch에서 사용하는 Disk 사용량 |
Network usage | elasticsearch에서 사용하는 Network 사용량 | |
Documents | Documents count on node | data node에 저장된 document 개수 |
Documents indexed rate | document들이 index된 비율 | |
Documents deleted rate | document들이 delete된 비율 | |
Documents merged rate | document들이 merge된 비율 | |
Documents merged bytes | document들이 merge된 용량(bytes) | |
Times | Query time | Query 실행 시간 |
Indexing time | Indexing 실행 시간 | |
Merging time | Merging 실행 시간 | |
Throttle time for index store | index를 저장하기 위한 throttle 시간 | |
Indices: Count of documents and Total size | Count of documents with only primary shards | primary shard들의 document 개수 |
Total size of stored index data in bytes with only primary shards on all nodes | primary shard들이 저장된 index data의 총용량 | |
Total size of stored index data in bytes with all shards on all nodes | 모든 shard들이 저장된 index data의 총용량 | |
Indices: Index writer | Index writer with only primary shards on all nodes in bytes | primary shard들이 index로 쓰여지고 있는 용량 |
Index writer with all shards on all nodes in bytes | 모든 shard들이 index로 쓰여지고 있는 용량 |
ZCP Services Status : 'zcp-system' namespace의 health check (CPU usages, 상태값)
Pannel 명 | 내용 |
---|---|
Duration | probe duration seconds |
Status : alertmanager | alertmanager health (UP / DOWN) |
alertmanager Status Code | alertmanager 상태코드 |
Status : grafana | grafana health (UP / DOWN) |
grafana Status Code | grafana 상태코드 |
Status : prometheus | prometheus health (UP / DOWN) |
prometheus Status Code | prometheus 상태코드 |
Cluster Dashboards
Etcd Cluster : Etcd 상태값 (RPC Rate, DB Size, Disk Sync Duration 등)
Pannel 명 | 설명 |
---|---|
Etcd has a leader? | Etcd가 leader를 가지고 있는지 체크 (YES / NO) |
The number of leader changes seen | Etcd leader가 바뀐 개수 |
The total number of failed proposals seen | proposal이 실패한 총 개수 |
RPC Rate | gRPC가 5분 동안 시작되거나 handling된 개수 |
Etcd DB Size | Etcd debugging mvcc db total size in bytes |
Etcd Disk Sync Duration | 5분 동안 etc disk가 wal fsync한 총 개수 (Histogram 99) |
Etcd Memory | 'etcd' job의 메모리 사용량 |
Etcd Client Traffic In | etcd network client gRPC가 5분 동안 받았던 traffic 총 개수 |
Etcd Client Traffic Out | etcd network client gRPC가 5분 동안 보냈던 traffic 총 개수 |
Etcd Peer Traffic In | etcd network peer가 5분 동안 받았던 traffic 총 개수 |
Etcd Peer Traffic Out | etcd network peer가 5분 동안 보냈던 traffic 총 개수 |
Etcd Proposals rate(Fail,Pending,commit,apply) | etcd server가 5분 동안 proposal한 총 committed 개수 |
Etcd Disk operations(AVG) | etcd disk가 2분 동안 backend commit한 총 개수 |
Network | etcd network client gRPC가 2분 동안 받았던 traffic 총 개수 |
Snapshot duration | Abnormally high snapshot duration (snapshot_save_total_duration_seconds) indicates disk issues and might cause the cluster to be unstable. |
Kubernetes: Cluster Overview : 전체/Node평균/Cluster평균 Resource에 대한 정보 (Node/Pod/Container 수, CPU/Memory/Network Usage 등)
Group 명 | Pannel 명 | 설명 |
---|---|---|
Resource Dashboard | Alertmanager Alerts Firing | Alert 총 개수 |
Node Not Ready | Node가 'Not Ready' 상태인 개수 | |
Node Unschedulable | Node가 'Unschedulable' 상태인 개수 | |
Node Memory Pressure | Node가 'Memory Pressure' 상태인 개수 | |
Node Disk Pressure | Node가 'Disk Pressure' 상태인 개수 | |
Running Pod Total | 현재 'Running' 상태인 Pod의 개수 | |
Running Pod Total by Node | 각 노드에서 현재 'Running' 상태인 Pod의 개수 | |
Running Container Total | 현재 'Running' 상태인 Container의 개수 | |
Running Container Total by Node | 각 노드에서 현재 'Running' 상태인 Container의 개수 | |
Node Resource Usage | Number of Node | 현재 클러스터 내 노드의 총 개수 |
Total CPU | 현재 클러스터 내 노드의 CPU 합계 | |
Used Memory | 현재 클러스터 내 노드의 Memory 사용양 | |
Total Memory | 현재 클러스터 내 노드의 Memory 합계 | |
DIsk Usage | 현재 클러스터 내 노드의 DIsk 사용양 | |
DIsk Total | 현재 클러스터 내 노드의 DIsk 합계 | |
Avg CPU Usage | 현재 클러스터 내 노드의 CPU 평균 사용양 | |
Avg Memory Usage | 현재 클러스터 내 노드의 Memory 평균 사용양 | |
Avg Disk Usage | 현재 클러스터 내 노드의 Disk 평균 사용양 | |
Network Usage (Node NIC) | 현재 클러스터 내 노드의 Network 사용양 | |
Cluster Resource Usage | Cluster CPU Usage(Used/Total) | 현재 클러스터 내 노드의 CPU 전체 중 사용양(%) - 부가적으로 밑에 전체 CPU 양(Core)과 사용된 양도 표기됨 |
Cluster Memory Usage(Used/Total) | 현재 클러스터 내 노드의 Memory 전체 중 사용양(%) - 부가적으로 밑에 전체 Memory 양(Gib)과 사용된 양도 표기됨 | |
Cluster DIsk Usage(Used/Total) | 현재 클러스터 내 노드의 DIsk 전체 중 사용양(%) - 부가적으로 밑에 전체 DIsk 양(Gib)과 사용된 양도 표기됨 | |
Pod Count by namespace | Namespace별로 kubernetes에 등록된 Pod의 개수 | |
Container Count by namespace | Namespace별로 kubernetes에 등록된 Container의 개수 |
Kubernetes: Performance Overview : API Server Requests/Latency, Pod/Container Running Trands, Creating Rate 등
Pannel 명 | 설명 |
---|---|
APIServer Request Rate | APIServer에서 2분 단위로 Request한 합계 |
APIServer Latency | APIServer가 request latencies한 평균 |
Kubelet POD Start Latency | Latency in microseconds for a single pod to go from pending to running. Broken down by podname. |
Running Pod Trands | kubelet에서 'running'상태인 pod의 개수 |
Create Rate of Pods | kubelet에서 2분 동안 새로 생성된 Pod의 비율 |
Running Containers Trands | kubelet에서 'running'상태인 Containers의 개수 |
Create Rate of Containers | kubelet에서 2분 동안 새로 생성된 Container의 비율 |
Kubernetes: Resource Requests : Node의 CPU/Memory usages, Pod count에 대한 정보를 표시
Container Dashboards
Kubernetes: DaemonSet Overview : Daemonset에 대한 정보 (Replicas, CPU/Memory/Network Usage 등)
Pannel 명 | 설명 |
---|---|
Desired Replicas | 기대하는 daemonset Replica 개수 |
Available Replicas | 사용중인 daemonset Replica 개수 |
Metadata Generation | Metadata로 생성된 daemonset 개수 |
DaemonSet Create Time | 현재로부터 가장 오래 전에 생성된 daemonset의 시간 |
Total CPU | Daemonset으로 생성된 Container들에서 사용된 CPU의 합계 (Core) |
Total Memory | Daemonset으로 생성된 Container들에서 사용된 Memory의 합계 (MiB) |
Total Network | Daemonset으로 생성된 Container들에서 사용된 Network의 합계 (MBps) |
CPU Usage | Daemonset으로 생성된 Container의 CPU의 사용량 |
Memory Usage | Daemonset으로 생성된 Container의 Memory의 사용량 |
Replicas Status | Daemonset의 Replica들의 상태 (Ready / Available / Unavailable / Misscheduled) |
Kubernetes: Deployment Overview : Deployment에 대한 정보 (Replicas, CPU/Memory/Network Usage 등)
Pannel 명 | 설명 |
---|---|
Desired Replicas | 기대하는 deployment Replica 개수 |
Available Replicas | 사용중인 deployment Replica 개수 |
Observed Generation | Observed로 생성된 deployment 개수 |
Metadata Generation | Metadata로 생성된 deployment 개수 |
Deployment Create Time | 현재로부터 가장 오래 전에 생성된 deployment의 시간 |
AVG CPU | Deployment으로 생성된 Container들에서 사용된 CPU의 평균 (Core) |
AVG Memory | Deployment으로 생성된 Container들에서 사용된 Memory의 평균 (MiB) |
AVG Network | Deployment으로 생성된 Container들에서 사용된 Network의 평균 (kBps) |
CPU Usage | Deployment으로 생성된 Container의 CPU의 사용량 |
Memory Usage | Deployment으로 생성된 Container의 Memory의 사용량 |
Replicas Status | Deployment의 Replica들의 상태 (Ready / Available / Unavailable / Misscheduled) |
Spec | Deployment의 Replica들의 Spec (Replicas / Paused) |
Kubernetes: POD Overview : Pod에 대한 정보 (Pod의 status, restart count, pod에서 사용된 CPU/Memory/Network Usage 표시
Pannel 명 | 설명 |
---|---|
POD Count | 선택한 Namespace에 있는 Pod의 개수 |
Pod Status | 선택한 Namespace, Pod의 상태 (Failed / Pending / Running / Succeeded / Unknown) |
Pod Restart Count | 선택한 Namespace, Pod의 Restart 개수 |
POD/Container CPU Usage | 선택한 Namespace, Pod의 Container에서 사용된 CPU의 사용량 및 추이 |
POD/Container Memory Usage | 선택한 Namespace, Pod의 Container에서 사용된 Memory의 사용량 및 추이 |
POD/Container Network Usage | 선택한 Namespace, Pod의 Container에서 사용된 Network의 사용량 및 추이 |
Kubernetes: StatefulSets Overview : StatefulSets에 대한 정보 (Replicas, CPU/Memory/Network Usage 등)
Pannel 명 | 설명 |
---|---|
Desired Replicas | 기대하는 statefulset Replica 개수 |
Available Replicas | 사용중인 statefulset Replica 개수 |
Observed Generation | Observed로 생성된 statefulset 개수 |
Metadata Generation | Metadata로 생성된 statefulset 개수 |
Statefulset Create Time | 현재로부터 가장 오래 전에 생성된 statefulset의 시간 |
Total CPU | Statefulset으로 생성된 Container들에서 사용된 CPU의 합계 (Core) |
Total Memory | Statefulset으로 생성된 Container들에서 사용된 Memory의 합계 (MiB) |
Total Network | Statefulset으로 생성된 Container들에서 사용된 Network의 합계 (MBps) |
CPU Usage | Statefulset으로 생성된 Container의 CPU의 사용량 |
Memory Usage | Statefulset으로 생성된 Container의 Memory의 사용량 |
Replicas Status | Statefulset의 Replica들의 상태 (Corrent / Available) |
System Dashboards
System Disk Space : 각각의 Node에서 사용된 Disk Usage 추이
Pannel 명 | 설명 |
---|---|
Root Disk 용량 체크 | Amount of disk space used and available on various mount points. Running out of disk space on OS volume, database volume or volume used for temporary space can cause downtime. Some storage may also have reduced performance when small amount of space is available. |
System Usage Overview : 각각의 Node에서 사용량 정보 (Idle cpu, DISK I/O, Network received/transmitted, Memory/Disk Usage 등)
Pannel 명 | 설명 |
---|---|
CPU Core 별 Idle | 선택한 Node 내의 CPU들의 5분 동안 Idle 평균 |
System Load(1,5,15) | 선택한 Node가 평균적으로 load되는 비율 (1분 / 5분 / 15분) |
Memory Usage | 선택한 Node에서 사용된 memory의 종류별 사용량(memory used / memory buffers / memory cached / memory free) |
Memory Usage | 선택한 Node에서 사용된 memory의 총 사용비율(%) |
DIsk I/O | 선택한 Node에서 사용된 DIsk의 종류별 사용량(read / written) |
Disk Usage | 선택한 Node에서 사용된 DIsk의 총 사용비율(%) |
Network Interface 별 Received(Byte) | 선택한 Node에서 5분 동안 network로 받았던 bytes 양 |
Network Interface 별 Transmitted(Byte) | 선택한 Node에서 5분 동안 network로 보냈던 bytes 양 |
System: Overview : 각각의 Node에 대한 요약 정보 (Load Average, Swap, CPU/Memory/Network Usage 등)
Pannel 명 | 설명 |
---|---|
System Uptime | 선택한 Node의 선택한 Interval 시간 동안 system에서 uptime된 시간 |
Virtual CPU | 선택한 Node의 현재 Virtual CPU 할당량 |
RAM | 선택한 Node의 현재 Memory 할당량 |
Memory Available | 선택한 Node의 현재 Memory 사용비율(%) |
Load Average | 선택한 Node의 선택한 Interval 시간의 평균 Load (min, max, avg 따로 표시) |
Memory | 선택한 Node의 선택한 Interval 시간의 종류별(Total / Used / Available) Memory 사용량(Gib) - min, max, avg 따로 표시 |
CPU Usage | 선택한 Node의 선택한 Interval 시간의 idle / user / system / steal / iowait / softirq / nice CPU 사용비율(%) - min, max, avg 따로 표시 |
Memory Distribution | 선택한 Node의 선택한 Interval 시간의 종류별(Cached / Used / Free / Buffers) Memory Distribution 사용량(Gib) - min, max, avg 따로 표시 |
Network Traffic(KBps) | 선택한 Node의 선택한 Interval 시간의 종류별(각 항목별 Inbound / Outbound) Network Traffic 사용량(kBps) - min, max, avg 따로 표시 |
Network Utilization | 선택한 Node의 선택한 Interval 시간의 종류별(Sent / Received) Network Utilization 사용량(MiB) - min, max, avg 따로 표시 |
Swap | 선택한 Node의 선택한 Interval 시간의 종류별(Used / Free) Swap 사용량(B) - min, max, avg 따로 표시 |
Swap Activity | 선택한 Node의 선택한 Interval 시간의 종류별(Swap In / Swap Out) Swap Activity 사용량(Bps) - min, max, avg 따로 표시 |
Dashboard 작성 Guide
http://docs.grafana.org/reference/templating/