Projet

Général

Profil

Révision c57fd566

IDc57fd56611f82dd1c2ee7173cd24b48d153b03ae
Parent 57661e0f
Enfant c1ad3e29

Ajouté par K.Cima il y a plus de 8 ans

Add dirtyconfig, change code styles

Voir les différences:

plugins/solaris/io_disk
106 106
#     name_sd1=c0t0d0
107 107
#     name_ssd2=c0tAB_1234d0  (shorten long target)
108 108
#     ...
109
instance_names=$( iostat -x | sed -e '1,2d' | awk '{print $1}' | \
110
    sed -e 's/^/name_/' )
111
logical_device_names=$( iostat -xn | sed -e '1,2d' | awk '{print $NF}' | \
112
    sed -e 's/^\(c[0-9]*\)\(t.\{2\}\).*\(.\{4\}\)\(d[0-9]*\)$/\1\2_\3\4/' )
109
instance_names=$( iostat -x | sed -e '1,2d' | awk '{print $1}' \
110
    | sed -e 's/^/name_/' )
111
logical_device_names=$( iostat -xn | sed -e '1,2d' | awk '{print $NF}' \
112
    | sed -e 's/^\(c[0-9]*\)\(t.\{2\}\).*\(.\{4\}\)\(d[0-9]*\)$/\1\2_\3\4/' )
113 113
declare $( paste -d= <( echo "$instance_names" ) <( echo "$logical_device_names" ) )
114 114

  
115 115
# Functions
......
125 125
        conf_vlabel='Ops per second write (-) / read (+)'
126 126
        conf_in=reads
127 127
        conf_out=writes
128
        conf_in_cdef=
129
        conf_out_cdef=
130 128
        ;;
131 129
    bytes)
132 130
        conf_title='I/O Throughput'
......
134 132
        conf_vlabel='Bytes per second write (-) / read (+)'
135 133
        conf_in=nread
136 134
        conf_out=nwritten
137
        conf_in_cdef=
138
        conf_out_cdef=
139 135
        ;;
140 136
    busy)
141 137
        conf_title='Busy & Wait'
......
143 139
        conf_vlabel='% wait (-) / busy (+)'
144 140
        conf_in=rtime
145 141
        conf_out=wtime
146
        conf_in_cdef=',100,*'
147
        conf_out_cdef=',100,*'
148 142
        ;;
149 143
    queue)
150 144
        conf_title='Queue Length'
......
152 146
        conf_vlabel='Queue length wait (-) / actv (+)'
153 147
        conf_in=rlentime
154 148
        conf_out=wlentime
155
        conf_in_cdef=
156
        conf_out_cdef=
157 149
        ;;
158 150
    latency)
159 151
        conf_title='Latency'
......
161 153
        conf_vlabel='Seconds wsvc_t (-) / asvc_t (+)'
162 154
        conf_in=rlentime
163 155
        conf_out=wlentime
164
        conf_in_cdef=
165
        conf_out_cdef=
166 156
        ;;
167 157
    size)
168 158
        conf_title='I/O Size'
......
170 160
        conf_vlabel='Average size write (-) / read (+)'
171 161
        conf_in=nread
172 162
        conf_out=nwritten
173
        conf_in_cdef=
174
        conf_out_cdef=
175 163
        ;;
176 164
    *)
177 165
        echo "Unknown function: $func"
......
181 169
}
182 170

  
183 171
is_excluded() {
184
    local dev i
185
    dev=$1
172
    local arg i
173
    arg=$1
186 174

  
187 175
    for i in ${exclude}
188 176
    do
189
        if [ "$dev" = "$i" ]; then
177
        if [ "$arg" = "$i" ]; then
190 178
            return 0
191 179
        fi
192 180
    done
......
199 187

  
200 188
    func=$1
201 189
    preconfig "$func"
202

  
203 190
    echo "multigraph ${plugin_name}_${func}_${module}"
204 191

  
205 192
    echo "graph_title $title_type $conf_title"
......
211 198
    fi
212 199

  
213 200
    # Get device instance names by kstat
214
    kstat -p -c "$class" -m "$module_regex" -s "/^${conf_in}\$/" | sed 's/:/ /g' | awk '{ print $3 }' | \
215
    while read -r dev
201
    kstat -p -c "$class" -m "$module_regex" -s "/^${conf_in}\$/" \
202
    | sed 's/:/ /g' | awk '{ print $3 }' \
203
    | while read -r dev
216 204
    do
217 205
        is_excluded "$dev" && continue
218 206

  
......
225 213
        latency|size)
226 214
            for stat in reads writes
227 215
            do
228
                echo "${dev}_$stat.label dummy" 
229
                echo "${dev}_$stat.graph no"
