docs: Format metrics in fixed-width font, not italics

Change-Id: I6fc9eaf0903bdbe4ccb82c4e7647478a1eef9785
This commit is contained in:
Tim Burke 2023-05-25 13:59:08 -07:00
parent 307315bde2
commit 1f298714af
16 changed files with 372 additions and 372 deletions

View File

@ -1,12 +1,12 @@
``account-auditor`` Metrics ``account-auditor`` Metrics
=========================== ===========================
========================== ========================================================= ============================ =========================================================
Metric Name Description Metric Name Description
-------------------------- --------------------------------------------------------- ---------------------------- ---------------------------------------------------------
`account-auditor.errors` Count of audit runs (across all account databases) which ``account-auditor.errors`` Count of audit runs (across all account databases) which
caught an Exception. caught an Exception.
`account-auditor.passes` Count of individual account databases which passed audit. ``account-auditor.passes`` Count of individual account databases which passed audit.
`account-auditor.failures` Count of individual account databases which failed audit. ``account-auditor.failures`` Count of individual account databases which failed audit.
`account-auditor.timing` Timing data for individual account database audits. ``account-auditor.timing`` Timing data for individual account database audits.
========================== ========================================================= ============================ =========================================================

View File

@ -1,25 +1,25 @@
``account-reaper`` Metrics ``account-reaper`` Metrics
========================== ==========================
============================================== ==================================================== ================================================ ====================================================
Metric Name Description Metric Name Description
---------------------------------------------- ---------------------------------------------------- ------------------------------------------------ ----------------------------------------------------
`account-reaper.errors` Count of devices failing the mount check. ``account-reaper.errors`` Count of devices failing the mount check.
`account-reaper.timing` Timing data for each reap_account() call. ``account-reaper.timing`` Timing data for each reap_account() call.
`account-reaper.return_codes.X` Count of HTTP return codes from various operations ``account-reaper.return_codes.X`` Count of HTTP return codes from various operations
(e.g. object listing, container deletion, etc.). The (e.g. object listing, container deletion, etc.). The
value for X is the first digit of the return code value for X is the first digit of the return code
(2 for 201, 4 for 404, etc.). (2 for 201, 4 for 404, etc.).
`account-reaper.containers_failures` Count of failures to delete a container. ``account-reaper.containers_failures`` Count of failures to delete a container.
`account-reaper.containers_deleted` Count of containers successfully deleted. ``account-reaper.containers_deleted`` Count of containers successfully deleted.
`account-reaper.containers_remaining` Count of containers which failed to delete with ``account-reaper.containers_remaining`` Count of containers which failed to delete with
zero successes. zero successes.
`account-reaper.containers_possibly_remaining` Count of containers which failed to delete with ``account-reaper.containers_possibly_remaining`` Count of containers which failed to delete with
at least one success. at least one success.
`account-reaper.objects_failures` Count of failures to delete an object. ``account-reaper.objects_failures`` Count of failures to delete an object.
`account-reaper.objects_deleted` Count of objects successfully deleted. ``account-reaper.objects_deleted`` Count of objects successfully deleted.
`account-reaper.objects_remaining` Count of objects which failed to delete with zero ``account-reaper.objects_remaining`` Count of objects which failed to delete with zero
successes. successes.
`account-reaper.objects_possibly_remaining` Count of objects which failed to delete with at ``account-reaper.objects_possibly_remaining`` Count of objects which failed to delete with at
least one success. least one success.
============================================== ==================================================== ================================================ ====================================================

View File

