Skip to content

Commit 505fe34

Browse files
sas1024estahn
andauthored
feat: add scrape_url as prometheus label for each metric (#72)
Co-authored-by: Alexander Korelskiy <[email protected]> Co-authored-by: Enrico Stahn <[email protected]>
1 parent d110606 commit 505fe34

File tree

1 file changed

+37
-37
lines changed

1 file changed

+37
-37
lines changed

phpfpm/exporter.go

Lines changed: 37 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -62,109 +62,109 @@ func NewExporter(pm PoolManager) *Exporter {
6262
up: prometheus.NewDesc(
6363
prometheus.BuildFQName(namespace, "", "up"),
6464
"Could PHP-FPM be reached?",
65-
[]string{"pool"},
65+
[]string{"pool", "scrape_uri"},
6666
nil),
6767

6868
scrapeFailues: prometheus.NewDesc(
6969
prometheus.BuildFQName(namespace, "", "scrape_failures"),
7070
"The number of failures scraping from PHP-FPM.",
71-
[]string{"pool"},
71+
[]string{"pool", "scrape_uri"},
7272
nil),
7373

7474
startSince: prometheus.NewDesc(
7575
prometheus.BuildFQName(namespace, "", "start_since"),
7676
"The number of seconds since FPM has started.",
77-
[]string{"pool"},
77+
[]string{"pool", "scrape_uri"},
7878
nil),
7979

8080
acceptedConnections: prometheus.NewDesc(
8181
prometheus.BuildFQName(namespace, "", "accepted_connections"),
8282
"The number of requests accepted by the pool.",
83-
[]string{"pool"},
83+
[]string{"pool", "scrape_uri"},
8484
nil),
8585

8686
listenQueue: prometheus.NewDesc(
8787
prometheus.BuildFQName(namespace, "", "listen_queue"),
8888
"The number of requests in the queue of pending connections.",
89-
[]string{"pool"},
89+
[]string{"pool", "scrape_uri"},
9090
nil),
9191

9292
maxListenQueue: prometheus.NewDesc(
9393
prometheus.BuildFQName(namespace, "", "max_listen_queue"),
9494
"The maximum number of requests in the queue of pending connections since FPM has started.",
95-
[]string{"pool"},
95+
[]string{"pool", "scrape_uri"},
9696
nil),
9797

9898
listenQueueLength: prometheus.NewDesc(
9999
prometheus.BuildFQName(namespace, "", "listen_queue_length"),
100100
"The size of the socket queue of pending connections.",
101-
[]string{"pool"},
101+
[]string{"pool", "scrape_uri"},
102102
nil),
103103

104104
idleProcesses: prometheus.NewDesc(
105105
prometheus.BuildFQName(namespace, "", "idle_processes"),
106106
"The number of idle processes.",
107-
[]string{"pool"},
107+
[]string{"pool", "scrape_uri"},
108108
nil),
109109

110110
activeProcesses: prometheus.NewDesc(
111111
prometheus.BuildFQName(namespace, "", "active_processes"),
112112
"The number of active processes.",
113-
[]string{"pool"},
113+
[]string{"pool", "scrape_uri"},
114114
nil),
115115

116116
totalProcesses: prometheus.NewDesc(
117117
prometheus.BuildFQName(namespace, "", "total_processes"),
118118
"The number of idle + active processes.",
119-
[]string{"pool"},
119+
[]string{"pool", "scrape_uri"},
120120
nil),
121121

122122
maxActiveProcesses: prometheus.NewDesc(
123123
prometheus.BuildFQName(namespace, "", "max_active_processes"),
124124
"The maximum number of active processes since FPM has started.",
125-
[]string{"pool"},
125+
[]string{"pool", "scrape_uri"},
126126
nil),
127127

128128
maxChildrenReached: prometheus.NewDesc(
129129
prometheus.BuildFQName(namespace, "", "max_children_reached"),
130130
"The number of times, the process limit has been reached, when pm tries to start more children (works only for pm 'dynamic' and 'ondemand').",
131-
[]string{"pool"},
131+
[]string{"pool", "scrape_uri"},
132132
nil),
133133

134134
slowRequests: prometheus.NewDesc(
135135
prometheus.BuildFQName(namespace, "", "slow_requests"),
136136
"The number of requests that exceeded your 'request_slowlog_timeout' value.",
137-
[]string{"pool"},
137+
[]string{"pool", "scrape_uri"},
138138
nil),
139139

140140
processRequests: prometheus.NewDesc(
141141
prometheus.BuildFQName(namespace, "", "process_requests"),
142142
"The number of requests the process has served.",
143-
[]string{"pool", "pid_hash"},
143+
[]string{"pool", "pid_hash", "scrape_uri"},
144144
nil),
145145

146146
processLastRequestMemory: prometheus.NewDesc(
147147
prometheus.BuildFQName(namespace, "", "process_last_request_memory"),
148148
"The max amount of memory the last request consumed.",
149-
[]string{"pool", "pid_hash"},
149+
[]string{"pool", "pid_hash", "scrape_uri"},
150150
nil),
151151

152152
processLastRequestCPU: prometheus.NewDesc(
153153
prometheus.BuildFQName(namespace, "", "process_last_request_cpu"),
154154
"The %cpu the last request consumed.",
155-
[]string{"pool", "pid_hash"},
155+
[]string{"pool", "pid_hash", "scrape_uri"},
156156
nil),
157157

158158
processRequestDuration: prometheus.NewDesc(
159159
prometheus.BuildFQName(namespace, "", "process_request_duration"),
160160
"The duration in microseconds of the requests.",
161-
[]string{"pool", "pid_hash"},
161+
[]string{"pool", "pid_hash", "scrape_uri"},
162162
nil),
163163

164164
processState: prometheus.NewDesc(
165165
prometheus.BuildFQName(namespace, "", "process_state"),
166166
"The state of the process (Idle, Running, ...).",
167-
[]string{"pool", "pid_hash", "state"},
167+
[]string{"pool", "pid_hash", "state", "scrape_uri"},
168168
nil),
169169
}
170170
}
@@ -179,10 +179,10 @@ func (e *Exporter) Collect(ch chan<- prometheus.Metric) {
179179
}
180180

