Skip to content

Commit d50423a

Browse files
committed
refactor: S3 요청량 감소 - 라벨제거
1 parent 464cbe0 commit d50423a

1 file changed

Lines changed: 3 additions & 82 deletions

File tree

monitoring/promtail/config.yml

Lines changed: 3 additions & 82 deletions
Original file line numberDiff line numberDiff line change
@@ -18,97 +18,19 @@ scrape_configs:
1818
refresh_interval: 1m # 컨테이너 변경 감지 주기
1919

2020
relabel_configs:
21-
# ────────────────────────────────────────────────────────────
22-
# 1) 'job' 라벨 할당 (순서 중요!)
23-
# - 먼저 모든 로그에 'default-container-logs'를 할당합니다.
24-
# - 그 다음 특정 컨테이너에 대해 이 라벨을 덮어씁니다.
25-
# ────────────────────────────────────────────────────────────
26-
# 모든 로그에 기본 'job' 라벨 할당 (fallback)
27-
- source_labels: ['__meta_docker_container_name']
28-
regex: '.*'
29-
replacement: 'default-container-logs'
30-
target_label: 'job'
31-
action: replace
32-
33-
# Spring Boot 앱 컨테이너에 'spring-boot-app' job 라벨 할당
34-
- source_labels: ['__meta_docker_container_name']
35-
regex: '/?lastdance-(blue-app|green-app)'
36-
replacement: 'spring-boot-app'
37-
target_label: 'job'
38-
action: replace
39-
40-
# 모니터링 스택 컨테이너에 'monitoring-stack' job 라벨 할당
41-
- source_labels: ['__meta_docker_container_name']
42-
regex: '/?(prometheus|grafana|node-exporter|loki|promtail|alertmanager)' # alertmanager 추가
43-
replacement: 'monitoring-stack'
44-
target_label: 'job'
45-
action: replace
46-
47-
# ────────────────────────────────────────────────────────────
48-
# 2) 'instance' 라벨 할당 (각 서비스의 고유 식별자)
49-
# ────────────────────────────────────────────────────────────
50-
# 앱 컨테이너 instance: blue-app:8080, green-app:8081 형태
51-
- source_labels: ['__meta_docker_container_name','__meta_docker_container_port']
52-
regex: '/?lastdance-(blue-app|green-app).*?;(.*)'
53-
replacement: '$1:$2'
54-
target_label: 'instance'
55-
action: replace
56-
57-
# 모니터링 스택 각 컴포넌트 instance 라벨
58-
- source_labels: ['__meta_docker_container_name']
59-
regex: '/?prometheus'
60-
replacement: 'prometheus:9090'
61-
target_label: 'instance'
62-
action: replace
63-
- source_labels: ['__meta_docker_container_name']
64-
regex: '/?grafana'
65-
replacement: 'grafana:3000'
66-
target_label: 'instance'
67-
action: replace
68-
- source_labels: ['__meta_docker_container_name']
69-
regex: '/?node-exporter'
70-
replacement: 'node-exporter:9100'
71-
target_label: 'instance'
72-
action: replace
73-
- source_labels: ['__meta_docker_container_name']
74-
regex: '/?loki'
75-
replacement: 'loki:3100'
76-
target_label: 'instance'
77-
action: replace
78-
- source_labels: ['__meta_docker_container_name']
79-
regex: '/?promtail'
80-
replacement: 'promtail:9080'
81-
target_label: 'instance'
82-
action: replace
83-
- source_labels: ['__meta_docker_container_name']
84-
regex: '/?alertmanager' # alertmanager 추가
85-
replacement: 'alertmanager:9093'
86-
target_label: 'instance'
87-
action: replace
88-
89-
# ────────────────────────────────────────────────────────────
90-
# 3) 기타 유용한 라벨 할당
91-
# ────────────────────────────────────────────────────────────
9221
# 'container_name' 라벨: 실제 컨테이너 이름만 추출 (예: 'lastdance-blue-app')
9322
- source_labels: ['__meta_docker_container_name']
9423
regex: '/(.*)'
9524
replacement: '$1'
9625
target_label: 'container_name'
9726
action: replace
9827

99-
# 'image' 라벨: Docker 이미지 이름만 추출 (예: 'lastdance-ecr')
100-
- source_labels: ['__meta_docker_image']
101-
regex: '.*/(.*):.*'
102-
replacement: '$1'
103-
target_label: 'image'
104-
action: replace
105-
10628
pipeline_stages:
10729
- docker: {} # Docker JSON 로그 파싱
10830

10931
# Spring Boot 표준 로그 정규식
11032
- match:
111-
selector: '{job="spring-boot-app"}'
33+
selector: '{container_name=~"lastdance-(blue|green)-app"}'
11234
stages:
11335
- regex:
11436
expression: '^(?P<timestamp>\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z)\s+(?P<level>\S+)\s+(?P<pid>\d+)\s+---\s+\[(?P<logger>[a-zA-Z0-9.$]+)\]\s+:\s+(?P<message>.*)$'
@@ -117,11 +39,10 @@ scrape_configs:
11739
format: RFC3339Nano
11840
- labels:
11941
level:
120-
logger:
12142

12243
# 'monitoring-stack' job의 로그에만 logfmt을 적용합니다.
12344
- match:
124-
selector: '{job="monitoring-stack"}'
45+
selector: '{container_name=~"(prometheus|grafana|node-exporter|loki|promtail|alertmanager)"}'
12546
stages:
12647
- logfmt:
12748
# 로그에 나타나는 key=value 쌍 중 추출하고 싶은 필드들을 명시합니다.
@@ -137,7 +58,7 @@ scrape_configs:
13758
format: RFC3339Nano
13859
- labels:
13960
level:
140-
component:
14161
# 필요하다면 다른 추출 필드를 라벨로 추가할 수 있습니다:
62+
#component:
14263
# caller:
14364
# err:

0 commit comments

Comments
 (0)