@ -1,31 +1,31 @@
``account-replicator`` Metrics ``account-replicator`` Metrics
============================== ==============================
===================================== ==================================================== ======================================= ====================================================
Metric Name Description Metric Name Description
------------------------------------- ---------------------------------------------------- --------------------------------------- ----------------------------------------------------
`account-replicator.diffs` Count of syncs handled by sending differing rows. ``account-replicator.diffs`` Count of syncs handled by sending differing rows.
`account-replicator.diff_caps` Count of "diffs" operations which failed because ``account-replicator.diff_caps`` Count of "diffs" operations which failed because
"max_diffs" was hit. "max_diffs" was hit.
`account-replicator.no_changes` Count of accounts found to be in sync. ``account-replicator.no_changes`` Count of accounts found to be in sync.
`account-replicator.hashmatches` Count of accounts found to be in sync via hash ``account-replicator.hashmatches`` Count of accounts found to be in sync via hash
comparison (`broker.merge_syncs` was called). comparison (``broker.merge_syncs`` was called).
`account-replicator.rsyncs` Count of completely missing accounts which were sent ``account-replicator.rsyncs`` Count of completely missing accounts which were sent
via rsync. via rsync.
`account-replicator.remote_merges` Count of syncs handled by sending entire database ``account-replicator.remote_merges`` Count of syncs handled by sending entire database
via rsync. via rsync.
`account-replicator.attempts` Count of database replication attempts. ``account-replicator.attempts`` Count of database replication attempts.
`account-replicator.failures` Count of database replication attempts which failed ``account-replicator.failures`` Count of database replication attempts which failed
due to corruption (quarantined) or inability to read due to corruption (quarantined) or inability to read
as well as attempts to individual nodes which as well as attempts to individual nodes which
failed. failed.
`account-replicator.removes.<device>` Count of databases on <device> deleted because the ``account-replicator.removes.<device>`` Count of databases on <device> deleted because the
delete_timestamp was greater than the put_timestamp delete_timestamp was greater than the put_timestamp
and the database had no rows or because it was and the database had no rows or because it was
successfully sync'ed to other locations and doesn't successfully sync'ed to other locations and doesn't
belong here anymore. belong here anymore.
`account-replicator.successes` Count of replication attempts to an individual node ``account-replicator.successes`` Count of replication attempts to an individual node
which were successful. which were successful.
`account-replicator.timing` Timing data for each database replication attempt ``account-replicator.timing`` Timing data for each database replication attempt
not resulting in a failure. not resulting in a failure.
===================================== ==================================================== ======================================= ====================================================

View File

@ -3,35 +3,35 @@
..note:: ..note::
"Not Found" is not considered an error and requests "Not Found" is not considered an error and requests
which increment `errors` are not included in the timing data. which increment ``errors`` are not included in the timing data.
======================================== ======================================================= ========================================== =======================================================
Metric Name Description Metric Name Description
---------------------------------------- ------------------------------------------------------- ------------------------------------------ -------------------------------------------------------
`account-server.DELETE.errors.timing` Timing data for each DELETE request resulting in an ``account-server.DELETE.errors.timing`` Timing data for each DELETE request resulting in an
error: bad request, not mounted, missing timestamp. error: bad request, not mounted, missing timestamp.
`account-server.DELETE.timing` Timing data for each DELETE request not resulting in ``account-server.DELETE.timing`` Timing data for each DELETE request not resulting in
an error. an error.
`account-server.PUT.errors.timing` Timing data for each PUT request resulting in an error: ``account-server.PUT.errors.timing`` Timing data for each PUT request resulting in an error:
bad request, not mounted, conflict, recently-deleted. bad request, not mounted, conflict, recently-deleted.
`account-server.PUT.timing` Timing data for each PUT request not resulting in an ``account-server.PUT.timing`` Timing data for each PUT request not resulting in an
error. error.
`account-server.HEAD.errors.timing` Timing data for each HEAD request resulting in an ``account-server.HEAD.errors.timing`` Timing data for each HEAD request resulting in an
error: bad request, not mounted. error: bad request, not mounted.
`account-server.HEAD.timing` Timing data for each HEAD request not resulting in ``account-server.HEAD.timing`` Timing data for each HEAD request not resulting in
an error. an error.
`account-server.GET.errors.timing` Timing data for each GET request resulting in an ``account-server.GET.errors.timing`` Timing data for each GET request resulting in an
error: bad request, not mounted, bad delimiter, error: bad request, not mounted, bad delimiter,
account listing limit too high, bad accept header. account listing limit too high, bad accept header.
`account-server.GET.timing` Timing data for each GET request not resulting in ``account-server.GET.timing`` Timing data for each GET request not resulting in
an error. an error.
`account-server.REPLICATE.errors.timing` Timing data for each REPLICATE request resulting in an ``account-server.REPLICATE.errors.timing`` Timing data for each REPLICATE request resulting in an
error: bad request, not mounted. error: bad request, not mounted.
`account-server.REPLICATE.timing` Timing data for each REPLICATE request not resulting ``account-server.REPLICATE.timing`` Timing data for each REPLICATE request not resulting
in an error. in an error.
`account-server.POST.errors.timing` Timing data for each POST request resulting in an ``account-server.POST.errors.timing`` Timing data for each POST request resulting in an
error: bad request, bad or missing timestamp, not error: bad request, bad or missing timestamp, not
mounted. mounted.
`account-server.POST.timing` Timing data for each POST request not resulting in ``account-server.POST.timing`` Timing data for each POST request not resulting in
an error. an error.
======================================== ======================================================= ========================================== =======================================================

