4a2ae2b460
Removed many StatsD logging calls in proxy-server and added swift-informant-style catch-all logging in the proxy-logger middleware. Many errors previously rolled into the "proxy-server.<type>.errors" counter will now appear broken down by response code and with timing data at: "proxy-server.<type>.<verb>.<status>.timing". Also, bytes transferred (sum of in + out) will be at: "proxy-server.<type>.<verb>.<status>.xfer". The proxy-logging middleware can get its StatsD config from standard vars in [DEFAULT] or from access_log_statsd_* config vars in its config section. Similarly to Swift Informant, request methods ("verbs") are filtered using the new proxy-logging config var, "log_statsd_valid_http_methods" which defaults to GET, HEAD, POST, PUT, DELETE, and COPY. Requests with methods not in this list use "BAD_METHOD" for <verb> in the metric name. To avoid user error, access_log_statsd_valid_http_methods is also accepted. Previously, proxy-server metrics used "Account", "Container", and "Object" for the <type>, but these are now all lowercase. Updated the admin guide's StatsD docs to reflect the above changes and also include the "proxy-server.<type>.handoff_count" and "proxy-server.<type>.handoff_all_count" metrics. The proxy server now saves off the original req.method and proxy_logging will use this if it can (both for request logging and as the "<verb>" in the statsd timing metric). This fixes bug 1025433. Removed some stale access_log_* related code in proxy/server.py. Also removed the BaseApplication/Application distinction as it's no longer necessary. Fixed up the sample config files a bit (logging lines, mostly). Fixed typo in SAIO development guide. Got proxy_logging.py test coverage to 100%. Fixed proxy_logging.py for PEP8 v1.3.2. Enhanced test.unit.FakeLogger to track more calls to enable testing StatsD metric calls. Change-Id: I45d94cb76450be96d66fcfab56359bdfdc3a2576
108 lines
3.1 KiB
Plaintext
108 lines
3.1 KiB
Plaintext
[DEFAULT]
|
|
# bind_ip = 0.0.0.0
|
|
# bind_port = 6001
|
|
# backlog = 4096
|
|
# workers = 1
|
|
# user = swift
|
|
# swift_dir = /etc/swift
|
|
# devices = /srv/node
|
|
# mount_check = true
|
|
# disable_fallocate = false
|
|
# This is a comma separated list of hosts allowed in the X-Container-Sync-To
|
|
# field for containers.
|
|
# allowed_sync_hosts = 127.0.0.1
|
|
# You can specify default log routing here if you want:
|
|
# log_name = swift
|
|
# log_facility = LOG_LOCAL0
|
|
# log_level = INFO
|
|
# log_address = /dev/log
|
|
# If set, log_udp_host will override log_address
|
|
# log_udp_host =
|
|
# log_udp_port = 514
|
|
# You can enable StatsD logging here:
|
|
# log_statsd_host = localhost
|
|
# log_statsd_port = 8125
|
|
# log_statsd_default_sample_rate = 1
|
|
# log_statsd_metric_prefix =
|
|
# If you don't mind the extra disk space usage in overhead, you can turn this
|
|
# on to preallocate disk space with SQLite databases to decrease fragmentation.
|
|
# db_preallocation = off
|
|
|
|
[pipeline:main]
|
|
pipeline = recon container-server
|
|
|
|
[app:container-server]
|
|
use = egg:swift#container
|
|
# You can override the default log routing for this app here:
|
|
# set log_name = container-server
|
|
# set log_facility = LOG_LOCAL0
|
|
# set log_level = INFO
|
|
# set log_requests = True
|
|
# set log_address = /dev/log
|
|
# node_timeout = 3
|
|
# conn_timeout = 0.5
|
|
# allow_versions = False
|
|
# auto_create_account_prefix = .
|
|
|
|
[filter:recon]
|
|
use = egg:swift#recon
|
|
#recon_cache_path = /var/cache/swift
|
|
|
|
[container-replicator]
|
|
# You can override the default log routing for this app here (don't use set!):
|
|
# log_name = container-replicator
|
|
# log_facility = LOG_LOCAL0
|
|
# log_level = INFO
|
|
# log_address = /dev/log
|
|
# vm_test_mode = no
|
|
# per_diff = 1000
|
|
# max_diffs = 100
|
|
# concurrency = 8
|
|
# interval = 30
|
|
# node_timeout = 10
|
|
# conn_timeout = 0.5
|
|
# The replicator also performs reclamation
|
|
# reclaim_age = 604800
|
|
# Time in seconds to wait between replication passes
|
|
# run_pause = 30
|
|
# recon_cache_path = /var/cache/swift
|
|
|
|
[container-updater]
|
|
# You can override the default log routing for this app here (don't use set!):
|
|
# log_name = container-updater
|
|
# log_facility = LOG_LOCAL0
|
|
# log_level = INFO
|
|
# log_address = /dev/log
|
|
# interval = 300
|
|
# concurrency = 4
|
|
# node_timeout = 3
|
|
# conn_timeout = 0.5
|
|
# slowdown will sleep that amount between containers
|
|
# slowdown = 0.01
|
|
# Seconds to suppress updating an account that has generated an error
|
|
# account_suppression_time = 60
|
|
# recon_cache_path = /var/cache/swift
|
|
|
|
[container-auditor]
|
|
# You can override the default log routing for this app here (don't use set!):
|
|
# log_name = container-auditor
|
|
# log_facility = LOG_LOCAL0
|
|
# log_level = INFO
|
|
# log_address = /dev/log
|
|
# Will audit, at most, 1 container per device per interval
|
|
# interval = 1800
|
|
# recon_cache_path = /var/cache/swift
|
|
|
|
[container-sync]
|
|
# You can override the default log routing for this app here (don't use set!):
|
|
# log_name = container-sync
|
|
# log_facility = LOG_LOCAL0
|
|
# log_level = INFO
|
|
# log_address = /dev/log
|
|
# If you need to use an HTTP Proxy, set it here; defaults to no proxy.
|
|
# sync_proxy = http://127.0.0.1:8888
|
|
# Will sync, at most, each container once per interval
|
|
# interval = 300
|
|
# Maximum amount of time to spend syncing each container per pass
|
|
# container_time = 60
|