일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- performance스키마
- 마운트
- sessionManager
- InnoDB
- x lock s lock
- S3 Interface Endpoint
- ix is lock
- SessionManager 터널링
- 도커
- BastianHost
- ec2
- 온라인 ddl
- mysql 구조
- innodb 버퍼풀
- s3
- mysql 아키텍쳐
- mysql 엔진
- 밑바닥부터 구현하는 컴퓨팅 시스템
- innodb구조
- 리눅스
- 운용 시 유용한 쿼리
- S3 private통신
- 어뎁티브 해시 인덱스
- S3 Gateway Endpoint
- s3 sync
- nandtotetris
- 필수 스크립트
- 안전하게 테이블 변경
- MySQL
- Terraform
- Today
- Total
이것이 점프 투 공작소
프로메테우스 PUSHGATEWAY에 대해 알아보자 본문
PUSHGATEWAY란?
프로메테우스에서 Metric 수집을 위한 PUSH 기반 컴포넌트입니다.
단발성 또는 배치성 작업에 대한 메트릭을 수집하기 위해 사용됩니다.
여러 인스턴스가 PUSH-GATEWAY에 같은 JOB을 전송하면 PUSH-GATEWAY는 전송된 마지막 데이터만 유지합니다.
PUSHGATEWAY 설치
docker-compose 파일로 pushgateway 이미지를 실행시킵니다.
push-gateway가 실행되면 지정한 포트로 웹페이지를 실행시킬 수 있습니다.
version: '3'
services:
pushgateway:
image: prom/pushgateway:latest
ports:
- 9091:9091
프로메테우스 JOB 등록
prometheus.yml에 push-gateway의 스크랩 job을 추가합니다.
추가 후 프로메테우스를 재시작하거나 아래 API를 통해 설정을 reload합니다.
curl -X POST http://프로메테우스IP:<포트>/-/reload
prometheus.yml 추가할 push-gateway 설정
- job_name: push-gateway
scrape_interval: 15s
honor_labels: true
static_configs:
- targets: [ 'host.docker.internal:9091' ]
- scrape_interval : push-gateway에서 프로메테우스로 스크랩할 시간을 설정합니다.
- honor_labels: push-gateway로 push되는 메트릭은 instance 레이블을 포함하지 않기에 최초 push-gateway로 push되었던 메트릭의 레이블을 포함켜 프로메테우스로 가져올지에 대한 옵션입니다.
파이썬 -> PUSH-GATEWAY 메트릭 등록
prometheus_client라이브러리의 pushadd_to_gateway를 사용하여 push-gateway로 메트릭을 전송합니다.
작업 중간에 duration이라는 gauge 메트릭에 registry옵션을 통해 push-gateway의 registry로 연결후 pushadd_to_gateway로 전송하는 로직을 추가했습니다.
일반적으로 배치작업의 마지막 finally 부분에서 push-gateway로 전송하는 로직을 실행시킵니다.(저는 따로 구현하지는 않았습니다..!)
API 호출
아래 스크립트를 통해 해당 API를 10번 호출하였습니다.
#!/bin/bash
for ((i=1; i<=10; i++))
do
response=$(curl -s http://localhost:8088/hello)
echo "Response $i: $response"
sleep 1
done
PUSH-GATEWAY의 메트릭 데이터
push-gateway의 주소로 들어가 확인해보면 아래처럼 메트릭이 수집되어있는 모습을 볼 수 있습니다.
<push-gateway IP>:<port>/metrics의 API 에서도 해당 메트릭을 확인 할 수 있습니다.
프로메테우스에서 확인
up 명령어를 통해 실행중인 push-gateway를 확인 할 수 있고
push-gateway에서 스크랩해온 메트릭 또한 조회 가능합니다.
'모니터링' 카테고리의 다른 글
프로메테우스의 집계 연산자 (0) | 2023.08.28 |
---|---|
프로메테우스의 메트릭(Metric)에 대해 알아보자 (0) | 2023.08.19 |