#
# Copyright (c) 2013 Red Hat.
#
# This program is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the
# Free Software Foundation; either version 2 of the License, or (at your
# option) any later version.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
# for more details.
#
# GFS2 PMDA help file in the ASCII format
#
# lines beginning with a # are ignored
# lines beginning @ introduce a new entry of the form
#  @ metric_name oneline-text
#  help test goes
#  here over multiple lines
#  ...
#
# the metric_name is decoded against the default PMNS -- as a special case,
# a name of the form NNN.MM (for numeric NNN and MM) is interpreted as an
# instance domain identification, and the text describes the instance domain
#
# blank lines before the @ line are ignored
#
@ GFS2.0 Instance domain for mounted GFS2 filesystems

@ gfs2.glocks.total Count of total observed incore GFS2 global locks
Count of total incore GFS2 glock data structures based on parsing the contents
of the /sys/kernel/debug/gfs2/<bdev>/glocks files.

@ gfs2.glocks.shared GFS2 global locks in shared state
Count of incore GFS2 glock data structures in shared state, based on parsing
/sys/kernel/debug/gfs2/<bdev>/glocks entries with state field (s:) value "SH".

@ gfs2.glocks.unlocked GFS2 global locks in unlocked state
Count of incore GFS2 glock data structures in unlocked state, based on parsing
/sys/kernel/debug/gfs2/<bdev>/glocks entries with state field (s:) value "UN".

@ gfs2.glocks.deferred GFS2 global locks in deferred state
Count of incore GFS2 glock data structures in deferred state, based on parsing
/sys/kernel/debug/gfs2/<bdev>/glocks entries with state field (s:) value "DF".

@ gfs2.glocks.exclusive GFS2 global locks in exclusive state
Count of incore GFS2 glock data structures in exclusive state, based on parsing
/sys/kernel/debug/gfs2/<bdev>/glocks entries with state field (s:) value "EX".

# help text for gfs2.sbstats.*.* is generated dynamically

@ gfs2.glstats.total The total number of current glocks
Total count of the number of glocks which currently reside for filesystem on 
the given node. Data is based from /sys/kernel/debug/gfs2/<bdev>/glstats
counting the total number of glock entries.

@ gfs2.glstats.trans The number of transaction glocks
The count of the current number of transaction type glocks that currently exist
for the given filesystem. The data is recorded and counted from /sys/kernel/
debug/gfs2/<bdev>glstats file entries for this type of glock.

@ gfs2.glstats.inode The number of inode (metadata and data) glocks
The count of the current number of inode metadata and data type glocks that
currently exist for the given filesystem. The data is recorded and counted from
/sys/kernel/debug/gfs2/<bdev>glstats file entries for this type of glock.

@ gfs2.glstats.rgrp The number of resource group metadata glocks
The count of the current number of resource group metadata type glocks that
currently exist for the given filesystem. The data is recorded and counted from
/sys/kernel/debug/gfs2/<bdev>glstats file entries for this type of glock.

@ gfs2.glstats.meta The number of superblock glocks
The count of the current number of superblock type glocks that currently exist
for the given filesystem. The data is recorded and counted from /sys/kernel/
debug/gfs2/<bdev>glstats file entries for this type of glock.

@ gfs2.glstats.iopen The number of inode last closer detection glocks
The count of the current number of inode last closer detection type glocks that
currently exist for the given filesystem. The data is recorded and counted from
/sys/kernel/debug/gfs2/<bdev>glstats file entries for this type of glock.

@ gfs2.glstats.flock The number of flock(2) syscall glocks
The count of the current number of flock(2) syscall type glocks that currently
exist for the given filesystem. The data is recorded and counted from /sys/
kernel/debug/gfs2/<bdev>glstats file entries for this type of glock.

@ gfs2.glstats.quota The number of quota operations glocks
The count of the current number of quota operations type glocks that currently
exist for the given filesystem. The data is recorded and counted from /sys/
kernel/debug/gfs2/<bdev>glstats file entries for this type of glock.

@ gfs2.glstats.journal The number of journal mutex glocks
The count of the current number of journal mutex type glocks that currently
exist for the given filesystem. The data is recorded and counted from /sys/
kernel/debug/gfs2/<bdev>glstats file entries for this type of glock.

@ gfs2.tracepoints.glock_state_change.total Total number of glock state
changes. The total number of counted glock state changes.

@ gfs2.tracepoints.glock_state_change.null_lock Number of null_lock state
changes. The total number of glock state changes to the null_lock state.

@ gfs2.tracepoints.glock_state_change.concurrent_read Number of
concurrent_read state changes. The total number of glock state changes
to current_read state.

