Prometheus에서 레이블별로 팟(Pod) 찾기
우리 뭐하는거야?
Kubernetes SD 구성을 사용하면 클러스터 상태와 동기화 상태를 유지하기 위해 Kubernetes의 REST API에서 스크랩 대상을 검색할 수 있습니다.
the Prometheus Python client을 사용하여 메트릭을 내보내는 Python 프로그램의 이미지를 만들었습니다. 환경 변수EXPORTER_PORT
를 설정하면 메트릭이 해당 포트에 게시됩니다.
레이블이 foo
및 bar
인 포드에 이 컨테이너를 배포하고 메트릭을 각각 포트 9000 및 8000으로 보냈습니다. 아래 Prometheus 구성에서 레이블 이름별로 별도로 대상을 지정하는 것을 볼 수 있습니다.
왜 이렇게 해야 할까요?
내 클러스터에서 Pod별로 다른 스크랩 구성을 원하는 경우를 찾았습니다. 일반적으로 kubernetes_sd_configs
역할을 service
로 설정하여 각 서비스에 대한 각 서비스 포트에 대한 대상을 검색할 수 있습니다(docs 참조). 그러나이 경우 k8s 추상화 내부의 포드에 대해 다른 수집 요구 사항이 있습니다.
구성 파일 예
푸 배포
apiVersion: apps/v1
kind: Deployment
metadata:
name: foo-deployment
labels:
app: foo
spec:
selector:
matchLabels:
app: foo
replicas: 2
template:
metadata:
labels:
app: foo
spec:
containers:
- name: python-prometheus-exporter-example
image: ahf90/python-prometheus-exporter-example
imagePullPolicy: Always
ports:
- containerPort: 9000
env:
- name: EXPORTER_PORT
value: '9000'
바 배치
apiVersion: apps/v1
kind: Deployment
metadata:
name: bar-deployment
labels:
app: bar
spec:
selector:
matchLabels:
app: bar
replicas: 2
template:
metadata:
labels:
app: bar
spec:
containers:
- name: python-prometheus-exporter-example
image: ahf90/python-prometheus-exporter-example
imagePullPolicy: Always
ports:
- containerPort: 8000
env:
- name: EXPORTER_PORT
value: '8000'
프로메테우스 구성.yml
scrape_configs:
- job_name: 'prometheus'
static_configs:
- targets: ['localhost:9090']
- job_name: 'foo-targets'
scrape_interval: 10s
metrics_path: '/'
kubernetes_sd_configs:
- role: pod
namespaces:
names:
- default
selectors:
- role: "pod"
label: "app=foo"
- job_name: 'bar-targets'
scrape_interval: 5s
metrics_path: '/'
kubernetes_sd_configs:
- role: pod
namespaces:
names:
- default
selectors:
- role: "pod"
label: "app=bar"
Reference
이 문제에 관하여(Prometheus에서 레이블별로 팟(Pod) 찾기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/ahf90/discover-pods-by-label-in-prometheus-2ldm
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
내 클러스터에서 Pod별로 다른 스크랩 구성을 원하는 경우를 찾았습니다. 일반적으로
kubernetes_sd_configs
역할을 service
로 설정하여 각 서비스에 대한 각 서비스 포트에 대한 대상을 검색할 수 있습니다(docs 참조). 그러나이 경우 k8s 추상화 내부의 포드에 대해 다른 수집 요구 사항이 있습니다.구성 파일 예
푸 배포
apiVersion: apps/v1
kind: Deployment
metadata:
name: foo-deployment
labels:
app: foo
spec:
selector:
matchLabels:
app: foo
replicas: 2
template:
metadata:
labels:
app: foo
spec:
containers:
- name: python-prometheus-exporter-example
image: ahf90/python-prometheus-exporter-example
imagePullPolicy: Always
ports:
- containerPort: 9000
env:
- name: EXPORTER_PORT
value: '9000'
바 배치
apiVersion: apps/v1
kind: Deployment
metadata:
name: bar-deployment
labels:
app: bar
spec:
selector:
matchLabels:
app: bar
replicas: 2
template:
metadata:
labels:
app: bar
spec:
containers:
- name: python-prometheus-exporter-example
image: ahf90/python-prometheus-exporter-example
imagePullPolicy: Always
ports:
- containerPort: 8000
env:
- name: EXPORTER_PORT
value: '8000'
프로메테우스 구성.yml
scrape_configs:
- job_name: 'prometheus'
static_configs:
- targets: ['localhost:9090']
- job_name: 'foo-targets'
scrape_interval: 10s
metrics_path: '/'
kubernetes_sd_configs:
- role: pod
namespaces:
names:
- default
selectors:
- role: "pod"
label: "app=foo"
- job_name: 'bar-targets'
scrape_interval: 5s
metrics_path: '/'
kubernetes_sd_configs:
- role: pod
namespaces:
names:
- default
selectors:
- role: "pod"
label: "app=bar"
Reference
이 문제에 관하여(Prometheus에서 레이블별로 팟(Pod) 찾기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/ahf90/discover-pods-by-label-in-prometheus-2ldm
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
apiVersion: apps/v1
kind: Deployment
metadata:
name: foo-deployment
labels:
app: foo
spec:
selector:
matchLabels:
app: foo
replicas: 2
template:
metadata:
labels:
app: foo
spec:
containers:
- name: python-prometheus-exporter-example
image: ahf90/python-prometheus-exporter-example
imagePullPolicy: Always
ports:
- containerPort: 9000
env:
- name: EXPORTER_PORT
value: '9000'
apiVersion: apps/v1
kind: Deployment
metadata:
name: bar-deployment
labels:
app: bar
spec:
selector:
matchLabels:
app: bar
replicas: 2
template:
metadata:
labels:
app: bar
spec:
containers:
- name: python-prometheus-exporter-example
image: ahf90/python-prometheus-exporter-example
imagePullPolicy: Always
ports:
- containerPort: 8000
env:
- name: EXPORTER_PORT
value: '8000'
scrape_configs:
- job_name: 'prometheus'
static_configs:
- targets: ['localhost:9090']
- job_name: 'foo-targets'
scrape_interval: 10s
metrics_path: '/'
kubernetes_sd_configs:
- role: pod
namespaces:
names:
- default
selectors:
- role: "pod"
label: "app=foo"
- job_name: 'bar-targets'
scrape_interval: 5s
metrics_path: '/'
kubernetes_sd_configs:
- role: pod
namespaces:
names:
- default
selectors:
- role: "pod"
label: "app=bar"
Reference
이 문제에 관하여(Prometheus에서 레이블별로 팟(Pod) 찾기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/ahf90/discover-pods-by-label-in-prometheus-2ldm텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)