View File

@ -1,12 +1,12 @@
``container-auditor`` Metrics ``container-auditor`` Metrics
============================= =============================
============================ ==================================================== ============================== ====================================================
Metric Name Description Metric Name Description
---------------------------- ---------------------------------------------------- ------------------------------ ----------------------------------------------------
`container-auditor.errors` Incremented when an Exception is caught in an audit ``container-auditor.errors`` Incremented when an Exception is caught in an audit
pass (only once per pass, max). pass (only once per pass, max).
`container-auditor.passes` Count of individual containers passing an audit. ``container-auditor.passes`` Count of individual containers passing an audit.
`container-auditor.failures` Count of individual containers failing an audit. ``container-auditor.failures`` Count of individual containers failing an audit.
`container-auditor.timing` Timing data for each container audit. ``container-auditor.timing`` Timing data for each container audit.
============================ ==================================================== ============================== ====================================================

View File

@ -1,31 +1,31 @@
``container-replicator`` Metrics ``container-replicator`` Metrics
================================ ================================
======================================= ==================================================== ========================================= ====================================================
Metric Name Description Metric Name Description
--------------------------------------- ---------------------------------------------------- ----------------------------------------- ----------------------------------------------------
`container-replicator.diffs` Count of syncs handled by sending differing rows. ``container-replicator.diffs`` Count of syncs handled by sending differing rows.
`container-replicator.diff_caps` Count of "diffs" operations which failed because ``container-replicator.diff_caps`` Count of "diffs" operations which failed because
"max_diffs" was hit. "max_diffs" was hit.
`container-replicator.no_changes` Count of containers found to be in sync. ``container-replicator.no_changes`` Count of containers found to be in sync.
`container-replicator.hashmatches` Count of containers found to be in sync via hash ``container-replicator.hashmatches`` Count of containers found to be in sync via hash
comparison (`broker.merge_syncs` was called). comparison (``broker.merge_syncs`` was called).
`container-replicator.rsyncs` Count of completely missing containers where were sent ``container-replicator.rsyncs`` Count of completely missing containers where were sent
via rsync. via rsync.
`container-replicator.remote_merges` Count of syncs handled by sending entire database ``container-replicator.remote_merges`` Count of syncs handled by sending entire database
via rsync. via rsync.
`container-replicator.attempts` Count of database replication attempts. ``container-replicator.attempts`` Count of database replication attempts.
`container-replicator.failures` Count of database replication attempts which failed ``container-replicator.failures`` Count of database replication attempts which failed
due to corruption (quarantined) or inability to read due to corruption (quarantined) or inability to read
as well as attempts to individual nodes which as well as attempts to individual nodes which
failed. failed.
`container-replicator.removes.<device>` Count of databases deleted on <device> because the ``container-replicator.removes.<device>`` Count of databases deleted on <device> because the
delete_timestamp was greater than the put_timestamp delete_timestamp was greater than the put_timestamp
and the database had no rows or because it was and the database had no rows or because it was
successfully sync'ed to other locations and doesn't successfully sync'ed to other locations and doesn't
belong here anymore. belong here anymore.
`container-replicator.successes` Count of replication attempts to an individual node ``container-replicator.successes`` Count of replication attempts to an individual node
which were successful. which were successful.
`container-replicator.timing` Timing data for each database replication attempt ``container-replicator.timing`` Timing data for each database replication attempt
not resulting in a failure. not resulting in a failure.
======================================= ==================================================== ========================================= ====================================================

View File

