9
You need to build the storage rings on the proxy server node, and
10
distribute them to all the servers in the cluster. Storage rings
11
contain information about all the Swift storage partitions and how
12
they are distributed between the different nodes and disks. For more
13
information see :doc:`overview_ring`.
9
You may build the storage rings on any server with the appropriate
10
version of Swift installed. Once built or changed (rebalanced), you
11
must distribute the rings to all the servers in the cluster. Storage
12
rings contain information about all the Swift storage partitions and
13
how they are distributed between the different nodes and disks.
15
Swift 1.6.0 is the last version to use a Python pickle format.
16
Subsequent versions use a different serialization format. **Rings
17
generated by Swift versions 1.6.0 and earlier may be read by any
18
version, but rings generated after 1.6.0 may only be read by Swift
19
versions greater than 1.6.0.** So when upgrading from version 1.6.0 or
20
earlier to a version greater than 1.6.0, either upgrade Swift on your
21
ring building server **last** after all Swift nodes have been successfully
22
upgraded, or refrain from generating rings until all Swift nodes have
23
been successfully upgraded.
25
If you need to downgrade from a version of swift greater than 1.6.0 to
26
a version less than or equal to 1.6.0, first downgrade your ring-building
27
server, generate new rings, push them out, then continue with the rest
30
For more information see :doc:`overview_ring`.
15
32
Removing a device from the ring::
493
510
Metrics for `account-replicator`:
495
================================== ====================================================
496
Metric Name Description
497
---------------------------------- ----------------------------------------------------
498
`account-replicator.diffs` Count of syncs handled by sending differing rows.
499
`account-replicator.diff_caps` Count of "diffs" operations which failed because
501
`account-replicator.no_changes` Count of accounts found to be in sync.
502
`account-replicator.hashmatches` Count of accounts found to be in sync via hash
503
comparison (`broker.merge_syncs` was called).
504
`account-replicator.rsyncs` Count of completely missing accounts where were sent
506
`account-replicator.remote_merges` Count of syncs handled by sending entire database
508
`account-replicator.attempts` Count of database replication attempts.
509
`account-replicator.failures` Count of database replication attempts which failed
510
due to corruption (quarantined) or inability to read
511
as well as attempts to individual nodes which
513
`account-replicator.removes` Count of databases deleted because the
514
delete_timestamp was greater than the put_timestamp
515
and the database had no rows or because it was
516
successfully sync'ed to other locations and doesn't
518
`account-replicator.successes` Count of replication attempts to an individual node
519
which were successful.
520
`account-replicator.timing` Timing data for each database replication attempt
521
not resulting in a failure.
522
================================== ====================================================
512
===================================== ====================================================
513
Metric Name Description
514
------------------------------------- ----------------------------------------------------
515
`account-replicator.diffs` Count of syncs handled by sending differing rows.
516
`account-replicator.diff_caps` Count of "diffs" operations which failed because
518
`account-replicator.no_changes` Count of accounts found to be in sync.
519
`account-replicator.hashmatches` Count of accounts found to be in sync via hash
520
comparison (`broker.merge_syncs` was called).
521
`account-replicator.rsyncs` Count of completely missing accounts where were sent
523
`account-replicator.remote_merges` Count of syncs handled by sending entire database
525
`account-replicator.attempts` Count of database replication attempts.
526
`account-replicator.failures` Count of database replication attempts which failed
527
due to corruption (quarantined) or inability to read
528
as well as attempts to individual nodes which
530
`account-replicator.removes.<device>` Count of databases on <device> deleted because the
531
delete_timestamp was greater than the put_timestamp
532
and the database had no rows or because it was
533
successfully sync'ed to other locations and doesn't
535
`account-replicator.successes` Count of replication attempts to an individual node
536
which were successful.
537
`account-replicator.timing` Timing data for each database replication attempt
538
not resulting in a failure.
539
===================================== ====================================================
524
541
Metrics for `container-auditor`:
536
553
Metrics for `container-replicator`:
538
==================================== ====================================================
539
Metric Name Description
540
------------------------------------ ----------------------------------------------------
541
`container-replicator.diffs` Count of syncs handled by sending differing rows.
542
`container-replicator.diff_caps` Count of "diffs" operations which failed because
544
`container-replicator.no_changes` Count of containers found to be in sync.
545
`container-replicator.hashmatches` Count of containers found to be in sync via hash
546
comparison (`broker.merge_syncs` was called).
547
`container-replicator.rsyncs` Count of completely missing containers where were sent
549
`container-replicator.remote_merges` Count of syncs handled by sending entire database
551
`container-replicator.attempts` Count of database replication attempts.
552
`container-replicator.failures` Count of database replication attempts which failed
553
due to corruption (quarantined) or inability to read
554
as well as attempts to individual nodes which
556
`container-replicator.removes` Count of databases deleted because the
557
delete_timestamp was greater than the put_timestamp
558
and the database had no rows or because it was
559
successfully sync'ed to other locations and doesn't
561
`container-replicator.successes` Count of replication attempts to an individual node
562
which were successful.
563
`container-replicator.timing` Timing data for each database replication attempt
564
not resulting in a failure.
565
==================================== ====================================================
555
======================================= ====================================================
556
Metric Name Description
557
--------------------------------------- ----------------------------------------------------
558
`container-replicator.diffs` Count of syncs handled by sending differing rows.
559
`container-replicator.diff_caps` Count of "diffs" operations which failed because
561
`container-replicator.no_changes` Count of containers found to be in sync.
562
`container-replicator.hashmatches` Count of containers found to be in sync via hash
563
comparison (`broker.merge_syncs` was called).
564
`container-replicator.rsyncs` Count of completely missing containers where were sent
566
`container-replicator.remote_merges` Count of syncs handled by sending entire database
568
`container-replicator.attempts` Count of database replication attempts.
569
`container-replicator.failures` Count of database replication attempts which failed
570
due to corruption (quarantined) or inability to read
571
as well as attempts to individual nodes which
573
`container-replicator.removes.<device>` Count of databases deleted on <device> because the
574
delete_timestamp was greater than the put_timestamp
575
and the database had no rows or because it was
576
successfully sync'ed to other locations and doesn't
578
`container-replicator.successes` Count of replication attempts to an individual node
579
which were successful.
580
`container-replicator.timing` Timing data for each database replication attempt
581
not resulting in a failure.
582
======================================= ====================================================
567
584
Metrics for `container-server` ("Not Found" is not considered an error and requests
568
585
which increment `errors` are not included in the timing data):
742
759
`object-updater.failures` Count of failed continer updates.
743
760
============================ ====================================================
745
Metrics for `proxy-server` (in the table, `<type>` may be `Account`, `Container`,
746
or `Object`, and corresponds to the internal Controller object which handled the
749
========================================= ====================================================
750
Metric Name Description
751
----------------------------------------- ----------------------------------------------------
752
`proxy-server.errors` Count of errors encountered while serving requests
753
before the controller type is determined. Includes
754
invalid Content-Length, errors finding the internal
755
controller to handle the request, invalid utf8, and
757
`proxy-server.<type>.errors` Count of errors encountered after the controller
758
type is known. The details of which responses are
759
errors depend on the controller type and request
760
type (GET, PUT, etc.). Failed
761
authentication/authorization and "Not Found"
762
responses are not counted as errors.
763
`proxy-server.<type>.client_timeouts` Count of client timeouts (client did not read from
764
queue within `client_timeout` seconds).
765
`proxy-server.<type>.client_disconnects` Count of detected client disconnects.
766
`proxy-server.<type>.method_not_allowed` Count of MethodNotAllowed responses sent by the
767
`proxy-server.<type>.auth_short_circuits` Count of requests which short-circuited with an
768
authentication/authorization failure.
769
`proxy-server.<type>.GET.timing` Timing data for GET requests (excluding requests
770
with errors or failed authentication/authorization).
771
`proxy-server.<type>.HEAD.timing` Timing data for HEAD requests (excluding requests
772
with errors or failed authentication/authorization).
773
`proxy-server.<type>.POST.timing` Timing data for POST requests (excluding requests
774
with errors or failed authentication/authorization).
775
Requests with a client disconnect ARE included in
777
`proxy-server.<type>.PUT.timing` Timing data for PUT requests (excluding requests
778
with errors or failed authentication/authorization).
779
Account PUT requests which return MethodNotAllowed
780
because allow_account_management is disabled ARE
782
`proxy-server.<type>.DELETE.timing` Timing data for DELETE requests (excluding requests
783
with errors or failed authentication/authorization).
784
Account DELETE requests which return
785
MethodNotAllowed because allow_account_management is
786
disabled ARE included.
787
`proxy-server.Object.COPY.timing` Timing data for object COPY requests (excluding
788
requests with errors or failed
789
authentication/authorization).
790
========================================= ====================================================
792
Metrics for `tempauth` (in the table, `<reseller_prefix>` represents the actual configured
793
reseller_prefix or "`NONE`" if the reseller_prefix is the empty string):
762
Metrics for `proxy-server` (in the table, `<type>` is the proxy-server
763
controller responsible for the request and will be one of "account",
764
"container", or "object"):
766
======================================== ====================================================
767
Metric Name Description
768
---------------------------------------- ----------------------------------------------------
769
`proxy-server.errors` Count of errors encountered while serving requests
770
before the controller type is determined. Includes
771
invalid Content-Length, errors finding the internal
772
controller to handle the request, invalid utf8, and
774
`proxy-server.<type>.handoff_count` Count of node hand-offs; only tracked if log_handoffs
775
is set in the proxy-server config.
776
`proxy-server.<type>.handoff_all_count` Count of times *only* hand-off locations were
777
utilized; only tracked if log_handoffs is set in the
779
`proxy-server.<type>.client_timeouts` Count of client timeouts (client did not read within
780
`client_timeout` seconds during a GET or did not
781
supply data within `client_timeout` seconds during
783
`proxy-server.<type>.client_disconnects` Count of detected client disconnects during PUT
784
operations (does NOT include caught Exceptions in
785
the proxy-server which caused a client disconnect).
786
======================================== ====================================================
788
Metrics for `proxy-logging` middleware (in the table, `<type>` is either the
789
proxy-server controller responsible for the request: "account", "container",
790
"object", or the string "SOS" if the request came from the `Swift Origin Server`_
791
middleware. The `<verb>` portion will be one of "GET", "HEAD", "POST", "PUT",
792
"DELETE", "COPY", or "BAD_METHOD". The list of valid HTTP methods is
793
configurable via the `log_statsd_valid_http_methods` config variable and the
794
default setting yields the above behavior.
796
.. _Swift Origin Server: https://github.com/dpgoetz/sos
798
============================================ ====================================================
799
Metric Name Description
800
-------------------------------------------- ----------------------------------------------------
801
`proxy-server.<type>.<verb>.<status>.timing` Timing data for requests. The <status> portion is
802
the numeric HTTP status code for the request (eg.
804
`proxy-server.<type>.<verb>.<status>.xfer` The count of the sum of bytes transferred in (from
805
clients) and out (to clients) for requests. The
806
<type>, <verb>, and <status> portions of the metric
807
are just like the timing metric.
808
============================================ ====================================================
810
Metrics for `tempauth` middleware (in the table, `<reseller_prefix>` represents
811
the actual configured reseller_prefix or "`NONE`" if the reseller_prefix is the
795
814
========================================= ====================================================
796
815
Metric Name Description