@ gfs2.tracepoints.glock_state_change.concurrent_write Number of 
concurrent_write state changes. The total number of glock state changes
to current_write state.

@ gfs2.tracepoints.glock_state_change.protected_read Number of 
protected_read state changes. The total number of glock state changes to
protected_read state.

@ gfs2.tracepoints.glock_state_change.protected_write Number of
protected_write state changes. The total number of glock state changes to
protected_write state.

@ gfs2.tracepoints.glock_state_change.exclusive Number of exclusive state
changes. The total number of glock state changes to exclusive state.

@ gfs2.tracepoints.glock_state_change.glocks.changed_target Number of
changed locks. The number of state changes that achieved their expected
state change.

@ gfs2.tracepoints.glock_state_change.glocks.missed_target Number of 
missed locks. The number of state changes that did not achieve their
expected state change.

@ gfs2.tracepoints.glock_put.total Total number of glocks changed.
The total number of glocks that have been changed.

@ gfs2.tracepoints.glock_put.null_lock Number of released locks.
The number of glocks put into the null_lock state.

@ gfs2.tracepoints.glock_put.concurrent_read Number of glocks put
in concurrent_read. The number of glocks put into the concurrent_read
state.

@ gfs2.tracepoints.glock_put.concurrent_write Number of glocks put
in concurrent_write. The number of glocks put into the concurrent_write
state.

@ gfs2.tracepoints.glock_put.protected_read Number of glocks put
in protected_read. The number of glocks put into the protected_read
state.

@ gfs2.tracepoints.glock_put.protected_write Number of glocks put
in protected_wirte. The number of glocks put into the protected_write
state.

@ gfs2.tracepoints.glock_put.exclusive Number of glocks put
in exclusive. The number of glocks put into the exclusive
state.

@ gfs2.tracepoints.demote_rq.total Total number of lock demote requests.
The total number of lock demotion requests.

@ gfs2.tracepoints.demote_rq.null_lock Number of lock demote requests to
null_lock. The total number of lock demotion requests to the null_lock state.

@ gfs2.tracepoints.demote_rq.concurrent_read Number of lock demote requests to
concurrent_read. The total number of lock demotion requests to the 
concurrent_read state.

@ gfs2.tracepoints.demote_rq.concurrent_write Number of lock demote requests to
concurrent_write. The total number of lock demotion requests to the 
concurrent_write state.

@ gfs2.tracepoints.demote_rq.protected_read Number of lock demote requests to
protected_read. The total number of lock demotion requests to the 
protected_read state.

@ gfs2.tracepoints.demote_rq.protected_write Number of lock demote requests to
protected_write. The total number of lock demotion requests to the 
protected_write state.

@ gfs2.tracepoints.demote_rq.exclusive Number of lock demote requests to
exclusive. The total number of lock demotion requests to the 
exclusive state.

@gfs2.tracepoints.demote_rq.requested.remote Number of demote requests (remote).
The total number of demote requests which were requested by a remote node of
the cluster.

@gfs2.tracepoints.demote_rq.requested.local Number of demote requests (local).
The total number od demote requests which were requested by a local node of
the cluster

@ gfs2.tracepoints.promote.total Total number of lock grants. The total number
of lock grants.

@ gfs2.tracepoints.promote.first.null_lock Number of lock grants to null_lock.
The total number of successful first time lock grants to the null_lock state.

@ gfs2.tracepoints.promote.first.concurrent_read Number of lock grants to 
concurrent_read. The total number of successful first time lock grants to the 
concurrent_read state.

@ gfs2.tracepoints.promote.first.concurrent_write Number of lock grants to 
concurrent_write. The total number of successful first time lock grants to the 
concurrent_write state.

@ gfs2.tracepoints.promote.first.protected_read Number of lock grants to 
protected_read. The total number of successful first time lock grants to the 
protected_read state.

@ gfs2.tracepoints.promote.first.protected_write Number of lock grants to 
protected_write. The total number of successful first time lock grants to the 
protected_write state.

@ gfs2.tracepoints.promote.first.exclusive Number of lock grants to 
exclusive. The total number of successful first time lock grants to the 
exclusive state.

@gfs2.tracepoints.promote.other.null_lock Number of lock grants to null_lock.
The total number of successful other time lock grants to the null_lock state.

@gfs2.tracepoints.promote.other.concurrent_read Number of lock grants to 
concurrent_read. The total number of successful other time lock grants to the 
concurrent_read state.

@gfs2.tracepoints.promote.other.concurrent_write Number of lock grants to 
concurrent_write. The total number of successful other time lock grants to the 
concurrent_write state.