@ -3,33 +3,33 @@
.. note:: .. note::
"Not Found" is not considered an error and requests "Not Found" is not considered an error and requests
which increment `errors` are not included in the timing data. which increment ``errors`` are not included in the timing data.
========================================== ==================================================== ============================================ ====================================================
Metric Name Description Metric Name Description
------------------------------------------ ---------------------------------------------------- -------------------------------------------- ----------------------------------------------------
`container-server.DELETE.errors.timing` Timing data for DELETE request errors: bad request, ``container-server.DELETE.errors.timing`` Timing data for DELETE request errors: bad request,
not mounted, missing timestamp, conflict. not mounted, missing timestamp, conflict.
`container-server.DELETE.timing` Timing data for each DELETE request not resulting in ``container-server.DELETE.timing`` Timing data for each DELETE request not resulting in
an error. an error.
`container-server.PUT.errors.timing` Timing data for PUT request errors: bad request, ``container-server.PUT.errors.timing`` Timing data for PUT request errors: bad request,
missing timestamp, not mounted, conflict. missing timestamp, not mounted, conflict.
`container-server.PUT.timing` Timing data for each PUT request not resulting in an ``container-server.PUT.timing`` Timing data for each PUT request not resulting in an
error. error.
`container-server.HEAD.errors.timing` Timing data for HEAD request errors: bad request, ``container-server.HEAD.errors.timing`` Timing data for HEAD request errors: bad request,
not mounted. not mounted.
`container-server.HEAD.timing` Timing data for each HEAD request not resulting in ``container-server.HEAD.timing`` Timing data for each HEAD request not resulting in
an error. an error.
`container-server.GET.errors.timing` Timing data for GET request errors: bad request, ``container-server.GET.errors.timing`` Timing data for GET request errors: bad request,
not mounted, parameters not utf8, bad accept header. not mounted, parameters not utf8, bad accept header.
`container-server.GET.timing` Timing data for each GET request not resulting in ``container-server.GET.timing`` Timing data for each GET request not resulting in
an error. an error.
`container-server.REPLICATE.errors.timing` Timing data for REPLICATE request errors: bad ``container-server.REPLICATE.errors.timing`` Timing data for REPLICATE request errors: bad
request, not mounted. request, not mounted.
`container-server.REPLICATE.timing` Timing data for each REPLICATE request not resulting ``container-server.REPLICATE.timing`` Timing data for each REPLICATE request not resulting
in an error. in an error.
`container-server.POST.errors.timing` Timing data for POST request errors: bad request, ``container-server.POST.errors.timing`` Timing data for POST request errors: bad request,
bad x-container-sync-to, not mounted. bad x-container-sync-to, not mounted.
`container-server.POST.timing` Timing data for each POST request not resulting in ``container-server.POST.timing`` Timing data for each POST request not resulting in
an error. an error.
========================================== ==================================================== ============================================ ====================================================

View File

@ -1,18 +1,18 @@
``container-sync`` Metrics ``container-sync`` Metrics
========================== ==========================
=============================== ==================================================== ================================= ====================================================
Metric Name Description Metric Name Description
------------------------------- ---------------------------------------------------- --------------------------------- ----------------------------------------------------
`container-sync.skips` Count of containers skipped because they don't have ``container-sync.skips`` Count of containers skipped because they don't have
sync'ing enabled. sync'ing enabled.
`container-sync.failures` Count of failures sync'ing of individual containers. ``container-sync.failures`` Count of failures sync'ing of individual containers.
`container-sync.syncs` Count of individual containers sync'ed successfully. ``container-sync.syncs`` Count of individual containers sync'ed successfully.
`container-sync.deletes` Count of container database rows sync'ed by ``container-sync.deletes`` Count of container database rows sync'ed by
deletion. deletion.
`container-sync.deletes.timing` Timing data for each container database row ``container-sync.deletes.timing`` Timing data for each container database row
synchronization via deletion. synchronization via deletion.
`container-sync.puts` Count of container database rows sync'ed by Putting. ``container-sync.puts`` Count of container database rows sync'ed by Putting.
`container-sync.puts.timing` Timing data for each container database row ``container-sync.puts.timing`` Timing data for each container database row
synchronization via Putting. synchronization via Putting.
=============================== ==================================================== ================================= ====================================================

View File

@ -1,17 +1,17 @@
``container-updater`` Metrics ``container-updater`` Metrics
============================= =============================
============================== ==================================================== ================================ ====================================================
Metric Name Description Metric Name Description
------------------------------ ---------------------------------------------------- -------------------------------- ----------------------------------------------------
`container-updater.successes` Count of containers which successfully updated their ``container-updater.successes`` Count of containers which successfully updated their
account. account.
`container-updater.failures` Count of containers which failed to update their ``container-updater.failures`` Count of containers which failed to update their
account. account.
`container-updater.no_changes` Count of containers which didn't need to update ``container-updater.no_changes`` Count of containers which didn't need to update
their account. their account.
`container-updater.timing` Timing data for processing a container; only ``container-updater.timing`` Timing data for processing a container; only
includes timing for containers which needed to includes timing for containers which needed to
update their accounts (i.e. "successes" and update their accounts (i.e. "successes" and
"failures" but not "no_changes"). "failures" but not "no_changes").
============================== ==================================================== ================================ ====================================================

View File

