#
# Copyright (c) 2015-2019 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.
#
# Device Mapper 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 text 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
#
@ DM.0 Device mapper cache block devices
@ DM.1 Device mapper thin provisioning pools
@ DM.2 Device mapper thin provisioning volumes
@ DM.3 Device mapper dmstats API devices
@ DM.4 Device mapper latency histogram bins
@ DM.5 Virtual Data Optimization devices

@ dmcache.size Size of each cache device
The total size of each cache device in Kbytes.

@ dmcache.metadata.block_size Block size for metadata
The fixed block size for each metadata block in bytes.

@ dmcache.metadata.used Metadata block used
The number of metadata blocks used.

@ dmcache.metadata.total Total metadata blocks
The total number of metadata blocks.

@ dmcache.cache.block_size Block size for cache
The fixed block size of each cache block in bytes.

@ dmcache.cache.used Cache blocks used
The number of cache blocks used.

@ dmcache.cache.total Total cache blocks
The total number of cache blocks.

@ dmcache.read_hits Read bio mapping cache
Number of times a READ bio has been mapped to the cache.

@ dmcache.read_misses Read bio mapping origin
Number of times a READ bio has been mapped to the origin.

@ dmcache.write_hits Write bio mapping cache
Number of times a WRITE bio has been mapped to the cache.

@ dmcache.write_misses Write bio mapping origin
Number of times a WRITE bio has been mapped to the origin.

@ dmcache.demotions Block removed from cache
Number of times a block has been removed from the cache.

@ dmcache.promotions Block moved to cache
Number of times a block has been moved to the cache.

@ dmcache.dirty Blocks different to origin
Number of blocks in the cache that differ from the origin.

@ dmcache.io_mode_code Cache mode
Cache mode code - writeback, writethrough, passthrough.

@ dmcache.io_mode Cache mode
Cache mode string - writeback, writethrough or passthrough.

@ dmthin.pool.size Size of each pool device
The total size of each pool device in Kbytes.

@ dmthin.pool.transaction_id Sync number with volume manager
Number used by userspace to help synchronise with metadata
from volume managers.

@ dmthin.pool.metadata.used Number of metadata blocks used
The number of metadata blocks which are currently in use.

@ dmthin.pool.metadata.total Total number of metadata blocks
The total number of metadata blocks for the given thin storage pool.

@ dmthin.pool.data.used Number of data blocks used
The number of data blocks which are currently in use.

@ dmthin.pool.data.total Total number of data blocks
The total number of data blocks for the given thin storage pool.

@ dmthin.pool.held_root Location of metadata root
The location in blocks of the metadata root that has been 'held' for
userspace read access. "-" indicates that there is no held root.

@ dmthin.pool.discard_passdown Discards passed or not
Whether or not discards are being passed down to the underlying device.

@ dmthin.pool.read_mode Read mode of the thin pool
Indication of whether the pool is in read/write mode or read only mode.
In the event that the pool encounters certain types of device failures
it will drop into read-only metadata mode.

@ dmthin.pool.no_space_mode Mode used when pool is out of space
If the pool runs out of data or metadata space, the pool will fallback
to either queuing or error any IO destined to the data device. The
default is to queue until more space is added to the pool.

@ dmthin.vol.size Size of each thin volume
The total size of each thin volume in Kbytes.

@ dmthin.vol.num_mapped_sectors Number of sectors mapped
The total number of mapped sectors to the thin volume.

@ dmthin.vol.highest_mapped_sector Highest mapped sector
The highest mapped sector of the thin volume.

@ dmstats.read The number of reads completed
Count of reads completed this interval per dm device.

@ dmstats.reads_merged The number of reads merged
Count of reads merged this interval per dm device.

@ dmstats.read_bytes The number of kbyte read
Count of kbyte read this inteval per dm device.

@ dmstats.reads_time The number of nanoseconds spent reading
Accumulated duration of all read request per dm device.

@ dmstats.write The number of writes completed
Count of writes completed this interval per dm-device.

@ dmstats.writes_merged The number of writes merged
Count of writes merged this interval per dm device.

@ dmstats.write_bytes The number of kbyte written
Count of kbytes writes this interval per dm-device.

@ dmstats.writes_time The number of nanoseconds spent writing
Accumulated duration of all write requests per dm device.

@ dmstats.in_progress The number of I/Os
Count of requests currently in progress per dm device.

@ dmstats.io_ticks The number of nanoseconds spend doing I/Os
Nanoseconds spent servicing requestst per dm device.

@ dmstats.queue_ticks The weighted number of nanoseconds spend doing I/Os
This field is incremented at each I/O start, I/O completion, I/O merge,
or read of these stats by the number of I/Os in progress multiplied by
the number of nanoseconds spent doing I/O since the last update of
this field. This can provide an easy measure of both I/O completion time
and the backlog that may be accumulating.