@gfs2.tracepoints.promote.other.protected_read Number of lock grants to 
protected_read. The total number of successful other time lock grants to the 
protected_read state.

@gfs2.tracepoints.promote.other.protected_write Number of lock grants to 
protected_write. The total number of successful other time lock grants to the 
protected_write state.

@gfs2.tracepoints.promote.other.exclusive Number of lock grants to 
exclusive. The total number of successful other time lock grants to the 
exclusive state.

@gfs2.tracepoints.glock_queue.total Total numbe rof queued and dequeued
requests. The total number of both queued and dequeued requests.

@ gfs2.tracepoints.glock_queue.queue.total Total number of queued lock requests.
The total number of queued lock requests.

@ gfs2.tracepoints.glock_queue.queue.null_lock Number of null_lock requests. The
number of lock requests to the null_lock state.

@ gfs2.tracepoints.glock_queue.queue.concurrent_read Number of concurrent_read 
requests. The number of lock requests to the concurrent_read state.

@ gfs2.tracepoints.glock_queue.queue.concurrent_write Number of concurrent_write 
requests. The number of lock requests to the concurrent_write state.

@ gfs2.tracepoints.glock_queue.queue.protected_read Number of protected_read 
requests. The number of lock requests to the protected_read state.

@ gfs2.tracepoints.glock_queue.queue.protected_write Number of protected_write 
requests. The number of lock requests to the protected_write state.

@ gfs2.tracepoints.glock_queue.queue.exclusive Number of exclusive 
requests. The number of lock requests to the exclusive state.

@ gfs2.tracepoints.glock_queue.dequeue.total Total number of dequeued lock requests.
The total number of dequeued lock requests.

@ gfs2.tracepoints.glock_queue.dequeue.null_lock Number of null_lock requests. The
number of lock requests to the null_lock state.

@ gfs2.tracepoints.glock_queue.dequeue.concurrent_read Number of concurrent_read 
requests. The number of lock requests to the concurrent_read state.

@ gfs2.tracepoints.glock_queue.dequeue.concurrent_write Number of concurrent_write 
requests. The number of lock requests to the concurrent_write state.

@ gfs2.tracepoints.glock_queue.dequeue.protected_read Number of protected_read 
requests. The number of lock requests to the protected_read state.

@ gfs2.tracepoints.glock_queue.dequeue.protected_write Number of protected_write 
requests. The number of lock requests to the protected_write state.

@ gfs2.tracepoints.glock_queue.dequeue.exclusive Number of exclusive 
requests. The number of lock requests to the exclusive state.

@ gfs2.tracepoints.glock_lock_time.total Total number of lock updates.
The total number of lock updates.

@ gfs2.tracepoints.glock_lock_time.trans Number of trasaction lock updates.
The number of updates for transaction based glocks.

@ gfs2.tracepoints.glock_lock_time.inode Number of inode lock updates.
The number of updates for inode based glocks.

@ gfs2.tracepoints.glock_lock_time.rgrp Number of resource group lock updates.
The number of updates for resource group based glocks.

@ gfs2.tracepoints.glock_lock_time.meta Number of metadata lock updates.
The number of updates for metadata based glocks.

@ gfs2.tracepoints.glock_lock_time.iopen Number of iopen lock updates.
The number of updates for iopen based glocks.

@ gfs2.tracepoints.glock_lock_time.flock Number of flock lock updates.
The number of updates for flock based glocks.

@ gfs2.tracepoints.glock_lock_time.quota Number of quota lock updates.
The number of updates for quota based glocks.

@ gfs2.tracepoints.glock_lock_time.journal Number of journal lock updates.
The number of updates for journal based glocks.

@ gfs2.tracepoints.pin.total Total number of Pin/Unpin requests. The total
number of requests to pin/unpin blocks on the log.

@ gfs2.tracepoints.pin.pin_total Number of pin requests. The total number of
requests to pin blocks on the log.

@ gfs2.tracepoints.pin.unpin_total Number of unpin requests. The total number
requests to unpin blocks on the log.

@ gfs2.tracepoints.pin.longest_pinned Longests pinned. The longest pinned
inode or resource group log block

@ gfs2.tracepoints.log_flush.total Total log flushes. The total number of
log flushes observed

@ gfs2.tracepoints.log_block.total Total log blocks. The total number of
blocks placed upon the log.

@ gfs2.tracepoints.ail_flush.total Total AIL flushes. The total number of
flushes back to the AIL.

@ gfs2.tracepoints.block_alloc.total Total blocks allocated/deallocated. 
The total number of allocated/freed blocks this call.

@ gfs2.tracepoints.block_alloc.free Freed blocks. The number of blocks
freed. 