@ -1,13 +1,13 @@
``object-auditor`` Metrics ``object-auditor`` Metrics
========================== ==========================
============================ ==================================================== ============================== ====================================================
Metric Name Description Metric Name Description
---------------------------- ---------------------------------------------------- ------------------------------ ----------------------------------------------------
`object-auditor.quarantines` Count of objects failing audit and quarantined. ``object-auditor.quarantines`` Count of objects failing audit and quarantined.
`object-auditor.errors` Count of errors encountered while auditing objects. ``object-auditor.errors`` Count of errors encountered while auditing objects.
`object-auditor.timing` Timing data for each object audit (does not include ``object-auditor.timing`` Timing data for each object audit (does not include
any rate-limiting sleep time for any rate-limiting sleep time for
max_files_per_second, but does include rate-limiting max_files_per_second, but does include rate-limiting
sleep time for max_bytes_per_second). sleep time for max_bytes_per_second).
============================ ==================================================== ============================== ====================================================

View File

@ -1,12 +1,12 @@
``object-expirer`` Metrics ``object-expirer`` Metrics
========================== ==========================
======================== ==================================================== ========================== ====================================================
Metric Name Description Metric Name Description
------------------------ ---------------------------------------------------- -------------------------- ----------------------------------------------------
`object-expirer.objects` Count of objects expired. ``object-expirer.objects`` Count of objects expired.
`object-expirer.errors` Count of errors encountered while attempting to ``object-expirer.errors`` Count of errors encountered while attempting to
expire an object. expire an object.
`object-expirer.timing` Timing data for each object expiration attempt, ``object-expirer.timing`` Timing data for each object expiration attempt,
including ones resulting in an error. including ones resulting in an error.
======================== ==================================================== ========================== ====================================================

View File

@ -1,25 +1,25 @@
``object-reconstructor`` Metrics ``object-reconstructor`` Metrics
================================ ================================
====================================================== ====================================================== ======================================================== ======================================================
Metric Name Description Metric Name Description
------------------------------------------------------ ------------------------------------------------------ -------------------------------------------------------- ------------------------------------------------------
`object-reconstructor.partition.delete.count.<device>` A count of partitions on <device> which were ``object-reconstructor.partition.delete.count.<device>`` A count of partitions on <device> which were
reconstructed and synced to another node because they reconstructed and synced to another node because they
didn't belong on this node. This metric is tracked didn't belong on this node. This metric is tracked
per-device to allow for "quiescence detection" for per-device to allow for "quiescence detection" for
object reconstruction activity on each device. object reconstruction activity on each device.
`object-reconstructor.partition.delete.timing` Timing data for partitions reconstructed and synced to ``object-reconstructor.partition.delete.timing`` Timing data for partitions reconstructed and synced to
another node because they didn't belong on this node. another node because they didn't belong on this node.
This metric is not tracked per device. This metric is not tracked per device.
`object-reconstructor.partition.update.count.<device>` A count of partitions on <device> which were ``object-reconstructor.partition.update.count.<device>`` A count of partitions on <device> which were
reconstructed and synced to another node, but also reconstructed and synced to another node, but also
belong on this node. As with delete.count, this metric belong on this node. As with delete.count, this metric
is tracked per-device. is tracked per-device.
`object-reconstructor.partition.update.timing` Timing data for partitions reconstructed which also ``object-reconstructor.partition.update.timing`` Timing data for partitions reconstructed which also
belong on this node. This metric is not tracked belong on this node. This metric is not tracked
per-device. per-device.
`object-reconstructor.suffix.hashes` Count of suffix directories whose hash (of filenames) ``object-reconstructor.suffix.hashes`` Count of suffix directories whose hash (of filenames)
was recalculated. was recalculated.
`object-reconstructor.suffix.syncs` Count of suffix directories reconstructed with ssync. ``object-reconstructor.suffix.syncs`` Count of suffix directories reconstructed with ssync.
====================================================== ====================================================== ======================================================== ======================================================

View File

