Skip to content

Commit ab7874c

Browse files
authored
Add cvmfs_memory_usage_bytes metric (#8)
1 parent 9bb23fb commit ab7874c

File tree

1 file changed

+25
-3
lines changed

1 file changed

+25
-3
lines changed

cvmfs-client-prometheus.sh

Lines changed: 25 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -237,6 +237,17 @@ get_cvmfs_repo_metrics() {
237237
generate_metric 'cvmfs_cpu_user_total' 'counter' 'CPU time used in userspace by CVMFS mount in seconds.' "repo=\"${fqrn}\"" "${cvmfs_user_seconds}"
238238
generate_metric 'cvmfs_cpu_system_total' 'counter' 'CPU time used in the kernel system calls by CVMFS mount in seconds.' "repo=\"${fqrn}\"" "${cvmfs_system_seconds}"
239239

240+
# Add memory usage metric
241+
if [[ -f "/proc/${repo_pid}/status" ]]; then
242+
local memory_usage_kb
243+
memory_usage_kb=$(grep "VmRSS:" "/proc/${repo_pid}/status" | awk '{print $2}')
244+
if [[ -n "${memory_usage_kb}" ]]; then
245+
local memory_usage_bytes
246+
memory_usage_bytes=$((memory_usage_kb * 1000))
247+
generate_metric 'cvmfs_memory_usage_bytes' 'gauge' 'CVMFS process memory usage in bytes.' "repo=\"${fqrn}\"" "${memory_usage_bytes}"
248+
fi
249+
fi
250+
240251
local cvmfs_mount_active_proxy
241252
cvmfs_mount_active_proxy=$(attr -g proxy "${repomountpoint}" | tail -n +2)
242253
generate_metric 'cvmfs_active_proxy' 'gauge' 'Shows the active proxy in use for this mount.' "repo=\"${fqrn}\",proxy=\"${cvmfs_mount_active_proxy}\"" 1
@@ -259,9 +270,20 @@ get_cvmfs_repo_metrics_new() {
259270
# Still need to get maxfd via xattr since it was removed from metrics prometheus
260271
local maxfd_value
261272
maxfd_value=$(attr -g maxfd "${repomountpoint}" | tail -n +2)
262-
local fqrn
263-
fqrn=$(fqrn_for_cvmfs_repo "${reponame}")
264-
generate_metric 'cvmfs_maxfd' 'gauge' 'Shows the maximum number of file descriptors available to file system clients.' "repo=\"${fqrn}\"" "${maxfd_value}"
273+
generate_metric 'cvmfs_maxfd' 'gauge' 'Shows the maximum number of file descriptors available to file system clients.' "repo=\"${reponame}\"" "${maxfd_value}"
274+
275+
# Extract PID from the metrics output and add memory usage metric
276+
local repo_pid
277+
repo_pid=$(grep "cvmfs_pid{repo=\"${reponame}\"}" "${TMPFILE}" | tail -n 1 | awk '{print $2}')
278+
if [[ -n "${repo_pid}" && -f "/proc/${repo_pid}/status" ]]; then
279+
local memory_usage_kb
280+
memory_usage_kb=$(grep "VmRSS:" "/proc/${repo_pid}/status" | awk '{print $2}')
281+
if [[ -n "${memory_usage_kb}" ]]; then
282+
local memory_usage_bytes
283+
memory_usage_bytes=$((memory_usage_kb * 1000))
284+
generate_metric 'cvmfs_memory_usage_bytes' 'gauge' 'CVMFS process memory usage in bytes.' "repo=\"${reponame}\"" "${memory_usage_bytes}"
285+
fi
286+
fi
265287
}
266288

267289
get_repos_from_findmnt() {

0 commit comments

Comments
 (0)