@ dmstats.read_ticks The total time spent reading
Nanoseconds spent servicing reads per dm device.

@ dmstats.write_ticks The total time spent writing
Nanoseconds spent servicing writes per dm device.

@dmstats.histogram.hist_count The list of histogram counts
A list of the histogram counts for the current statistics region in order
of ascending value. The instance name includes bin boundaries.

@dmstats.histogram.hist_bins The number of latency histogram bins
The number of latency histogram bins configured for the region.

@ vdo.dev.allocator.slab_count Number of slabs from which blocks may be allocated
@ vdo.dev.allocator.slabs_opened Count of slabs from which blocks have ever been allocated
@ vdo.dev.allocator.slabs_reopened Count of times that a slab has been re-opened
@ vdo.dev.bios.acknowledged.discard Count of disacrd operations on ACKd bios
@ vdo.dev.bios.acknowledged.flush Count of flush operations on ACKd bios
@ vdo.dev.bios.acknowledged.fua Count of force unit access operations on ACKed bios
@ vdo.dev.bios.acknowledged.read Count of read operations on ACKed bios
@ vdo.dev.bios.acknowledged.write Count of write operations on ACKed bios
@ vdo.dev.bios.acknowledged.partial.discard Count of discard operations on ACKed partial bios
@ vdo.dev.bios.acknowledged.partial.flush Count of flush operations on ACKed partial bios
@ vdo.dev.bios.acknowledged.partial.fua Count of force unit access operations on ACKed partial bios
@ vdo.dev.bios.acknowledged.partial.read Count of read operations on ACKed partial bios
@ vdo.dev.bios.acknowledged.partial.write Count of write operations on ACKed partial bios
@ vdo.dev.bios.in.discard Count of discard operations on incoming bios
@ vdo.dev.bios.in.flush Count of flush operations on incoming bios
@ vdo.dev.bios.in.fua Count of force unit access operations on incoming bios
@ vdo.dev.bios.in.read Count of read operations on incoming bios
@ vdo.dev.bios.in.write Count of write operations on incoming bios
@ vdo.dev.bios.in.partial.discard Count of discard operations on incoming partial bios
@ vdo.dev.bios.in.partial.flush Count of flush operations on incoming partial bios
@ vdo.dev.bios.in.partial.fua Count of force unit access operations on incoming partial bios
@ vdo.dev.bios.in.partial.read Count of read operations on incoming partial bios
@ vdo.dev.bios.in.partial.write Count of write operations on incoming partial bios
@ vdo.dev.bios.in_progress.discard Count of discard operations on in-progress bios
@ vdo.dev.bios.in_progress.flush Count of flush operations on in-progress bios
@ vdo.dev.bios.in_progress.fua Count of force unit access operations on in-progress bios
@ vdo.dev.bios.in_progress.read Count of read operations on in-progress bios
@ vdo.dev.bios.in_progress.write Count of write operations on in-progress bios
@ vdo.dev.bios.out.discard Count of discard operations on outgoing bios
@ vdo.dev.bios.out.flush Count of flush operations on outgoing bios
@ vdo.dev.bios.out.fua Count of force unit access operations on outgoing bios
@ vdo.dev.bios.out.read Count of read operations on outgoing bios
@ vdo.dev.bios.out.write Count of write operations on outgoing bios
@ vdo.dev.bios.out.completed.discard Count of discard operations on completed outgoing bios
@ vdo.dev.bios.out.completed.flush Count of flush operations on completed outgoing bios
@ vdo.dev.bios.out.completed.fua Count of force unit access operations on completed outgoing bios
@ vdo.dev.bios.out.completed.read Count of read operations on completed outgoing bios
@ vdo.dev.bios.out.completed.write Count of write operations on completed outgoing bios
@ vdo.dev.bios.journal.discard Count of discard operations on journal bios
@ vdo.dev.bios.journal.flush Count of flush operations on journal bios
@ vdo.dev.bios.journal.fua Count of force unit access operations on journal bios
@ vdo.dev.bios.journal.read Count of read operations on journal bios
@ vdo.dev.bios.journal.write Count of write operations on journal bios
@ vdo.dev.bios.journal.completed.discard Count of discard operations on completed journal bios
@ vdo.dev.bios.journal.completed.flush Count of flush operations on completed journal bios
@ vdo.dev.bios.journal.completed.fua Count of force unit access operations on completed journal bios
@ vdo.dev.bios.journal.completed.read Count of read operations on completed journal bios
@ vdo.dev.bios.journal.completed.write Count of write operations on completed journal bios
@ vdo.dev.bios.meta.discard Count of discard operations on metadata bios
@ vdo.dev.bios.meta.flush Count of flush operations on metadata bios
@ vdo.dev.bios.meta.fua Count of force unit access operations on metadata bios
@ vdo.dev.bios.meta.read Count of read operations on metadata bios
@ vdo.dev.bios.meta.write Count of write operations on metadata bios
@ vdo.dev.bios.meta.completed.discard Count of discard operations on completed metadata bios
@ vdo.dev.bios.meta.completed.flush Count of flush operations on completed metadata bios
@ vdo.dev.bios.meta.completed.fua Count of force unit access operations on completed metadata bios
@ vdo.dev.bios.meta.completed.read Count of read operations on completed metadata bios
@ vdo.dev.bios.meta.completed.write Count of write operations on completed metadata bios
@ vdo.dev.bios.page_cache.discard Count of discard operations on page cache bios
@ vdo.dev.bios.page_cache.flush Count of flush operations on page cache bios
@ vdo.dev.bios.page_cache.fua Count of force unit access operations on page cache bios
@ vdo.dev.bios.page_cache.read Count of read operations on page cache bios
@ vdo.dev.bios.page_cache.write Count of write operations on page cache bios
@ vdo.dev.bios.page_cache.completed.discard Count of discard operations on completed page cache bios
@ vdo.dev.bios.page_cache.completed.flush Count of flush operations on completed page cache bios
@ vdo.dev.bios.page_cache.completed.fua Count of force unit access operations on completed page cache bios
@ vdo.dev.bios.page_cache.completed.read Count of read operations on completed page cache bios
@ vdo.dev.bios.page_cache.completed.write Count of discard operations on completed page cache bios
@ vdo.dev.block_map.cache_pressure Count of times when a free page was not available
@ vdo.dev.block_map.cache_size Size of the block map page cache
@ vdo.dev.block_map.clean_pages Number of clean (resident) pages
@ vdo.dev.block_map.dirty_pages Number of dirty (resident) pages
@ vdo.dev.block_map.discard_required Count of gets requiring discard
@ vdo.dev.block_map.failed_pages Number of pages in failed state
@ vdo.dev.block_map.failed_reads Count of failed page reads
@ vdo.dev.block_map.failed_writes Count of failed page writes
@ vdo.dev.block_map.fetch_required Count of gets requiring fetch
@ vdo.dev.block_map.flush_count Count of flushes issued
@ vdo.dev.block_map.found_in_cache Count of gets that were already there
@ vdo.dev.block_map.free_pages Number of free pages
@ vdo.dev.block_map.incoming_pages Number of pages incoming
@ vdo.dev.block_map.outgoing_pages Number of pages outgoing
@ vdo.dev.block_map.pages_loaded Count of page fetches
@ vdo.dev.block_map.pages_saved Count of page saves
@ vdo.dev.block_map.read_count Count of getVDOPageAsync calls for read
@ vdo.dev.block_map.read_outgoing Count of gets for outgoing pages
@ vdo.dev.block_map.reclaimed Count of gets that are reclaimed
@ vdo.dev.block_map.wait_for_page Count of gets enqueued for their page
@ vdo.dev.block_map.write_count Count of getVDOPageAsync calls for write
@ vdo.dev.blocksize The device physical block size
@ vdo.dev.complete_recoveries Count of times the VDO has successfully recovered
@ vdo.dev.curr_dedupe_queries Number of dedupe queries active
@ vdo.dev.curr_vios_in_progress Number of VIOs in progress
@ vdo.dev.data_blocks.used Number of blocks used for data
@ vdo.dev.dedupe_advice.stale Count of times stale deduplication advice given
@ vdo.dev.dedupe_advice.timeouts Count of times deduplication advice timed out
@ vdo.dev.dedupe_advice.valid Count of times valid deduplication advice given
@ vdo.dev.errors.invalid_advicepbncount Count of invalid advice PBN errors
@ vdo.dev.errors.no_space_error_count Count of times a VIO completed with VDO_NO_SPACE error
@ vdo.dev.errors.readonly_error_count Count of times a VIO completed with a VDO_READ_ONLY error
@ vdo.dev.flush_out Count of flush events
@ vdo.dev.in_recovery_mode Whether VDO is currently in recovery mode
@ vdo.dev.instance Kernel instance number for this VDO
@ vdo.dev.journal_blocks.batching Difference between journal blocks started and written
@ vdo.dev.journal_blocks.committed Number of journal blocks for which a write operation has completed
@ vdo.dev.journal_blocks.started Number of journal blocks for which processing has started
@ vdo.dev.journal_blocks.written Number of journal blocks for which a write operation has been issued
@ vdo.dev.journal_blocks.writing Difference between journal entries written and committed
@ vdo.dev.journal_disk_full Count of times the on-disk journal was full
@ vdo.dev.journal_entries.batching Difference between journal entries started and written
@ vdo.dev.journal_entries.committed Number of journal entries for which a write operation has completed
@ vdo.dev.journal_entries.started Number of journal entries for which processing has started
@ vdo.dev.journal_entries.written Number of journal entries for which a write operation has been issued
@ vdo.dev.journal_entries.writing Difference between journal entries written and committed
@ vdo.dev.journal_slab.commits_requested Count of journal slab commits requested
@ vdo.dev.logical_blocks.count Number of logical blocks
@ vdo.dev.logical_blocks.used Number of logical blocks currently mapped to physical blocks
@ vdo.dev.logical_blocksize Logical block size
@ vdo.dev.max_dedupe_queries Maximum number of deduplication active queries
@ vdo.dev.maxvios Maximum number of active VIOs
@ vdo.dev.memory_usage.bios_used Count of all bios used
@ vdo.dev.memory_usage.bytes_used Count of all bytes used
@ vdo.dev.memory_usage.peak.bio_count Peak count of bios used
@ vdo.dev.memory_usage.peak.bytes_used Peak count of bytes used
@ vdo.dev.mode String describing the operating mode of the VDO
@ vdo.dev.overhead_blocks.used Number of blocks used for VDO metadata
@ vdo.dev.packer.compressed_blocks.written Count of blocks containing compressed items written
@ vdo.dev.packer.compressed_fragments.in_packer Number of VIOs that are pending in the packer
@ vdo.dev.packer.compressed_fragments.written Count of compressed data items written
@ vdo.dev.physical_blocks Number of physical blocks
@ vdo.dev.read_cache.accesses Count of accesses to the read cache
@ vdo.dev.read_cache.data_hits Count of data hits in the read cache
@ vdo.dev.read_cache.hits Count of all hits in the read cache
@ vdo.dev.readonly_recoveries Count of readonly recoveries performed
@ vdo.dev.recovery_percentage Percent complete when recovery is active
@ vdo.dev.ref_counts.blocks_written Count of reference blocks written
@ vdo.dev.slab.journal.blocked_count Count of times an entry was added over the block threshold
@ vdo.dev.slab.journal.blocks_written Count of times a tail block was written
@ vdo.dev.slab.journal.disk_full_count Count of times the on-disk journal was full
@ vdo.dev.slab.journal.flush_count Count of times an entry was added over the flush threshold
@ vdo.dev.slab.journal.tail_busy_count Count of times VDO had to wait for the tail to write
@ vdo.dev.slab.summary.blocks_written Count of blocks written
@ vdo.dev.write_policy String describing the active write policy of the VDO
@ vdo.dev.capacity Total physical device capacity
@ vdo.dev.used Used device space, including both data and metadata (overhead)
@ vdo.dev.available Difference between device capacity and used space
@ vdo.dev.used_percentage Percentage of physical device space used
@ vdo.dev.savings_percentage Percentage of logical blocks not being used for data blocks