@ -1,25 +1,25 @@
``object-replicator`` Metrics ``object-replicator`` Metrics
============================= =============================
=================================================== ==================================================== ===================================================== ====================================================
Metric Name Description Metric Name Description
--------------------------------------------------- ---------------------------------------------------- ----------------------------------------------------- ----------------------------------------------------
`object-replicator.partition.delete.count.<device>` A count of partitions on <device> which were ``object-replicator.partition.delete.count.<device>`` A count of partitions on <device> which were
replicated to another node because they didn't replicated to another node because they didn't
belong on this node. This metric is tracked belong on this node. This metric is tracked
per-device to allow for "quiescence detection" for per-device to allow for "quiescence detection" for
object replication activity on each device. object replication activity on each device.
`object-replicator.partition.delete.timing` Timing data for partitions replicated to another ``object-replicator.partition.delete.timing`` Timing data for partitions replicated to another
node because they didn't belong on this node. This node because they didn't belong on this node. This
metric is not tracked per device. metric is not tracked per device.
`object-replicator.partition.update.count.<device>` A count of partitions on <device> which were ``object-replicator.partition.update.count.<device>`` A count of partitions on <device> which were
replicated to another node, but also belong on this replicated to another node, but also belong on this
node. As with delete.count, this metric is tracked node. As with delete.count, this metric is tracked
per-device. per-device.
`object-replicator.partition.update.timing` Timing data for partitions replicated which also ``object-replicator.partition.update.timing`` Timing data for partitions replicated which also
belong on this node. This metric is not tracked belong on this node. This metric is not tracked
per-device. per-device.
`object-replicator.suffix.hashes` Count of suffix directories whose hash (of filenames) ``object-replicator.suffix.hashes`` Count of suffix directories whose hash (of filenames)
was recalculated. was recalculated.
`object-replicator.suffix.syncs` Count of suffix directories replicated with rsync. ``object-replicator.suffix.syncs`` Count of suffix directories replicated with rsync.
=================================================== ==================================================== ===================================================== ====================================================

View File

@ -1,49 +1,49 @@
``object-server`` Metrics ``object-server`` Metrics
========================= =========================
======================================= ==================================================== ========================================= ====================================================
Metric Name Description Metric Name Description
--------------------------------------- ---------------------------------------------------- ----------------------------------------- ----------------------------------------------------
`object-server.quarantines` Count of objects (files) found bad and moved to ``object-server.quarantines`` Count of objects (files) found bad and moved to
quarantine. quarantine.
`object-server.async_pendings` Count of container updates saved as async_pendings ``object-server.async_pendings`` Count of container updates saved as async_pendings
(may result from PUT or DELETE requests). (may result from PUT or DELETE requests).
`object-server.POST.errors.timing` Timing data for POST request errors: bad request, ``object-server.POST.errors.timing`` Timing data for POST request errors: bad request,
missing timestamp, delete-at in past, not mounted. missing timestamp, delete-at in past, not mounted.
`object-server.POST.timing` Timing data for each POST request not resulting in ``object-server.POST.timing`` Timing data for each POST request not resulting in
an error. an error.
`object-server.PUT.errors.timing` Timing data for PUT request errors: bad request, ``object-server.PUT.errors.timing`` Timing data for PUT request errors: bad request,
not mounted, missing timestamp, object creation not mounted, missing timestamp, object creation
constraint violation, delete-at in past. constraint violation, delete-at in past.
`object-server.PUT.timeouts` Count of object PUTs which exceeded max_upload_time. ``object-server.PUT.timeouts`` Count of object PUTs which exceeded max_upload_time.
`object-server.PUT.timing` Timing data for each PUT request not resulting in an ``object-server.PUT.timing`` Timing data for each PUT request not resulting in an
error. error.
`object-server.PUT.<device>.timing` Timing data per kB transferred (ms/kB) for each ``object-server.PUT.<device>.timing`` Timing data per kB transferred (ms/kB) for each
non-zero-byte PUT request on each device. non-zero-byte PUT request on each device.
Monitoring problematic devices, higher is bad. Monitoring problematic devices, higher is bad.
`object-server.GET.errors.timing` Timing data for GET request errors: bad request, ``object-server.GET.errors.timing`` Timing data for GET request errors: bad request,
not mounted, header timestamps before the epoch, not mounted, header timestamps before the epoch,
precondition failed. precondition failed.
File errors resulting in a quarantine are not File errors resulting in a quarantine are not
counted here. counted here.
`object-server.GET.timing` Timing data for each GET request not resulting in an ``object-server.GET.timing`` Timing data for each GET request not resulting in an
error. Includes requests which couldn't find the error. Includes requests which couldn't find the
object (including disk errors resulting in file object (including disk errors resulting in file
quarantine). quarantine).
`object-server.HEAD.errors.timing` Timing data for HEAD request errors: bad request, ``object-server.HEAD.errors.timing`` Timing data for HEAD request errors: bad request,
not mounted. not mounted.
`object-server.HEAD.timing` Timing data for each HEAD request not resulting in ``object-server.HEAD.timing`` Timing data for each HEAD request not resulting in
an error. Includes requests which couldn't find the an error. Includes requests which couldn't find the
object (including disk errors resulting in file object (including disk errors resulting in file
quarantine). quarantine).
`object-server.DELETE.errors.timing` Timing data for DELETE request errors: bad request, ``object-server.DELETE.errors.timing`` Timing data for DELETE request errors: bad request,
missing timestamp, not mounted, precondition missing timestamp, not mounted, precondition
failed. Includes requests which couldn't find or failed. Includes requests which couldn't find or
match the object. match the object.
`object-server.DELETE.timing` Timing data for each DELETE request not resulting ``object-server.DELETE.timing`` Timing data for each DELETE request not resulting
in an error. in an error.
`object-server.REPLICATE.errors.timing` Timing data for REPLICATE request errors: bad ``object-server.REPLICATE.errors.timing`` Timing data for REPLICATE request errors: bad
request, not mounted. request, not mounted.
`object-server.REPLICATE.timing` Timing data for each REPLICATE request not resulting ``object-server.REPLICATE.timing`` Timing data for each REPLICATE request not resulting
in an error. in an error.
======================================= ==================================================== ========================================= ====================================================