181181
for _, pool := range e.PoolManager.Pools {
182-
ch <- prometheus.MustNewConstMetric(e.scrapeFailues, prometheus.CounterValue, float64(pool.ScrapeFailures), pool.Name)
182+
ch <- prometheus.MustNewConstMetric(e.scrapeFailues, prometheus.CounterValue, float64(pool.ScrapeFailures), pool.Name, pool.Address)
183183

184184
if pool.ScrapeError != nil {
185-
ch <- prometheus.MustNewConstMetric(e.up, prometheus.GaugeValue, 0, pool.Name)
185+
ch <- prometheus.MustNewConstMetric(e.up, prometheus.GaugeValue, 0, pool.Name, pool.Address)
186186
log.Errorf("Error scraping PHP-FPM: %v", pool.ScrapeError)
187187
continue
188188
}
@@ -198,26 +198,26 @@ func (e *Exporter) Collect(ch chan<- prometheus.Metric) {
198198
total = pool.TotalProcesses
199199
}
200200

201-
ch <- prometheus.MustNewConstMetric(e.up, prometheus.GaugeValue, 1, pool.Name)
202-
ch <- prometheus.MustNewConstMetric(e.startSince, prometheus.CounterValue, float64(pool.StartSince), pool.Name)
203-
ch <- prometheus.MustNewConstMetric(e.acceptedConnections, prometheus.CounterValue, float64(pool.AcceptedConnections), pool.Name)
204-
ch <- prometheus.MustNewConstMetric(e.listenQueue, prometheus.GaugeValue, float64(pool.ListenQueue), pool.Name)
205-
ch <- prometheus.MustNewConstMetric(e.maxListenQueue, prometheus.CounterValue, float64(pool.MaxListenQueue), pool.Name)
206-
ch <- prometheus.MustNewConstMetric(e.listenQueueLength, prometheus.GaugeValue, float64(pool.ListenQueueLength), pool.Name)
207-
ch <- prometheus.MustNewConstMetric(e.idleProcesses, prometheus.GaugeValue, float64(idle), pool.Name)
208-
ch <- prometheus.MustNewConstMetric(e.activeProcesses, prometheus.GaugeValue, float64(active), pool.Name)
209-
ch <- prometheus.MustNewConstMetric(e.totalProcesses, prometheus.GaugeValue, float64(total), pool.Name)
210-
ch <- prometheus.MustNewConstMetric(e.maxActiveProcesses, prometheus.CounterValue, float64(pool.MaxActiveProcesses), pool.Name)
211-
ch <- prometheus.MustNewConstMetric(e.maxChildrenReached, prometheus.CounterValue, float64(pool.MaxChildrenReached), pool.Name)
212-
ch <- prometheus.MustNewConstMetric(e.slowRequests, prometheus.CounterValue, float64(pool.SlowRequests), pool.Name)
201+
ch <- prometheus.MustNewConstMetric(e.up, prometheus.GaugeValue, 1, pool.Name, pool.Address)
202+
ch <- prometheus.MustNewConstMetric(e.startSince, prometheus.CounterValue, float64(pool.StartSince), pool.Name, pool.Address)
203+
ch <- prometheus.MustNewConstMetric(e.acceptedConnections, prometheus.CounterValue, float64(pool.AcceptedConnections), pool.Name, pool.Address)
204+
ch <- prometheus.MustNewConstMetric(e.listenQueue, prometheus.GaugeValue, float64(pool.ListenQueue), pool.Name, pool.Address)
205+
ch <- prometheus.MustNewConstMetric(e.maxListenQueue, prometheus.CounterValue, float64(pool.MaxListenQueue), pool.Name, pool.Address)
206+
ch <- prometheus.MustNewConstMetric(e.listenQueueLength, prometheus.GaugeValue, float64(pool.ListenQueueLength), pool.Name, pool.Address)
207+
ch <- prometheus.MustNewConstMetric(e.idleProcesses, prometheus.GaugeValue, float64(idle), pool.Name, pool.Address)
208+
ch <- prometheus.MustNewConstMetric(e.activeProcesses, prometheus.GaugeValue, float64(active), pool.Name, pool.Address)
209+
ch <- prometheus.MustNewConstMetric(e.totalProcesses, prometheus.GaugeValue, float64(total), pool.Name, pool.Address)
210+
ch <- prometheus.MustNewConstMetric(e.maxActiveProcesses, prometheus.CounterValue, float64(pool.MaxActiveProcesses), pool.Name, pool.Address)
211+
ch <- prometheus.MustNewConstMetric(e.maxChildrenReached, prometheus.CounterValue, float64(pool.MaxChildrenReached), pool.Name, pool.Address)
212+
ch <- prometheus.MustNewConstMetric(e.slowRequests, prometheus.CounterValue, float64(pool.SlowRequests), pool.Name, pool.Address)
213213

214214
for _, process := range pool.Processes {
215215
pidHash := calculateProcessHash(process)
216-
ch <- prometheus.MustNewConstMetric(e.processState, prometheus.GaugeValue, 1, pool.Name, pidHash, process.State)
217-
ch <- prometheus.MustNewConstMetric(e.processRequests, prometheus.CounterValue, float64(process.Requests), pool.Name, pidHash)
218-
ch <- prometheus.MustNewConstMetric(e.processLastRequestMemory, prometheus.GaugeValue, float64(process.LastRequestMemory), pool.Name, pidHash)
219-
ch <- prometheus.MustNewConstMetric(e.processLastRequestCPU, prometheus.GaugeValue, process.LastRequestCPU, pool.Name, pidHash)
220-
ch <- prometheus.MustNewConstMetric(e.processRequestDuration, prometheus.GaugeValue, float64(process.RequestDuration), pool.Name, pidHash)
216+
ch <- prometheus.MustNewConstMetric(e.processState, prometheus.GaugeValue, 1, pool.Name, pidHash, process.State, pool.Address)
217+
ch <- prometheus.MustNewConstMetric(e.processRequests, prometheus.CounterValue, float64(process.Requests), pool.Name, pidHash, pool.Address)
218+
ch <- prometheus.MustNewConstMetric(e.processLastRequestMemory, prometheus.GaugeValue, float64(process.LastRequestMemory), pool.Name, pidHash, pool.Address)
219+
ch <- prometheus.MustNewConstMetric(e.processLastRequestCPU, prometheus.GaugeValue, process.LastRequestCPU, pool.Name, pidHash, pool.Address)
220+
ch <- prometheus.MustNewConstMetric(e.processRequestDuration, prometheus.GaugeValue, float64(process.RequestDuration), pool.Name, pidHash, pool.Address)
221221
}
222222
}
223223
}

0 commit comments

Comments
 (0)