230
                echo "${dev}_$stat.type DERIVE"
231
                echo "${dev}_$stat.min 0"
216
                echo "${dev}_${stat}.label dummy" 
217
                echo "${dev}_${stat}.graph no"
218
                echo "${dev}_${stat}.type DERIVE"
219
                echo "${dev}_${stat}.min 0"
232 220
            done
233 221
            ;;
234 222
        esac
235 223

  
236
        # Set cdef for latency, size
224
        # Set CDEF
237 225
        case "$func" in
226
        busy)
227
            conf_in_cdef="${dev}_${conf_in},100,*"
228
            conf_out_cdef="${dev}_${conf_out},100,*"
229
            ;;
238 230
        latency)
239 231
            # rlentime / ( reads + writes )
240
            conf_in_cdef=,${dev}_reads,${dev}_writes,+,/
241
            conf_out_cdef=,${dev}_reads,${dev}_writes,+,/
232
            conf_in_cdef="${dev}_${conf_in},${dev}_reads,${dev}_writes,+,/"
233
            conf_out_cdef="${dev}_${conf_out},${dev}_reads,${dev}_writes,+,/"
242 234
            ;;
243 235
        size)
244
            conf_in_cdef=,${dev}_reads,/
245
            conf_out_cdef=,${dev}_writes,/
236
            conf_in_cdef="${dev}_${conf_in},${dev}_reads,/"
237
            conf_out_cdef="${dev}_${conf_out},${dev}_writes,/"
238
            ;;
239
        *)
240
            conf_in_cdef=
241
            conf_out_cdef=
246 242
            ;;
247 243
        esac
248 244

  
......
251 247
        echo "${dev}_${conf_out}.graph no"
252 248
        echo "${dev}_${conf_out}.type DERIVE"
253 249
        echo "${dev}_${conf_out}.min 0"
254
        if [ -n "${conf_out_cdef:-}" ]; then
255
            echo "${dev}_${conf_out}.cdef ${dev}_${conf_out}${conf_out_cdef}"
250
        if [ -n "$conf_out_cdef" ]; then
251
            echo "${dev}_${conf_out}.cdef ${conf_out_cdef}"
256 252
        fi
257 253

  
258 254
        echo "${dev}_${conf_in}.label ${devname:-${dev}}"
259 255
        echo "${dev}_${conf_in}.negative ${dev}_${conf_out}"
260 256
        echo "${dev}_${conf_in}.type DERIVE"
261 257
        echo "${dev}_${conf_in}.min 0"
262
        if [ -n "${conf_in_cdef:-}" ]; then
263
            echo "${dev}_${conf_in}.cdef ${dev}_${conf_in}${conf_in_cdef}"
258
        if [ -n "$conf_in_cdef" ]; then
259
            echo "${dev}_${conf_in}.cdef ${conf_in_cdef}"
264 260
        fi
265 261
    done
266 262

  
267 263
    echo
268 264
}
269 265

  
270
do_getvalue() {
266
do_fetch() {
271 267
    local func stat_regex dev stat value
272 268

  
273 269
    func=$1
274 270
    preconfig "$func"
271
    echo "multigraph ${plugin_name}_${func}_${module}"
275 272

  
276 273
    case "$func" in
277 274
    latency|size)
......
282 279
        ;;
283 280
    esac
284 281

  
285
    echo "multigraph ${plugin_name}_${func}_${module}"
286

  
287 282
    # Get device instance names, stat names and values by kstat
288 283

  
289 284
    # kstat output example:
......
292 287
    #   sd:1:sd1:reads  52671435
293 288
    #   ...
294 289

  
295
    kstat -p -c "$class" -m "$module_regex" -s "$stat_regex" | sed 's/:/ /g' | awk '{ print $3,$4,$5 }' | \
296
    while read -r dev stat value
290
    kstat -p -c "$class" -m "$module_regex" -s "$stat_regex" \
291
    | sed 's/:/ /g' | awk '{ print $3,$4,$5 }' \
292
    | while read -r dev stat value
297 293
    do
298 294
        is_excluded "$dev" && continue
299 295

  
......
322 318
    done
323 319
}
324 320

  
325
getvalue() {
321
fetch() {
326 322
    local func
327 323

  
328 324
    for func in $functions
329 325
    do
330
        do_getvalue "$func"
326
        do_fetch "$func"
331 327
    done
332 328
}
333 329

  
......
338 334
    ;;
339 335
config)
340 336
    config
337
    [ "${MUNIN_CAP_DIRTYCONFIG:-}" = "1" ] && fetch
341 338
    ;;
342 339
*)
343
    getvalue
340
    fetch
344 341
    ;;
345 342
esac
346 343

  

Formats disponibles : Unified diff