Grafana+prometheus 학습 노트
Prometheus
상용 함수
sum () 괄호 안의 지표 값을 합치다
count () 괄호 안의 지표를 총수로 구합니다
increase() 증가
rate () 는 특정 시간 시퀀스 범위 내의 초당 평균 성장률을 계산한다
irate () 는 일정 시간 범위 내의 어느 순간의 초당 성장률을 계산하는 것을 가리킨다
count_scalar () 값은 시간 시퀀스 벡터의 원소 개수를 표량으로 되돌려줍니다
instance
Prometheus의 경우,pull 샘플링 포인트를 끌어내는 단점 서비스를 instance라고 부른다
Prometheus가 대상을 잡아당기면 다음과 같은 메트릭 이름의 레이블 목록에 두 개의 레이블이 자동으로 추가됩니다.
host:port
up{instance="[instance-id]",job="[job-name]"}
up =1, ; , ,
scrape_duration_seconds{instance="instance-id",job="job-name"}
scrape_samples_post_metric_relabeling{instance="instance-id",job="job-name"}
,
scrape_samples_scraped{instance="instance-id",job="job-name"}
표현식 언어 데이터 형식
s
-seconds(초)m
-minutes(분)h
-hours(시간)d
-days(일)w
-weeks(주)y
-years(년)선택 후 5분 동안 메트릭 지표 이름은 httprequests_total, 탭은job="prometheus"시간 시퀀스 데이터
http_requests_total{job="prometheus"}[5m]
오프셋 수정자
offset
편향 수식자는 검색에서 단일 순간 벡터와 범위 벡터의 시간 편향을 변경할 수 있습니다현재 시간의 5분 전과 비교하면 도량 지표 이름은 nodecpu_seconds_total의 시간 시퀀스 데이터
sum(node_cpu_seconds_total{mode="idle"} offset 5m)
지표 임계값 규정
하드웨어 지표 임계값 설정
CPU
경고:90 경고:98
디스크
경고: 90 경고: 95
메모리
경고:90 경고:98
prometheus 경보 규칙 템플릿
groups:
- name: #
rules:
- alert: # job , 1 metrices alertmanager
expr: #promQL
for: 1m # , ,
labels:
serverity:page #
annotations:
summary: #
description:#
SQL
호스트 IP 찾기
label_values(node_exporter_build_info,instance)
필터 포트의 정규 표현식
/([^:]+):.*/
메모리 사용률
(1 - (node_memory_MemAvailable_bytes{instance=~"$node:9100"} / (node_memory_MemTotal_bytes{instance=~"$node:9100"})))* 100
CPU 코어 수
count(count(node_cpu_seconds_total{instance=~"$node:9100", mode='system'}) by (cpu))
CPU 사용량(5m)
100 - (avg(irate(node_cpu_seconds_total{instance=~"$node",mode="idle"}[5m])) * 100)
CPU 로드율
node_load1{instance=~"$node:9100"}/ count by(job, instance)(count by(job, instance, cpu)(node_cpu_seconds_total{instance=~"$node:9100"}))
node_load1: 1분 동안 cpu의 평균 부하를 가리키며, 같은 cpuload5는 5분 동안 cpu의 평균 부하를 가리키며, cpuload15는 15분 동안 cpu의 평균 부하를 가리킨다
총 메모리
node_memory_MemTotal_bytes{instance=~"$node:9100"}
서버 실행 시간
time() - node_boot_time_seconds{instance=~"$node:9100"}
메모리 사용
총 메모리
node_memory_MemTotal_bytes{instance=~"$node:9100"}
사용된 메모리(총 메모리-유휴 메모리-캐시=사용된 메모리)
node_memory_MemTotal_bytes{instance=~"$node:9100"} - node_memory_MemFree_bytes{instance=~"$node:9100"} - node_memory_Cached_bytes{instance=~"$node:9100"} - node_memory_Buffers_bytes{instance=~"$node:9100"} - node_memory_Slab_bytes{instance=~"$node:9100"}
사용 가능한 메모리
node_memory_MemAvailable_bytes{instance=~"$node:9100"}
Buffers 캐시
node_memory_Buffers_bytes{instance=~"$node:9100"}
Cached 캐시
node_memory_Cached_bytes{instance=~"$node:9100"} + node_memory_Slab_bytes{instance=~"$node:9100"}
Free 유휴 메모리
node_memory_MemFree_bytes{instance=~"$node:9100"}
네트워크 사용 현황
업로드 속도:
irate(node_network_transmit_bytes_total{instance=~'$node:9100',device!~'tap.*|veth.*|br.*|docker.*|virbr*|lo*'}[5m])*8
다운로드 속도:
irate(node_network_receive_bytes_total{instance=~'$node:9100',device!~'tap.*|veth.*|br.*|docker.*|virbr*|lo*'}[5m])*8
Swap 하드 드라이브 스왑
Swap In:
node_vmstat_pswpin{instance=~"$node:9100"}
Swap out:
node_vmstat_pswpout{instance=~"$node:9100"}
현재 열려 있는 파일 설명자
node_filefd_allocated{instance=~"$node:9100"}
루트 파티션 사용률
100 - ((node_filesystem_avail_bytes{instance=~"$node:9100",mountpoint="/",fstype=~"ext4|xfs"} * 100) / node_filesystem_size_bytes {instance=~"$node:9100",mountpoint="/",fstype=~"ext4|xfs"})
최대 파티션 사용률
100 - ((node_filesystem_avail_bytes{instance=~"$node:9100",mountpoint="$maxmount",fstype=~"ext4|xfs"} * 100) / node_filesystem_size_bytes {instance=~"$node:9100",mountpoint="$maxmount",fstype=~"ext4|xfs"})
시스템 평균 부하
1분
node_load1{instance=~"$node:9100"}
5분
node_load5{instance=~"$node:9100"}
15분
node_load15{instance=~"$node:9100"}
총 디스크 공간
node_filesystem_size_bytes {instance=~"$node:9100",fstype=~"ext4|xfs"}
파티션별 여유 공간
node_filesystem_avail_bytes {instance=~'$node',fstype=~"ext4|xfs"}
node_filesystem_size_bytes{instance=~'$node',fstype=~"ext4|xfs"}
1-(node_filesystem_free_bytes{instance=~'$node',fstype=~"ext4|xfs"} / node_filesystem_size_bytes{instance=~'$node',fstype=~"ext4|xfs"})
CPU 사용량, 초당 디스크 I/O 작업 소요 시간(%)
avg(irate(node_cpu_seconds_total{instance=~"$node:9100",mode="system"}[5m])) by (instance)
avg(irate(node_cpu_seconds_total{instance=~"$node:9100",mode="user"}[5m])) by (instance)
avg(irate(node_cpu_seconds_total{instance=~"$node:9100",mode="idle"}[5m])) by (instance)
avg(irate(node_cpu_seconds_total{instance=~"$node:9100",mode="iowait"}[5m])) by (instance)
irate(node_disk_io_time_seconds_total{instance=~"$node:9100"}[5m])
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.