@ gfs2.tracepoints.block_alloc.used Used blocks. The number of blocks
used.

@ gfs2.tracepoints.block_alloc.dinode Dinode blocks. The number of blocks
used for dinode.

@ gfs2.tracepoints.block_alloc.unlinked Unlinked blocks. The number of
unlinked blocks.

@ gfs2.tracepoints.bmap.total Total number of bmap allocations. The total
number of bmap allocations.

@ gfs2.tracepoints.bmap.create Number of create bmap allocations. The number
of create bmap allocations.

@ gfs2.tracepoints.bmap.nocreate Number of nocreate bmap allocations. The
number of nocreate bmap allocations.

@ gfs2.tracepoints.rs.total Total multi-block allocations. The total number
of multiblock allocations. 

@ gfs2.tracepoints.rs.del Number of del blocks. The number of del blocks

@ gfs2.tracepoints.rs.tdel Number of tdel blocks. The number of tdel blocks.

@ gfs2.tracepoints.rs.ins Number of ins blocks. The number of ins blocks.

@ gfs2.tracepoints.rs.clm Number of clm blocks. The number of clm blocks.

@ gfs2.worst_glock.lock_type Glock type number
The metric contains the value regarding the lock type representing the type of
lock, this metric requires the gfs2.control.glock_lock_time metric to be set 
as 1 to be enabled.

@ gfs2.worst_glock.number Inode or resource group number
This metric points to the inode or resource group on which the glock belongs
to, this metric requires the gfs2.control.glock_lock_time metric to be set as
1 to be enabled.

@ gfs2.worst_glock.srtt Non-blocking smoothed round trip time
The smoothed round trip time for non-blocking dlm requests, this metric
requires the gfs2.control.glock_lock_time metric to be set as 1 to be
enabled.

@ gfs2.worst_glock.srttvar Non-blocking smoothed variance
Variance estimate for the smoothed round trip time, this metric requires
the gfs2.control.glock_lock_time metric to be set as 1 to be enabled.

@ gfs2.worst_glock.srttb Blocking smoothed round trip time
Smoothed round trip time for (potentially) blocking dlm requests, this 
metric requires the gfs2.control.glock_lock_time metric to be set as 1
to be enabled.

@ gfs2.worst_glock.srttvarb Blocking smoothed variance
Variance estimate for smoothed round trip time for (potentially) blocking 
dlm requests, this metric requires the gfs2.control.glock_lock_time metric
to be set as 1 to be enabled.

@ gfs2.worst_glock.sirt Smoothed Inter-request time
The smoothed inter-request time (for dlm requests), this metric requires
the gfs2.control.glock_lock_time metric to be set as 1 to be enabled.

@ gfs2.worst_glock.sirtvar Smoothed Inter-request variance
Variance estimate for smoothed inter-request time, this metric requires 
the gfs2.control.glock_lock_time metric to be set as 1 to be enabled.

@ gfs2.worst_glock.dlm Count of dlm requests
The number of dlm requests made, this metric requires the 
gfs2.control.glock_lock_time metric to be set as 1 to be enabled.

@ gfs2.worst_glock.queue Count of gfs2_holder queues
The number of glock requests queued, this metric requires the 
gfs2.control.glock_lock_time metrics to be set as 1 to be enabled.

@ gfs2.control.tracepoints.all Indication whether all glock statistics are enabled
The gfs2 tracepoint statistics can be manually controlled using pmstore
gfs2.control.tracepoints.all 0 [off] or 1 [on]. setting the value of the metric
controls the behavior of the PMDA to whether it tries to collect from tracepoint
metrics or not.

@ gfs2.control.tracepoints.glock_state_change Indication whether the glock_state_change
glock statistics are enabled The gfs2 tracepoint statistics can be manually controlled 
using pmstore gfs2.control.tracepoints.glock_state_change 0 [off] or 1 [on]. setting the 
value of the metric controls the behavior of the PMDA to whether it tries to collect from
tracepoint metrics or not.

@ gfs2.control.tracepoints.glock_put Indication whether the glock_put glock
statistics are enabled The gfs2 tracepoint statistics can be manually controlled 
using pmstore gfs2.control.tracepoints.glock_put 0 [off] or 1 [on]. setting the 
value of the metric controls the behavior of the PMDA to whether it tries to collect from
tracepoint metrics or not.

@ gfs2.control.tracepoints.demote_rq Indication whether the glock_demote_rq
glock statistics are enabled The gfs2 tracepoint statistics can be manually controlled 
using pmstore gfs2.control.tracepoints.glock_demote_rq 0 [off] or 1 [on]. setting the 
value of the metric controls the behavior of the PMDA to whether it tries to collect from
tracepoint metrics or not.