@ vdo.dev.hash_lock.concurrent_data_matches Concurrent write data matches 
The number of writes with the same data as another in-flight write.
@ vdo.dev.hash_lock.concurrent_hash_collisions Concurrent write hash collisions
The number of writes whose hash collided with an in-flight write.
@ vdo.dev.hash_lock.dedupe_advice_stale Number of times deduplication advice was incorrect.
@ vdo.dev.hash_lock.dedupe_advice_valid Number of times deduplication advice was correct
@ vdo.dev.index.curr_dedupe_queries Current deduplication queries currently in-flight
@ vdo.dev.index.entries_indexed Total number of chunk names stored in the index
@ vdo.dev.index.max_dedupe_queries Maximum number of in-flight deduplication queries
@ vdo.dev.index.posts_found Post calls where entry found
The number of post calls since context statistics were last reset that
found an existing entry.
@ vdo.dev.index.posts_not_found Posts calls where entry not found
The number of post calls since context statistics were last reset that
added a new entry.
@ vdo.dev.index.queries_found Query calls where entry found
The number of query calls since context statistics were last reset that
found an existing entry.
@ vdo.dev.index.queries_not_found Query calls where entry not found
The number of query calls since context statistics were last reset that
did not find an entry.
@ vdo.dev.index.updates_found Update calls where entry found
The number of update calls since context statistics were last reset that
updated an existing entry.
@ vdo.dev.index.updates_not_found Update calls where entry not found
The number of update calls since context statistics were last reset that
added a new entry.