View File

@ -1,22 +1,22 @@
``object-updater`` Metrics ``object-updater`` Metrics
========================== ==========================
============================ ==================================================== ============================== ====================================================
Metric Name Description Metric Name Description
---------------------------- ---------------------------------------------------- ------------------------------ ----------------------------------------------------
`object-updater.errors` Count of drives not mounted or async_pending files ``object-updater.errors`` Count of drives not mounted or async_pending files
with an unexpected name. with an unexpected name.
`object-updater.timing` Timing data for object sweeps to flush async_pending ``object-updater.timing`` Timing data for object sweeps to flush async_pending
container updates. Does not include object sweeps container updates. Does not include object sweeps
which did not find an existing async_pending storage which did not find an existing async_pending storage
directory. directory.
`object-updater.quarantines` Count of async_pending container updates which were ``object-updater.quarantines`` Count of async_pending container updates which were
corrupted and moved to quarantine. corrupted and moved to quarantine.
`object-updater.successes` Count of successful container updates. ``object-updater.successes`` Count of successful container updates.
`object-updater.failures` Count of failed container updates. ``object-updater.failures`` Count of failed container updates.
`object-updater.unlinks` Count of async_pending files unlinked. An ``object-updater.unlinks`` Count of async_pending files unlinked. An
async_pending file is unlinked either when it is async_pending file is unlinked either when it is
successfully processed or when the replicator sees successfully processed or when the replicator sees
that there is a newer async_pending file for the that there is a newer async_pending file for the
same object. same object.
============================ ==================================================== ============================== ====================================================

View File

