|
| 1 | +#!/usr/bin/awk -f |
| 2 | +# |
| 3 | +# usage: |
| 4 | +# |
| 5 | +# % /usr/bin/mfscli -ns"#" -SIM -SMU -SIG -SCS -SIC -SSC -SQU | ./mfscli2prom.awk |
| 6 | +# |
| 7 | +# moosefs >= v3.0.105 |
| 8 | +# |
| 9 | + |
| 10 | +BEGIN { |
| 11 | + FS="[#:|]" |
| 12 | +} |
| 13 | + |
| 14 | +function SCS() { |
| 15 | + k=gensub(/\s/, "_", "g", $1); |
| 16 | + printf "moosefs_%s_load{ip=\"%s\",port=\"%s\",id=\"%s\",labels=\"%s\",version=\"%s\"} %s\n", k,$3,$4,$5,$6,$7,$8; |
| 17 | + |
| 18 | + if ($9 ~ /maintenance_off/) { |
| 19 | + printf "moosefs_%s_maintenance{ip=\"%s\",port=\"%s\",id=\"%s\",labels=\"%s\",version=\"%s\"} 0\n", k,$3,$4,$5,$6,$7; |
| 20 | + } else { |
| 21 | + printf "moosefs_%s_maintenance{ip=\"%s\",port=\"%s\",id=\"%s\",labels=\"%s\",version=\"%s\"} 0\n", k,$3,$4,$5,$6,$7; |
| 22 | + } |
| 23 | + |
| 24 | + printf "moosefs_%s_regular_hdd_space_chunks{ip=\"%s\",port=\"%s\",id=\"%s\",labels=\"%s\",version=\"%s\"} %s\n", k,$3,$4,$5,$6,$7,$10; |
| 25 | + printf "moosefs_%s_regular_hdd_space_used{ip=\"%s\",port=\"%s\",id=\"%s\",labels=\"%s\",version=\"%s\"} %s\n", k,$3,$4,$5,$6,$7,$11; |
| 26 | + printf "moosefs_%s_regular_hdd_space_total{ip=\"%s\",port=\"%s\",id=\"%s\",labels=\"%s\",version=\"%s\"} %s\n", k,$3,$4,$5,$6,$7,$12; |
| 27 | + |
| 28 | + printf "moosefs_%s_removal_hdd_space_chunks{ip=\"%s\",port=\"%s\",id=\"%s\",labels=\"%s\",version=\"%s\"} %s\n", k,$3,$4,$5,$6,$7,$14; |
| 29 | + printf "moosefs_%s_removal_hdd_space_used{ip=\"%s\",port=\"%s\",id=\"%s\",labels=\"%s\",version=\"%s\"} %s\n", k,$3,$4,$5,$6,$7,$15; |
| 30 | + printf "moosefs_%s_removal_hdd_space_total{ip=\"%s\",port=\"%s\",id=\"%s\",labels=\"%s\",version=\"%s\"} %s\n", k,$3,$4,$5,$6,$7,$16; |
| 31 | + |
| 32 | +} |
| 33 | + |
| 34 | +function is_number(x) { return x+0 == x } |
| 35 | +function SIG() { |
| 36 | + if (!is_number($NF)) next |
| 37 | + |
| 38 | + v=$NF; |
| 39 | + $(NF--); |
| 40 | + |
| 41 | + k=$0; |
| 42 | + k=gensub(/\s+/, "_", "g", k); |
| 43 | + k=gensub(/[()]/, "", "g", k); |
| 44 | + k=tolower(k) |
| 45 | + |
| 46 | + print "moosefs_"k,v |
| 47 | +} |
| 48 | + |
| 49 | +function SIM() { |
| 50 | + k=gensub(/\s/, "_", "g", $1); |
| 51 | + |
| 52 | + printf "moosefs_%s_metadata_version{ip=\"%s\", version=\"%s\"} %d\n", k,$3,$4,gensub(/[ ]/, "", "g", $7) |
| 53 | + printf "moosefs_%s_ram_used{ip=\"%s\", version=\"%s\"} %d\n", k,$3,$4,$9 |
| 54 | + |
| 55 | + printf "moosefs_%s_cpu_used_all{ip=\"%s\", version=\"%s\"} %f\n", k,$3,$4,gensub(/(.*)%.*/, "\\1", "g", $11) |
| 56 | + printf "moosefs_%s_cpu_used_sys{ip=\"%s\", version=\"%s\"} %f\n", k,$3,$4,gensub(/(.*)%.*/, "\\1", "g", $12) |
| 57 | + printf "moosefs_%s_cpu_used_user{ip=\"%s\", version=\"%s\"} %f\n", k,$3,$4,gensub(/(.*)%.*/, "\\1", "g", $13) |
| 58 | + printf "moosefs_%s_last_meta_save{ip=\"%s\", version=\"%s\", cksum=\"%s\"} %d\n", k,$3,$4,$NF,$14 |
| 59 | + printf "moosefs_%s_last_save_duration{ip=\"%s\", version=\"%s\", cksum=\"%s\"} %f\n", k,$3,$4,$NF,$15 |
| 60 | + |
| 61 | + if ($16 ~ /[Ss]aved in background/){ |
| 62 | + printf "moosefs_%s_last_saved_in_background{ip=\"%s\", version=\"%s\", cksum=\"%s\"} 1\n", k,$3,$4,$NF |
| 63 | + } else { |
| 64 | + printf "moosefs_%s_last_saved_in_background{ip=\"%s\", version=\"%s\", cksum=\"%s\"} 0\n", k,$3,$4,$NF |
| 65 | + } |
| 66 | +} |
| 67 | + |
| 68 | +function SMU() { |
| 69 | +# k=gensub(/\s/, "_", "g", $1); |
| 70 | +# |
| 71 | +# printf "moosefs_%s_%s_used %s\n", k, gensub(/\s/, "_", "g", $3), $4 |
| 72 | +# printf "moosefs_%s_%s_allocated %s\n", k, gensub(/\s/, "_", "g", $3), $5 |
| 73 | +} |
| 74 | + |
| 75 | +function SIC() { |
| 76 | + k=gensub(/\s/, "_", "g", $1) "_" gensub(/\s/, "_", "g", $3); |
| 77 | + |
| 78 | + printf "moosefs_%s %s\n", k, $5 |
| 79 | +} |
| 80 | + |
| 81 | +function SSC() { |
| 82 | + k=gensub(/\s/, "_", "g", $1); |
| 83 | + C=gensub(/\s/, "", "g", $17); |
| 84 | + K=gensub(/\s/, "", "g", $20); |
| 85 | + A=gensub(/\s/, "", "g", $23); |
| 86 | + printf "moosefs_%s_create{id=\"%s\",name=\"%s\",mode=\"%s\",can=\"%s\",labels=\"%s\"} %s\n", k,$3,$4,$6,$15,C,$16 |
| 87 | + printf "moosefs_%s_keep{id=\"%s\",name=\"%s\",mode=\"%s\",can=\"%s\",labels=\"%s\"} %s\n", k,$3,$4,$6,$18,K,$19 |
| 88 | + printf "moosefs_%s_archive{id=\"%s\",name=\"%s\",mode=\"%s\",can=\"%s\",labels=\"%s\"} %s\n", k,$3,$4,$6,$21,A,$22 |
| 89 | + |
| 90 | + printf "moosefs_%s_files_total{id=\"%s\",name=\"%s\"} %d\n", k,$3,$4,$7 |
| 91 | + printf "moosefs_%s_dirs_total{id=\"%s\",name=\"%s\"} %d\n", k,$3,$4,$8 |
| 92 | + printf "moosefs_%s_standard_under_total{id=\"%s\",name=\"%s\"} %d\n", k,$3,$4,$9 |
| 93 | + printf "moosefs_%s_standard_exact_total{id=\"%s\",name=\"%s\"} %d\n", k,$3,$4,$10 |
| 94 | + printf "moosefs_%s_standard_over_total{id=\"%s\",name=\"%s\"} %d\n", k,$3,$4,$11 |
| 95 | + printf "moosefs_%s_archived_under_total{id=\"%s\",name=\"%s\"} %d\n", k,$3,$4,$12 |
| 96 | + printf "moosefs_%s_archived_exact_total{id=\"%s\",name=\"%s\"} %d\n", k,$3,$4,$13 |
| 97 | + printf "moosefs_%s_archived_over_total{id=\"%s\",name=\"%s\"} %d\n", k,$3,$4,$14 |
| 98 | +} |
| 99 | + |
| 100 | +function SQU() { |
| 101 | + k=gensub(/\s/, "_", "g", $1); # keyword |
| 102 | + P=gensub(/\s/, "", "g", $3); # path |
| 103 | + SI=gensub(/\s/, "", "g", $7); # soft inodes |
| 104 | + SL=gensub(/\s/, "", "g", $8); # soft length |
| 105 | + SS=gensub(/\s/, "", "g", $9); # soft size |
| 106 | + SR=gensub(/\s/, "", "g", $10); # soft real size |
| 107 | + HI=gensub(/\s/, "", "g", $11); # hard inodes |
| 108 | + HL=gensub(/\s/, "", "g", $12); # hard length |
| 109 | + HS=gensub(/\s/, "", "g", $13); # hard size |
| 110 | + HR=gensub(/\s/, "", "g", $14); # hard real size |
| 111 | + CI=gensub(/\s/, "", "g", $15); # current inodes |
| 112 | + CL=gensub(/\s/, "", "g", $16); # current length |
| 113 | + CS=gensub(/\s/, "", "g", $17); # current size |
| 114 | + CR=gensub(/\s/, "", "g", $18); # current real size |
| 115 | + |
| 116 | + printf "moosefs_%s_soft_inodes{path=\"%s\"} %d\n", k,P,SI |
| 117 | + printf "moosefs_%s_soft_length{path=\"%s\"} %d\n", k,P,SL |
| 118 | + printf "moosefs_%s_soft_size{path=\"%s\"} %d\n", k,P,SS |
| 119 | + printf "moosefs_%s_soft_real{path=\"%s\"} %d\n", k,P,SR |
| 120 | + |
| 121 | + printf "moosefs_%s_hard_inodes{path=\"%s\"} %d\n", k,P,HI |
| 122 | + printf "moosefs_%s_hard_length{path=\"%s\"} %d\n", k,P,HL |
| 123 | + printf "moosefs_%s_hard_size{path=\"%s\"} %d\n", k,P,HS |
| 124 | + printf "moosefs_%s_hard_real{path=\"%s\"} %d\n", k,P,HR |
| 125 | + |
| 126 | + printf "moosefs_%s_current_inodes{path=\"%s\"} %d\n", k,P,CI |
| 127 | + printf "moosefs_%s_current_length{path=\"%s\"} %d\n", k,P,CL |
| 128 | + printf "moosefs_%s_current_size{path=\"%s\"} %d\n", k,P,CS |
| 129 | + printf "moosefs_%s_current_real{path=\"%s\"} %d\n", k,P,CR |
| 130 | +} |
| 131 | + |
| 132 | +{ |
| 133 | + if ($0 ~ /^\s*$/) next |
| 134 | + |
| 135 | + if ($0 ~ /^active quotas:/) |
| 136 | + SQU() |
| 137 | + |
| 138 | + if ($0 ~ /^metadata servers:/) |
| 139 | + SIM() |
| 140 | + |
| 141 | + if ($0 ~ /^memory usage detailed info:/) |
| 142 | + SMU() |
| 143 | + |
| 144 | + if ($0 ~ /^chunk servers:/) |
| 145 | + SCS() |
| 146 | + |
| 147 | + if ($0 ~ /^master info:/) |
| 148 | + SIG() |
| 149 | + |
| 150 | + if ($0 ~ /chunkclass /) |
| 151 | + SIC() |
| 152 | + |
| 153 | + if ($0 ~ /storage classes:/) |
| 154 | + SSC() |
| 155 | +} |
0 commit comments