@ gfs2.control.tracepoints.promote Indication whether the glock_promote
glock statistics are enabled The gfs2 tracepoint statistics can be manually controlled 
using pmstore gfs2.control.tracepoints.glock_promte 0 [off] or 1 [on]. setting the 
value of the metric controls the behavior of the PMDA to whether it tries to collect from
tracepoint metrics or not.

@ gfs2.control.tracepoints.glock_queue Indication whether the glock_queue
glock statistics are enabled The gfs2 tracepoint statistics can be manually controlled 
using pmstore gfs2.control.tracepoints.glock_queue 0 [off] or 1 [on]. setting the 
value of the metric controls the behavior of the PMDA to whether it tries to collect from
tracepoint metrics or not.

@ gfs2.control.tracepoints.glock_lock_time Indication whether the glock_lock_time
glock statistics are enabled The gfs2 tracepoint statistics can be manually controlled 
using pmstore gfs2.control.tracepoints.glock_lock_time 0 [off] or 1 [on]. setting the 
value of the metric controls the behavior of the PMDA to whether it tries to collect from
tracepoint metrics or not.

@ gfs2.control.tracepoints.pin Indication whether the pin
glock statistics are enabled The gfs2 tracepoint statistics can be manually controlled 
using pmstore gfs2.control.tracepoints.pin 0 [off] or 1 [on]. setting the 
value of the metric controls the behavior of the PMDA to whether it tries to collect from
tracepoint metrics or not.

@ gfs2.control.tracepoints.log_flush Indication whether the log_flush
glock statistics are enabled The gfs2 tracepoint statistics can be manually controlled 
using pmstore gfs2.control.tracepoints.log_flush 0 [off] or 1 [on]. setting the 
value of the metric controls the behavior of the PMDA to whether it tries to collect from
tracepoint metrics or not.

@ gfs2.control.tracepoints.log_blocks Indication whether the log_blocks
glock statistics are enabled The gfs2 tracepoint statistics can be manually controlled 
using pmstore gfs2.control.tracepoints.log_blocks 0 [off] or 1 [on]. setting the 
value of the metric controls the behavior of the PMDA to whether it tries to collect from
tracepoint metrics or not.

@ gfs2.control.tracepoints.ail_flush Indication whether the ail_flush
glock statistics are enabled The gfs2 tracepoint statistics can be manually controlled 
using pmstore gfs2.control.tracepoints.ail_flush 0 [off] or 1 [on]. setting the 
value of the metric controls the behavior of the PMDA to whether it tries to collect from
tracepoint metrics or not.

@ gfs2.control.tracepoints.block_alloc Indication whether the block_alloc
glock statistics are enabled The gfs2 tracepoint statistics can be manually controlled 
using pmstore gfs2.control.tracepoints.block_alloc 0 [off] or 1 [on]. setting the 
value of the metric controls the behavior of the PMDA to whether it tries to collect from
tracepoint metrics or not.

@ gfs2.control.tracepoints.bmap Indication whether the bmap
glock statistics are enabled The gfs2 tracepoint statistics can be manually controlled 
using pmstore gfs2.control.tracepoints.bmap 0 [off] or 1 [on]. setting the 
value of the metric controls the behavior of the PMDA to whether it tries to collect from
tracepoint metrics or not.

@ gfs2.control.tracepoints.rs Indication whether the rs
glock statistics are enabled The gfs2 tracepoint statistics can be manually controlled 
using pmstore gfs2.control.tracepoints.rs 0 [off] or 1 [on]. setting the 
value of the metric controls the behavior of the PMDA to whether it tries to collect from
tracepoint metrics or not.

@ gfs2.control.global_tracing Indication whether global tracing for the system is enalbed.
The global tracing can be controlled using pmstore gfs2.control.global_tracing 0 [off] or
1 [on]. This is required to be on for most of the gfs2 metrics to function.

@ gfs2.control.worst_glock Indication whether gfs2.glock_lock_time statistics are enabled
The gfs2.glock_lock_time statistics can be manually controlled using pmstore
gfs2.control.glock_lock_time 0 [off] or 1 [on]. setting the value of the metric
controls the behavior of the PMDA to whether it tries to collect the lock_time
metrics or not. The machine must have the gfs2 trace-points available for the
glock_lock_time based metrics to function.

@ gfs2.control.glock_threshold Threshold for maximum number of glocks accepted per fetch
The number of glocks that will be processed and accepted over all ftrace read
trace statistics. This number can be manually altered using pmstore in order
to tailor the number of glocks processed. This value must be positive.