@ -4,27 +4,27 @@
In the table, ``<type>`` is the proxy-server controller responsible for the In the table, ``<type>`` is the proxy-server controller responsible for the
request and will be one of ``account``, ``container``, or ``object``. request and will be one of ``account``, ``container``, or ``object``.
======================================== ==================================================== ========================================== ====================================================
Metric Name Description Metric Name Description
---------------------------------------- ---------------------------------------------------- ------------------------------------------ ----------------------------------------------------
`proxy-server.errors` Count of errors encountered while serving requests ``proxy-server.errors`` Count of errors encountered while serving requests
before the controller type is determined. Includes before the controller type is determined. Includes
invalid Content-Length, errors finding the internal invalid Content-Length, errors finding the internal
controller to handle the request, invalid utf8, and controller to handle the request, invalid utf8, and
bad URLs. bad URLs.
`proxy-server.<type>.handoff_count` Count of node hand-offs; only tracked if log_handoffs ``proxy-server.<type>.handoff_count`` Count of node hand-offs; only tracked if log_handoffs
is set in the proxy-server config. is set in the proxy-server config.
`proxy-server.<type>.handoff_all_count` Count of times *only* hand-off locations were ``proxy-server.<type>.handoff_all_count`` Count of times *only* hand-off locations were
utilized; only tracked if log_handoffs is set in the utilized; only tracked if log_handoffs is set in the
proxy-server config. proxy-server config.
`proxy-server.<type>.client_timeouts` Count of client timeouts (client did not read within ``proxy-server.<type>.client_timeouts`` Count of client timeouts (client did not read within
`client_timeout` seconds during a GET or did not ``client_timeout`` seconds during a GET or did not
supply data within `client_timeout` seconds during supply data within ``client_timeout`` seconds during
a PUT). a PUT).
`proxy-server.<type>.client_disconnects` Count of detected client disconnects during PUT ``proxy-server.<type>.client_disconnects`` Count of detected client disconnects during PUT
operations (does NOT include caught Exceptions in operations (does NOT include caught Exceptions in
the proxy-server which caused a client disconnect). the proxy-server which caused a client disconnect).
======================================== ==================================================== ========================================== ====================================================
Additionally, middleware often emit their own metrics Additionally, middleware often emit their own metrics
@ -41,51 +41,51 @@ config variable and the default setting yields the above behavior.
.. _Swift Origin Server: https://github.com/dpgoetz/sos .. _Swift Origin Server: https://github.com/dpgoetz/sos
==================================================== ============================================ ====================================================== ============================================
Metric Name Description Metric Name Description
---------------------------------------------------- -------------------------------------------- ------------------------------------------------------ --------------------------------------------
`proxy-server.<type>.<verb>.<status>.timing` Timing data for requests, start to finish. ``proxy-server.<type>.<verb>.<status>.timing`` Timing data for requests, start to finish.
The <status> portion is the numeric HTTP The <status> portion is the numeric HTTP
status code for the request (e.g. "200" or status code for the request (e.g. "200" or
"404"). "404").
`proxy-server.<type>.GET.<status>.first-byte.timing` Timing data up to completion of sending the ``proxy-server.<type>.GET.<status>.first-byte.timing`` Timing data up to completion of sending the
response headers (only for GET requests). response headers (only for GET requests).
<status> and <type> are as for the main <status> and <type> are as for the main
timing metric. timing metric.
`proxy-server.<type>.<verb>.<status>.xfer` This counter metric is the sum of bytes ``proxy-server.<type>.<verb>.<status>.xfer`` This counter metric is the sum of bytes
transferred in (from clients) and out (to transferred in (from clients) and out (to
clients) for requests. The <type>, <verb>, clients) for requests. The <type>, <verb>,
and <status> portions of the metric are just and <status> portions of the metric are just
like the main timing metric. like the main timing metric.
==================================================== ============================================ ====================================================== ============================================
The ``proxy-logging`` middleware also groups these metrics by policy. The The ``proxy-logging`` middleware also groups these metrics by policy. The
``<policy-index>`` portion represents a policy index: ``<policy-index>`` portion represents a policy index:
========================================================================== ===================================== ============================================================================ =====================================
Metric Name Description Metric Name Description
-------------------------------------------------------------------------- ------------------------------------- ---------------------------------------------------------------------------- -------------------------------------
`proxy-server.object.policy.<policy-index>.<verb>.<status>.timing` Timing data for requests, aggregated ``proxy-server.object.policy.<policy-index>.<verb>.<status>.timing`` Timing data for requests, aggregated
by policy index. by policy index.
`proxy-server.object.policy.<policy-index>.GET.<status>.first-byte.timing` Timing data up to completion of ``proxy-server.object.policy.<policy-index>.GET.<status>.first-byte.timing`` Timing data up to completion of
sending the response headers, sending the response headers,
aggregated by policy index. aggregated by policy index.
`proxy-server.object.policy.<policy-index>.<verb>.<status>.xfer` Sum of bytes transferred in and out, ``proxy-server.object.policy.<policy-index>.<verb>.<status>.xfer`` Sum of bytes transferred in and out,
aggregated by policy index. aggregated by policy index.
========================================================================== ===================================== ============================================================================ =====================================
``tempauth`` Middleware ``tempauth`` Middleware
----------------------- -----------------------
In the table, ``<reseller_prefix>`` represents the actual configured In the table, ``<reseller_prefix>`` represents the actual configured
reseller_prefix or ``NONE`` if the reseller_prefix is the empty string: reseller_prefix or ``NONE`` if the reseller_prefix is the empty string:
========================================= ==================================================== =========================================== ====================================================
Metric Name Description Metric Name Description
----------------------------------------- ---------------------------------------------------- ------------------------------------------- ----------------------------------------------------
`tempauth.<reseller_prefix>.unauthorized` Count of regular requests which were denied with ``tempauth.<reseller_prefix>.unauthorized`` Count of regular requests which were denied with
HTTPUnauthorized. HTTPUnauthorized.
`tempauth.<reseller_prefix>.forbidden` Count of regular requests which were denied with ``tempauth.<reseller_prefix>.forbidden`` Count of regular requests which were denied with
HTTPForbidden. HTTPForbidden.
`tempauth.<reseller_prefix>.token_denied` Count of token requests which were denied. ``tempauth.<reseller_prefix>.token_denied`` Count of token requests which were denied.
`tempauth.<reseller_prefix>.errors` Count of errors. ``tempauth.<reseller_prefix>.errors`` Count of errors.
========================================= ==================================================== =========================================== ====================================================