Sun May 30 22:44:07 Paris, Madrid (heure d'été) 2010 freestorm77@gmail.com * munin_stats-gatherer.darcs.txt - Move stats-gatherer plugins to munin/stats-gatherer_plugins - Create munin/stats-gatherer_plugins/README file - Remove munin/tahoe-stats.plugin-conf - Create tahoe-stats_conf/tahoe-stats_conf New patches: [munin_stats-gatherer.darcs.txt freestorm77@gmail.com**20100530204407 Ignore-this: f65230719c8a0146d4c9de83870485b4 - Move stats-gatherer plugins to munin/stats-gatherer_plugins - Create munin/stats-gatherer_plugins/README file - Remove munin/tahoe-stats.plugin-conf - Create tahoe-stats_conf/tahoe-stats_conf ] { adddir ./misc/munin/stats-gatherer_plugins move ./misc/munin/tahoe_stats ./misc/munin/stats-gatherer_plugins/tahoe_stats addfile ./misc/munin/stats-gatherer_plugins/REAME hunk ./misc/munin/stats-gatherer_plugins/REAME 1 - += Tahoe-LAFS Stats-Gatherer plugins = + +== Helper plugins == + +These plugins need a Tahoe-LAFS Helper + +chk_upload_helper.encoded_bytes: Shows the number of bytes encoded by the helper +chk_upload_helper.upload_need_upload: Shows the number of uploads whose files are not already present in the grid +tahoe_helper_active_uploads: Shows the number of files actively being processed by the helper +tahoe_helper_encoded_bytes: Shows the number of bytes encoded by the helper +tahoe_helper_encoding_files: Shows the number of encoding files +tahoe_helper_encoding_filesize: Shows total size of encoding files +tahoe_helper_encoding_files_old: Shows total size of old encoding files +tahoe_helper_fetched_bytes: Shows the number of bytes fetched by the helper +tahoe_helper_incoming_files: Shows the number of incoming files +tahoe_helper_incoming_filesize: Shows total size of incoming files +tahoe_helper_incoming_files_old: Shows total size of old incoming files +tahoe_helper_upload_already_present: Shows the number of uploads whose files are already present in the grid +tahoe_helper_upload_need_upload: Shows the number of uploads whose files are not already present in the grid +tahoe_helper_upload_requests: Shows the number of upload requests arriving at the helper + +== Traffic plugins == + +tahoe_mutable_files_published: Shows the number of mutable files published +tahoe_mutable_files_retrieved: Shows the number of files retrieved +tahoe_uploader_bytes_uploaded: Shows the number of bytes uploaded +tahoe_uploader_files_uploaded: Shows the number of files uploaded + +== Storage plugins == + +tahoe_storage_allocated: Shows space allocated +tahoe_storage_bytes_added: Shows cummulative bytes added +tahoe_storage_bytes_freed: Shows cummulative bytes removed +tahoe_storage_consumed: Shows space consumed +tahoe_storage_operations_allocate: Shows how many allocate_buckets operations occured per second. + Each immutable file upload causes one such operation per server + +tahoe_storage_operations_get: This graph shows how many get_bucket operations occured per second. + Each immutable file download/check causes one such operation per server + +tahoe_storage_operations_readv: Shows how many readv operations occured per second. + Each dirnode read causes one such operation per server. + +tahoe_storage_operations_writev: Shows how many writev operations occured per second. + Each mutable file/dirnode write causes one such operation per server + +== Load plugins == + +tahoe_runtime_load_peak: Shows peak reactor delay +tahoe_runtime_load_avg: Shows average reactor delay + += Installation = + +This file need to be renamed/copied/linked to the plugin name you want. +you need to do this for each graph you want. + +For example: +If you want to show the "Tahoe-LAFS Runtime Load Average Graph": +Just copy tahoe_stats to '/etc/munin/plugins/tahoe_stats_runtime_load_avg' + +If you want all graph you can run theses command: + cp tahoe_stats /etc/munin/plugins/tahoe_stats.bak + # the .bak extension is needed, otherwise Munin-Node will try to run it. + cd /etc/munin/plugins/ + chmod +x tahoe_stats.bak + for FILE in `grep "'tahoe_" tahoe_stats.bak | cut -d\' -f2`; do ln -s tahoe_stats.bak $FILE;done; + + After edit the configuration file "tahoe-stats_conf" and copy it to /etc/munin/plugin-conf.d/ + Reload the Munin-Node process: /etc/init.d/munin-node reload + + +Note: +You need to wait 5min before Munin-Node perform graphs addfile ./misc/munin/stats-gatherer_plugins/tahoe-stats_conf hunk ./misc/munin/stats-gatherer_plugins/tahoe-stats_conf 1 +# +# This file contains configuration options for all Tahoe Stats-Gatherer plugins. +# +# You need to copy this file in your /etc/munin/plugin-conf.d/ directory +# +# Three options are understood by munin-node itself: +# +# user # Set the user to run the plugin as. (not mandatory) +# group # Set the group to run the plugin as. (not mandatory) +# env.statsfile # Set your Tahoe Stats-Gatherer pickle file path +# + +[tahoe_stats*] +user root +group root +env.statsfile /home/tahoe-stats-gatherer/stats.pickle + hunk ./misc/munin/stats-gatherer_plugins/tahoe_stats 13 PLUGINS = { # LOAD AVERAGE - 'tahoe_runtime_load_avg': + 'tahoe_stats_runtime_load_avg': { 'statid': 'load_monitor.avg_load', 'category': 'stats', hunk ./misc/munin/stats-gatherer_plugins/tahoe_stats 16 - 'configheader': '\n'.join(['graph_title Tahoe Runtime Load Average', + 'configheader': '\n'.join(['graph_title Tahoe-LAFS Runtime Load Average', 'graph_vlabel load', hunk ./misc/munin/stats-gatherer_plugins/tahoe_stats 18 - 'graph_category tahoe', + 'graph_category Tahoe-LAFS Stats-Gatherer', 'graph_info This graph shows average reactor delay', ]), 'graph_config': '\n'.join(['%(name)s.label %(name)s', hunk ./misc/munin/stats-gatherer_plugins/tahoe_stats 28 ]), }, - 'tahoe_runtime_load_peak': + 'tahoe_stats_runtime_load_peak': { 'statid': 'load_monitor.max_load', 'category': 'stats', hunk ./misc/munin/stats-gatherer_plugins/tahoe_stats 31 - 'configheader': '\n'.join(['graph_title Tahoe Runtime Load Peak', + 'configheader': '\n'.join(['graph_title Tahoe-LAFS Runtime Load Peak', 'graph_vlabel load', hunk ./misc/munin/stats-gatherer_plugins/tahoe_stats 33 - 'graph_category tahoe', + 'graph_category Tahoe-LAFS Stats-Gatherer', 'graph_info This graph shows peak reactor delay', ]), 'graph_config': '\n'.join(['%(name)s.label %(name)s', hunk ./misc/munin/stats-gatherer_plugins/tahoe_stats 44 }, # STORAGE ALLOCATION (BYTES) - 'tahoe_storage_consumed': + 'tahoe_stats_storage_consumed': { 'statid': 'storage_server.consumed', 'category': 'stats', hunk ./misc/munin/stats-gatherer_plugins/tahoe_stats 47 - 'configheader': '\n'.join(['graph_title Tahoe Storage Server Space Consumed', + 'configheader': '\n'.join(['graph_title Tahoe-LAFS Storage Server Space Consumed', 'graph_vlabel bytes', hunk ./misc/munin/stats-gatherer_plugins/tahoe_stats 49 - 'graph_category tahoe_storage_server', + 'graph_category Tahoe-LAFS Stats-Gatherer_storage_server', 'graph_info This graph shows space consumed', 'graph_args --base 1024', ]), hunk ./misc/munin/stats-gatherer_plugins/tahoe_stats 60 ]), }, - 'tahoe_storage_allocated': + 'tahoe_stats_storage_allocated': { 'statid': 'storage_server.allocated', 'category': 'stats', hunk ./misc/munin/stats-gatherer_plugins/tahoe_stats 63 - 'configheader': '\n'.join(['graph_title Tahoe Storage Server Space Allocated', + 'configheader': '\n'.join(['graph_title Tahoe-LAFS Storage Server Space Allocated', 'graph_vlabel bytes', hunk ./misc/munin/stats-gatherer_plugins/tahoe_stats 65 - 'graph_category tahoe_storage_server', + 'graph_category Tahoe-LAFS Stats-Gatherer_storage_server', 'graph_info This graph shows space allocated', 'graph_args --base 1024', ]), hunk ./misc/munin/stats-gatherer_plugins/tahoe_stats 76 ]), }, - 'tahoe_storage_bytes_added': + 'tahoe_stats_storage_bytes_added': { 'statid': 'storage_server.bytes_added', 'category': 'counters', hunk ./misc/munin/stats-gatherer_plugins/tahoe_stats 79 - 'configheader': '\n'.join(['graph_title Tahoe Storage Server Bytes Added', + 'configheader': '\n'.join(['graph_title Tahoe-LAFS Storage Server Bytes Added', 'graph_vlabel bytes', hunk ./misc/munin/stats-gatherer_plugins/tahoe_stats 81 - 'graph_category tahoe_storage_server', + 'graph_category Tahoe-LAFS Stats-Gatherer_storage_server', 'graph_info This graph shows cummulative bytes added', ]), 'graph_config': '\n'.join(['%(name)s.label %(name)s', hunk ./misc/munin/stats-gatherer_plugins/tahoe_stats 91 ]), }, - 'tahoe_storage_bytes_freed': + 'tahoe_stats_storage_bytes_freed': { 'statid': 'storage_server.bytes_freed', 'category': 'counters', hunk ./misc/munin/stats-gatherer_plugins/tahoe_stats 94 - 'configheader': '\n'.join(['graph_title Tahoe Storage Server Bytes Removed', + 'configheader': '\n'.join(['graph_title Tahoe-LAFS Storage Server Bytes Removed', 'graph_vlabel bytes', hunk ./misc/munin/stats-gatherer_plugins/tahoe_stats 96 - 'graph_category tahoe_storage_server', + 'graph_category Tahoe-LAFS Stats-Gatherer_storage_server', 'graph_info This graph shows cummulative bytes removed', ]), 'graph_config': '\n'.join(['%(name)s.label %(name)s', hunk ./misc/munin/stats-gatherer_plugins/tahoe_stats 106 ]), }, - 'tahoe_storage_operations_allocate': + 'tahoe_stats_storage_operations_allocate': { 'statid': 'storage_server.allocate', 'category': 'counters', hunk ./misc/munin/stats-gatherer_plugins/tahoe_stats 109 - 'configheader': '\n'.join(['graph_title Tahoe Storage Server Allocate_Bucket Operations', + 'configheader': '\n'.join(['graph_title Tahoe-LAFS Storage Server Allocate_Bucket Operations', 'graph_vlabel operations per second', hunk ./misc/munin/stats-gatherer_plugins/tahoe_stats 111 - 'graph_category tahoe_storage_server', + 'graph_category Tahoe-LAFS Stats-Gatherer_storage_server', 'graph_info This graph shows how many allocate_buckets operations occured per second. Each immutable file upload causes one such operation per server.', ]), 'graph_config': '\n'.join(['%(name)s.label %(name)s', hunk ./misc/munin/stats-gatherer_plugins/tahoe_stats 123 ]), }, - 'tahoe_storage_operations_get': + 'tahoe_stats_storage_operations_get': { 'statid': 'storage_server.get', 'category': 'counters', hunk ./misc/munin/stats-gatherer_plugins/tahoe_stats 126 - 'configheader': '\n'.join(['graph_title Tahoe Storage Server get_bucket Operations', + 'configheader': '\n'.join(['graph_title Tahoe-LAFS Storage Server get_bucket Operations', 'graph_vlabel operations per second', hunk ./misc/munin/stats-gatherer_plugins/tahoe_stats 128 - 'graph_category tahoe_storage_server', + 'graph_category Tahoe-LAFS Stats-Gatherer_storage_server', 'graph_info This graph shows how many get_bucket operations occured per second. Each immutable file download/check causes one such operation per server.', ]), 'graph_config': '\n'.join(['%(name)s.label %(name)s', hunk ./misc/munin/stats-gatherer_plugins/tahoe_stats 140 ]), }, - 'tahoe_storage_operations_writev': + 'tahoe_stats_storage_operations_writev': { 'statid': 'storage_server.writev', 'category': 'counters', hunk ./misc/munin/stats-gatherer_plugins/tahoe_stats 143 - 'configheader': '\n'.join(['graph_title Tahoe Storage Server writev Operations', + 'configheader': '\n'.join(['graph_title Tahoe-LAFS Storage Server writev Operations', 'graph_vlabel operations per second', hunk ./misc/munin/stats-gatherer_plugins/tahoe_stats 145 - 'graph_category tahoe_storage_server', - 'graph_info This graph shows how many writev operations occured per second. Each mutable file / dirnode write causes one such operation per server.', + 'graph_category Tahoe-LAFS Stats-Gatherer_storage_server', + 'graph_info This graph shows how many writev operations occured per second. Each mutable file/dirnode write causes one such operation per server.', ]), 'graph_config': '\n'.join(['%(name)s.label %(name)s', '%(name)s.type DERIVE', hunk ./misc/munin/stats-gatherer_plugins/tahoe_stats 157 ]), }, - 'tahoe_storage_operations_readv': + 'tahoe_stats_storage_operations_readv': { 'statid': 'storage_server.readv', 'category': 'counters', hunk ./misc/munin/stats-gatherer_plugins/tahoe_stats 160 - 'configheader': '\n'.join(['graph_title Tahoe Storage Server readv Operations', + 'configheader': '\n'.join(['graph_title Tahoe-LAFS Storage Server readv Operations', 'graph_vlabel operations per second', hunk ./misc/munin/stats-gatherer_plugins/tahoe_stats 162 - 'graph_category tahoe_storage_server', + 'graph_category Tahoe-LAFS Stats-Gatherer_storage_server', 'graph_info This graph shows how many readv operations occured per second. Each dirnode read causes one such operation per server.', ]), 'graph_config': '\n'.join(['%(name)s.label %(name)s', hunk ./misc/munin/stats-gatherer_plugins/tahoe_stats 176 # HELPER - 'tahoe_helper_incoming_files': + 'tahoe_stats_helper_incoming_files': { 'statid': 'chk_upload_helper.incoming_count', 'category': 'stats', hunk ./misc/munin/stats-gatherer_plugins/tahoe_stats 179 - 'configheader': '\n'.join(['graph_title Tahoe Upload Helper Incoming File Count', + 'configheader': '\n'.join(['graph_title Tahoe-LAFS Upload Helper Incoming File Count', 'graph_vlabel n files', hunk ./misc/munin/stats-gatherer_plugins/tahoe_stats 181 - 'graph_category tahoe_helper', - 'graph_info This graph shows number of incoming files', + 'graph_category Tahoe-LAFS Stats-Gatherer_helper', + 'graph_info This graph shows the number of incoming files', ]), 'graph_config': '\n'.join(['%(name)s.label %(name)s', '%(name)s.draw LINE1', hunk ./misc/munin/stats-gatherer_plugins/tahoe_stats 190 'graph_render': '\n'.join(['%(name)s.value %(value)s', ]), }, - 'tahoe_helper_incoming_filesize': + 'tahoe_stats_helper_incoming_filesize': { 'statid': 'chk_upload_helper.incoming_size', 'category': 'stats', hunk ./misc/munin/stats-gatherer_plugins/tahoe_stats 193 - 'configheader': '\n'.join(['graph_title Tahoe Upload Helper Incoming File Size', + 'configheader': '\n'.join(['graph_title Tahoe-LAFS Upload Helper Incoming File Size', 'graph_vlabel bytes', hunk ./misc/munin/stats-gatherer_plugins/tahoe_stats 195 - 'graph_category tahoe_helper', + 'graph_category Tahoe-LAFS Stats-Gatherer_helper', 'graph_info This graph shows total size of incoming files', ]), 'graph_config': '\n'.join(['%(name)s.label %(name)s', hunk ./misc/munin/stats-gatherer_plugins/tahoe_stats 204 'graph_render': '\n'.join(['%(name)s.value %(value)s', ]), }, - 'tahoe_helper_incoming_files_old': + 'tahoe_stats_helper_incoming_files_old': { 'statid': 'chk_upload_helper.incoming_size_old', 'category': 'stats', hunk ./misc/munin/stats-gatherer_plugins/tahoe_stats 207 - 'configheader': '\n'.join(['graph_title Tahoe Upload Helper Incoming Old Files', + 'configheader': '\n'.join(['graph_title Tahoe-LAFS Upload Helper Incoming Old Files', 'graph_vlabel bytes', hunk ./misc/munin/stats-gatherer_plugins/tahoe_stats 209 - 'graph_category tahoe_helper', + 'graph_category Tahoe-LAFS Stats-Gatherer_helper', 'graph_info This graph shows total size of old incoming files', ]), 'graph_config': '\n'.join(['%(name)s.label %(name)s', hunk ./misc/munin/stats-gatherer_plugins/tahoe_stats 219 ]), }, - 'tahoe_helper_encoding_files': + 'tahoe_stats_helper_encoding_files': { 'statid': 'chk_upload_helper.encoding_count', 'category': 'stats', hunk ./misc/munin/stats-gatherer_plugins/tahoe_stats 222 - 'configheader': '\n'.join(['graph_title Tahoe Upload Helper Encoding File Count', + 'configheader': '\n'.join(['graph_title Tahoe-LAFS Upload Helper Encoding File Count', 'graph_vlabel n files', hunk ./misc/munin/stats-gatherer_plugins/tahoe_stats 224 - 'graph_category tahoe_helper', - 'graph_info This graph shows number of encoding files', + 'graph_category Tahoe-LAFS Stats-Gatherer_helper', + 'graph_info This graph shows the number of encoding files', ]), 'graph_config': '\n'.join(['%(name)s.label %(name)s', '%(name)s.draw LINE1', hunk ./misc/munin/stats-gatherer_plugins/tahoe_stats 233 'graph_render': '\n'.join(['%(name)s.value %(value)s', ]), }, - 'tahoe_helper_encoding_filesize': + 'tahoe_stats_helper_encoding_filesize': { 'statid': 'chk_upload_helper.encoding_size', 'category': 'stats', hunk ./misc/munin/stats-gatherer_plugins/tahoe_stats 236 - 'configheader': '\n'.join(['graph_title Tahoe Upload Helper Encoding File Size', + 'configheader': '\n'.join(['graph_title Tahoe-LAFS Upload Helper Encoding File Size', 'graph_vlabel bytes', hunk ./misc/munin/stats-gatherer_plugins/tahoe_stats 238 - 'graph_category tahoe_helper', + 'graph_category Tahoe-LAFS Stats-Gatherer_helper', 'graph_info This graph shows total size of encoding files', ]), 'graph_config': '\n'.join(['%(name)s.label %(name)s', hunk ./misc/munin/stats-gatherer_plugins/tahoe_stats 247 'graph_render': '\n'.join(['%(name)s.value %(value)s', ]), }, - 'tahoe_helper_encoding_files_old': + 'tahoe_stats_helper_encoding_files_old': { 'statid': 'chk_upload_helper.encoding_size_old', 'category': 'stats', hunk ./misc/munin/stats-gatherer_plugins/tahoe_stats 250 - 'configheader': '\n'.join(['graph_title Tahoe Upload Helper Encoding Old Files', + 'configheader': '\n'.join(['graph_title Tahoe-LAFS Upload Helper Encoding Old Files', 'graph_vlabel bytes', hunk ./misc/munin/stats-gatherer_plugins/tahoe_stats 252 - 'graph_category tahoe_helper', + 'graph_category Tahoe-LAFS Stats-Gatherer_helper', 'graph_info This graph shows total size of old encoding files', ]), 'graph_config': '\n'.join(['%(name)s.label %(name)s', hunk ./misc/munin/stats-gatherer_plugins/tahoe_stats 262 ]), }, - 'tahoe_helper_active_uploads': + 'tahoe_stats_helper_active_uploads': { 'statid': 'chk_upload_helper.active_uploads', 'category': 'stats', hunk ./misc/munin/stats-gatherer_plugins/tahoe_stats 265 - 'configheader': '\n'.join(['graph_title Tahoe Upload Helper Active Files', + 'configheader': '\n'.join(['graph_title Tahoe-LAFS Upload Helper Active Files', 'graph_vlabel n files', hunk ./misc/munin/stats-gatherer_plugins/tahoe_stats 267 - 'graph_category tahoe_helper', - 'graph_info This graph shows number of files actively being processed by the helper', + 'graph_category Tahoe-LAFS Stats-Gatherer_helper', + 'graph_info This graph shows the number of files actively being processed by the helper', ]), 'graph_config': '\n'.join(['%(name)s.label %(name)s', '%(name)s.draw LINE1', hunk ./misc/munin/stats-gatherer_plugins/tahoe_stats 277 ]), }, - 'tahoe_helper_upload_requests': + 'tahoe_stats_helper_upload_requests': { 'statid': 'chk_upload_helper.upload_requests', 'category': 'counters', hunk ./misc/munin/stats-gatherer_plugins/tahoe_stats 280 - 'configheader': '\n'.join(['graph_title Tahoe Upload Helper Upload Requests', + 'configheader': '\n'.join(['graph_title Tahoe-LAFS Upload Helper Upload Requests', 'graph_vlabel requests', hunk ./misc/munin/stats-gatherer_plugins/tahoe_stats 282 - 'graph_category tahoe_helper', + 'graph_category Tahoe-LAFS Stats-Gatherer_helper', 'graph_info This graph shows the number of upload requests arriving at the helper', ]), 'graph_config': '\n'.join(['%(name)s.label %(name)s', hunk ./misc/munin/stats-gatherer_plugins/tahoe_stats 293 'graph_render': '\n'.join(['%(name)s.value %(value)s', ]), }, - 'tahoe_helper_upload_already_present': + 'tahoe_stats_helper_upload_already_present': { 'statid': 'chk_upload_helper.upload_already_present', 'category': 'counters', hunk ./misc/munin/stats-gatherer_plugins/tahoe_stats 296 - 'configheader': '\n'.join(['graph_title Tahoe Upload Helper Uploads Already Present', + 'configheader': '\n'.join(['graph_title Tahoe-LAFS Upload Helper Uploads Already Present', 'graph_vlabel requests', hunk ./misc/munin/stats-gatherer_plugins/tahoe_stats 298 - 'graph_category tahoe_helper', + 'graph_category Tahoe-LAFS Stats-Gatherer_helper', 'graph_info This graph shows the number of uploads whose files are already present in the grid', ]), 'graph_config': '\n'.join(['%(name)s.label %(name)s', hunk ./misc/munin/stats-gatherer_plugins/tahoe_stats 309 'graph_render': '\n'.join(['%(name)s.value %(value)s', ]), }, - 'tahoe_helper_upload_need_upload': + 'tahoe_stats_helper_upload_need_upload': { 'statid': 'chk_upload_helper.upload_need_upload', 'category': 'counters', hunk ./misc/munin/stats-gatherer_plugins/tahoe_stats 312 - 'configheader': '\n'.join(['graph_title Tahoe Upload Helper Uploads Needing Upload', + 'configheader': '\n'.join(['graph_title Tahoe-LAFS Upload Helper Uploads Needing Upload', 'graph_vlabel requests', hunk ./misc/munin/stats-gatherer_plugins/tahoe_stats 314 - 'graph_category tahoe_helper', + 'graph_category Tahoe-LAFS Stats-Gatherer_helper', 'graph_info This graph shows the number of uploads whose files are not already present in the grid', ]), 'graph_config': '\n'.join(['%(name)s.label %(name)s', hunk ./misc/munin/stats-gatherer_plugins/tahoe_stats 325 'graph_render': '\n'.join(['%(name)s.value %(value)s', ]), }, - 'tahoe_helper_encoded_bytes': + 'tahoe_stats_helper_encoded_bytes': { 'statid': 'chk_upload_helper.encoded_bytes', 'category': 'counters', hunk ./misc/munin/stats-gatherer_plugins/tahoe_stats 328 - 'configheader': '\n'.join(['graph_title Tahoe Upload Helper Encoded Bytes', + 'configheader': '\n'.join(['graph_title Tahoe-LAFS Upload Helper Encoded Bytes', 'graph_vlabel bytes', hunk ./misc/munin/stats-gatherer_plugins/tahoe_stats 330 - 'graph_category tahoe_helper', + 'graph_category Tahoe-LAFS Stats-Gatherer_helper', 'graph_info This graph shows the number of bytes encoded by the helper', ]), 'graph_config': '\n'.join(['%(name)s.label %(name)s', hunk ./misc/munin/stats-gatherer_plugins/tahoe_stats 341 'graph_render': '\n'.join(['%(name)s.value %(value)s', ]), }, - 'tahoe_helper_fetched_bytes': + 'tahoe_stats_helper_fetched_bytes': { 'statid': 'chk_upload_helper.fetched_bytes', 'category': 'counters', hunk ./misc/munin/stats-gatherer_plugins/tahoe_stats 344 - 'configheader': '\n'.join(['graph_title Tahoe Upload Helper Fetched Bytes', + 'configheader': '\n'.join(['graph_title Tahoe-LAFS Upload Helper Fetched Bytes', 'graph_vlabel bytes', hunk ./misc/munin/stats-gatherer_plugins/tahoe_stats 346 - 'graph_category tahoe_helper', + 'graph_category Tahoe-LAFS Stats-Gatherer_helper', 'graph_info This graph shows the number of bytes fetched by the helper', ]), 'graph_config': '\n'.join(['%(name)s.label %(name)s', hunk ./misc/munin/stats-gatherer_plugins/tahoe_stats 359 }, # WEBAPI - 'tahoe_uploader_bytes_uploaded': + 'tahoe_stats_uploader_bytes_uploaded': { 'statid': 'uploader.bytes_uploaded', 'category': 'counters', hunk ./misc/munin/stats-gatherer_plugins/tahoe_stats 362 - 'configheader': '\n'.join(['graph_title Tahoe Uploader Bytes Uploaded', + 'configheader': '\n'.join(['graph_title Tahoe-LAFS Uploader Bytes Uploaded', 'graph_vlabel bytes', hunk ./misc/munin/stats-gatherer_plugins/tahoe_stats 364 - 'graph_category tahoe_traffic', + 'graph_category Tahoe-LAFS Stats-Gatherer_traffic', 'graph_info This graph shows the number of bytes uploaded', ]), 'graph_config': '\n'.join(['%(name)s.label %(name)s', hunk ./misc/munin/stats-gatherer_plugins/tahoe_stats 375 'graph_render': '\n'.join(['%(name)s.value %(value)s', ]), }, - 'tahoe_uploader_files_uploaded': + 'tahoe_stats_uploader_files_uploaded': { 'statid': 'uploader.files_uploaded', 'category': 'counters', hunk ./misc/munin/stats-gatherer_plugins/tahoe_stats 378 - 'configheader': '\n'.join(['graph_title Tahoe Uploader Bytes Uploaded', + 'configheader': '\n'.join(['graph_title Tahoe-LAFS Uploader Files Uploaded', 'graph_vlabel files', hunk ./misc/munin/stats-gatherer_plugins/tahoe_stats 380 - 'graph_category tahoe_traffic', + 'graph_category Tahoe-LAFS Stats-Gatherer_traffic', 'graph_info This graph shows the number of files uploaded', ]), 'graph_config': '\n'.join(['%(name)s.label %(name)s', hunk ./misc/munin/stats-gatherer_plugins/tahoe_stats 391 'graph_render': '\n'.join(['%(name)s.value %(value)s', ]), }, - 'tahoe_mutable_files_published': + 'tahoe_stats_mutable_files_published': { 'statid': 'mutable.files_published', 'category': 'counters', hunk ./misc/munin/stats-gatherer_plugins/tahoe_stats 394 - 'configheader': '\n'.join(['graph_title Tahoe Mutable Files Published', + 'configheader': '\n'.join(['graph_title Tahoe-LAFS Mutable Files Published', 'graph_vlabel files', hunk ./misc/munin/stats-gatherer_plugins/tahoe_stats 396 - 'graph_category tahoe_traffic', + 'graph_category Tahoe-LAFS Stats-Gatherer_traffic', 'graph_info This graph shows the number of mutable files published', ]), 'graph_config': '\n'.join(['%(name)s.label %(name)s', hunk ./misc/munin/stats-gatherer_plugins/tahoe_stats 407 'graph_render': '\n'.join(['%(name)s.value %(value)s', ]), }, - 'tahoe_mutable_files_retrieved': + 'tahoe_stats_mutable_files_retrieved': { 'statid': 'mutable.files_retrieved', 'category': 'counters', hunk ./misc/munin/stats-gatherer_plugins/tahoe_stats 410 - 'configheader': '\n'.join(['graph_title Tahoe Mutable Files Retrieved', + 'configheader': '\n'.join(['graph_title Tahoe-LAFS Mutable Files Retrieved', 'graph_vlabel files', hunk ./misc/munin/stats-gatherer_plugins/tahoe_stats 412 - 'graph_category tahoe_traffic', + 'graph_category Tahoe-LAFS Stats-Gatherer_traffic', 'graph_info This graph shows the number of files retrieved', ]), 'graph_config': '\n'.join(['%(name)s.label %(name)s', hunk ./misc/munin/stats-gatherer_plugins/tahoe_stats 456 for tubid, nodestats in stats.items(): if check_time and (now - nodestats.get('timestamp', 0)) > STAT_VALIDITY: continue - name = smash_name("%s_%s" % (nodestats['nickname'], tubid[:4])) + #name = smash_name("%s_%s" % (nodestats['nickname'], tubid[:4])) + name = smash_name(nodestats['nickname']) #value = nodestats['stats'][plugin_conf['category']].get(plugin_conf['statid']) category = plugin_conf['category'] statid = plugin_conf['statid'] hunk ./misc/munin/stats-gatherer_plugins/tahoe_stats 466 args = { 'name': name, 'value': value } print plugin_conf[output_section] % args + + if len(argv) > 1: if sys.argv[1] == 'config': print plugin_conf['configheader'] hunk ./misc/munin/tahoe-stats.plugin-conf 1 -[tahoe_storage_allocated] -env.statsfile /home/robk/trees/tahoe/stats_gatherer/stats.pickle -[tahoe_storage_consumed] -env.statsfile /home/robk/trees/tahoe/stats_gatherer/stats.pickle -[tahoe_runtime_load_avg] -env.statsfile /home/robk/trees/tahoe/stats_gatherer/stats.pickle -[tahoe_runtime_load_peak] -env.statsfile /home/robk/trees/tahoe/stats_gatherer/stats.pickle -[tahoe_storage_bytes_added] -env.statsfile /home/robk/trees/tahoe/stats_gatherer/stats.pickle -[tahoe_storage_bytes_freed] -env.statsfile /home/robk/trees/tahoe/stats_gatherer/stats.pickle rmfile ./misc/munin/tahoe-stats.plugin-conf } Context: [Document reason for the trialcoverage version requirement being 0.3.3. david-sarah@jacaranda.org**20100525004444 Ignore-this: 2f9f1df6882838b000c063068f258aec ] [Downgrade version requirement for trialcoverage to 0.3.3 (from 0.3.10), to avoid needing to compile coveragepy on Windows. david-sarah@jacaranda.org**20100524233707 Ignore-this: 9c397a374c8b8017e2244b8a686432a8 ] [Suppress deprecation warning for twisted.web.error.NoResource when using Twisted >= 9.0.0. david-sarah@jacaranda.org**20100516205625 Ignore-this: 2361a3023cd3db86bde5e1af759ed01 ] [docs: CREDITS for Jeremy Visser zooko@zooko.com**20100524081829 Ignore-this: d7c1465fd8d4e25b8d46d38a1793465b ] [test: show stdout and stderr in case of non-zero exit code from "tahoe" command zooko@zooko.com**20100524073348 Ignore-this: 695e81cd6683f4520229d108846cd551 ] [setup: upgrade bundled zetuptoolz to zetuptoolz-0.6c15dev and make it unpacked and directly loaded by setup.py zooko@zooko.com**20100523205228 Ignore-this: 24fb32aaee3904115a93d1762f132c7 Also fix the relevant "make clean" target behavior. ] [setup: remove bundled zipfile egg of setuptools zooko@zooko.com**20100523205120 Ignore-this: c68b5f2635bb93d1c1fa7b613a026f9e We're about to replace it with bundled unpacked source code of setuptools, which is much nicer for debugging and evolving under revision control. ] [setup: remove bundled copy of setuptools_trial-0.5.2.tar zooko@zooko.com**20100522221539 Ignore-this: 140f90eb8fb751a509029c4b24afe647 Hopefully it will get installed automatically as needed and we won't bundle it anymore. ] [setup: remove bundled setuptools_darcs-1.2.8.tar zooko@zooko.com**20100522015333 Ignore-this: 378b1964b513ae7fe22bae2d3478285d This version of setuptools_darcs had a bug when used on Windows which has been fixed in setuptools_darcs-1.2.9. Hopefully we will not need to bundle a copy of setuptools_darcs-1.2.9 in with Tahoe-LAFS and can instead rely on it to be downloaded from PyPI or bundled in the "tahoe deps" separate tarball. ] [tests: fix pyflakes warnings in bench_dirnode.py zooko@zooko.com**20100521202511 Ignore-this: f23d55b4ed05e52865032c65a15753c4 ] [setup: if the string '--reporter=bwverbose-coverage' appears on sys.argv then you need trialcoverage zooko@zooko.com**20100521122226 Ignore-this: e760c45dcfb5a43c1dc1e8a27346bdc2 ] [tests: don't let bench_dirnode.py do stuff and have side-effects at import time (unless __name__ == '__main__') zooko@zooko.com**20100521122052 Ignore-this: 96144a412250d9bbb5fccbf83b8753b8 ] [tests: increase timeout to give François's ARM buildslave a chance to complete the tests zooko@zooko.com**20100520134526 Ignore-this: 3dd399fdc8b91149c82b52f955b50833 ] [run_trial.darcspath freestorm77@gmail.com**20100510232829 Ignore-this: 5ebb4df74e9ea8a4bdb22b65373d1ff2 ] [docs: line-wrap README.txt zooko@zooko.com**20100518174240 Ignore-this: 670a02d360df7de51ebdcf4fae752577 ] [Hush pyflakes warnings Kevan Carstensen **20100515184344 Ignore-this: fd602c3bba115057770715c36a87b400 ] [setup: new improved misc/show-tool-versions.py zooko@zooko.com**20100516050122 Ignore-this: ce9b1de1b35b07d733e6cf823b66335a ] [Improve code coverage of the Tahoe2PeerSelector tests. Kevan Carstensen **20100515032913 Ignore-this: 793151b63ffa65fdae6915db22d9924a ] [Remove a comment that no longer makes sense. Kevan Carstensen **20100514203516 Ignore-this: 956983c7e7c7e4477215494dfce8f058 ] [docs: update docs/architecture.txt to more fully and correctly explain the upload procedure zooko@zooko.com**20100514043458 Ignore-this: 538b6ea256a49fed837500342092efa3 ] [Fix up the behavior of #778, per reviewers' comments Kevan Carstensen **20100514004917 Ignore-this: 9c20b60716125278b5456e8feb396bff - Make some important utility functions clearer and more thoroughly documented. - Assert in upload.servers_of_happiness that the buckets attributes of PeerTrackers passed to it are mutually disjoint. - Get rid of some silly non-Pythonisms that I didn't see when I first wrote these patches. - Make sure that should_add_server returns true when queried about a shnum that it doesn't know about yet. - Change Tahoe2PeerSelector.preexisting_shares to map a shareid to a set of peerids, alter dependencies to deal with that. - Remove upload.should_add_servers, because it is no longer necessary - Move upload.shares_of_happiness and upload.shares_by_server to a utility file. - Change some points in Tahoe2PeerSelector. - Compute servers_of_happiness using a bipartite matching algorithm that we know is optimal instead of an ad-hoc greedy algorithm that isn't. - Change servers_of_happiness to just take a sharemap as an argument, change its callers to merge existing_shares and used_peers before calling it. - Change an error message in the encoder to be more appropriate for servers of happiness. - Clarify the wording of an error message in immutable/upload.py - Refactor a happiness failure message to happinessutil.py, and make immutable/upload.py and immutable/encode.py use it. - Move the word "only" as far to the right as possible in failure messages. - Use a better definition of progress during peer selection. - Do read-only peer share detection queries in parallel, not sequentially. - Clean up logging semantics; print the query statistics whenever an upload is unsuccessful, not just in one case. ] [Alter the error message when an upload fails, per some comments in #778. Kevan Carstensen **20091230210344 Ignore-this: ba97422b2f9737c46abeb828727beb1 When I first implemented #778, I just altered the error messages to refer to servers where they referred to shares. The resulting error messages weren't very good. These are a bit better. ] [Change "UploadHappinessError" to "UploadUnhappinessError" Kevan Carstensen **20091205043037 Ignore-this: 236b64ab19836854af4993bb5c1b221a ] [Alter the error message returned when peer selection fails Kevan Carstensen **20091123002405 Ignore-this: b2a7dc163edcab8d9613bfd6907e5166 The Tahoe2PeerSelector returned either NoSharesError or NotEnoughSharesError for a variety of error conditions that weren't informatively described by them. This patch creates a new error, UploadHappinessError, replaces uses of NoSharesError and NotEnoughSharesError with it, and alters the error message raised with the errors to be more in line with the new servers_of_happiness behavior. See ticket #834 for more information. ] [Eliminate overcounting iof servers_of_happiness in Tahoe2PeerSelector; also reorganize some things. Kevan Carstensen **20091118014542 Ignore-this: a6cb032cbff74f4f9d4238faebd99868 ] [Change stray "shares_of_happiness" to "servers_of_happiness" Kevan Carstensen **20091116212459 Ignore-this: 1c971ba8c3c4d2e7ba9f020577b28b73 ] [Alter Tahoe2PeerSelector to make sure that it recognizes existing shares on readonly servers, fixing an issue in #778 Kevan Carstensen **20091116192805 Ignore-this: 15289f4d709e03851ed0587b286fd955 ] [Alter 'immutable/encode.py' and 'immutable/upload.py' to use servers_of_happiness instead of shares_of_happiness. Kevan Carstensen **20091104111222 Ignore-this: abb3283314820a8bbf9b5d0cbfbb57c8 ] [Alter the signature of set_shareholders in IEncoder to add a 'servermap' parameter, which gives IEncoders enough information to perform a sane check for servers_of_happiness. Kevan Carstensen **20091104033241 Ignore-this: b3a6649a8ac66431beca1026a31fed94 ] [Alter CiphertextDownloader to work with servers_of_happiness Kevan Carstensen **20090924041932 Ignore-this: e81edccf0308c2d3bedbc4cf217da197 ] [Revisions of the #778 tests, per reviewers' comments Kevan Carstensen **20100514012542 Ignore-this: 735bbc7f663dce633caeb3b66a53cf6e - Fix comments and confusing naming. - Add tests for the new error messages suggested by David-Sarah and Zooko. - Alter existing tests for new error messages. - Make sure that the tests continue to work with the trunk. - Add a test for a mutual disjointedness assertion that I added to upload.servers_of_happiness. - Fix the comments to correctly reflect read-onlyness - Add a test for an edge case in should_add_server - Add an assertion to make sure that share redistribution works as it should - Alter tests to work with revised servers_of_happiness semantics - Remove tests for should_add_server, since that function no longer exists. - Alter tests to know about merge_peers, and to use it before calling servers_of_happiness. - Add tests for merge_peers. - Add Zooko's puzzles to the tests. - Edit encoding tests to expect the new kind of failure message. - Edit tests to expect error messages with the word "only" moved as far to the right as possible. - Extended and cleaned up some helper functions. - Changed some tests to call more appropriate helper functions. - Added a test for the failing redistribution algorithm - Added a test for the progress message - Added a test for the upper bound on readonly peer share discovery. ] [Alter various unit tests to work with the new happy behavior Kevan Carstensen **20100107181325 Ignore-this: 132032bbf865e63a079f869b663be34a ] [Replace "UploadHappinessError" with "UploadUnhappinessError" in tests. Kevan Carstensen **20091205043453 Ignore-this: 83f4bc50c697d21b5f4e2a4cd91862ca ] [Add tests for the behavior described in #834. Kevan Carstensen **20091123012008 Ignore-this: d8e0aa0f3f7965ce9b5cea843c6d6f9f ] [Re-work 'test_upload.py' to be more readable; add more tests for #778 Kevan Carstensen **20091116192334 Ignore-this: 7e8565f92fe51dece5ae28daf442d659 ] [Test Tahoe2PeerSelector to make sure that it recognizeses existing shares on readonly servers Kevan Carstensen **20091109003735 Ignore-this: 12f9b4cff5752fca7ed32a6ebcff6446 ] [Add more tests for comment:53 in ticket #778 Kevan Carstensen **20091104112849 Ignore-this: 3bb2edd299a944cc9586e14d5d83ec8c ] [Add a test for upload.shares_by_server Kevan Carstensen **20091104111324 Ignore-this: f9802e82d6982a93e00f92e0b276f018 ] [Minor tweak to an existing test -- make the first server read-write, instead of read-only Kevan Carstensen **20091104034232 Ignore-this: a951a46c93f7f58dd44d93d8623b2aee ] [Alter tests to use the new form of set_shareholders Kevan Carstensen **20091104033602 Ignore-this: 3deac11fc831618d11441317463ef830 ] [Refactor some behavior into a mixin, and add tests for the behavior described in #778 "Kevan Carstensen" **20091030091908 Ignore-this: a6f9797057ca135579b249af3b2b66ac ] [Alter NoNetworkGrid to allow the creation of readonly servers for testing purposes. Kevan Carstensen **20091018013013 Ignore-this: e12cd7c4ddeb65305c5a7e08df57c754 ] [Update 'docs/architecture.txt' to reflect readonly share discovery kevan@isnotajoke.com**20100514003852 Ignore-this: 7ead71b34df3b1ecfdcfd3cb2882e4f9 ] [Alter the wording in docs/architecture.txt to more accurately describe the servers_of_happiness behavior. Kevan Carstensen **20100428002455 Ignore-this: 6eff7fa756858a1c6f73728d989544cc ] [Alter wording in 'interfaces.py' to be correct wrt #778 "Kevan Carstensen" **20091205034005 Ignore-this: c9913c700ac14e7a63569458b06980e0 ] [Update 'docs/configuration.txt' to reflect the servers_of_happiness behavior. Kevan Carstensen **20091205033813 Ignore-this: 5e1cb171f8239bfb5b565d73c75ac2b8 ] [Clarify quickstart instructions for installing pywin32 david-sarah@jacaranda.org**20100511180300 Ignore-this: d4668359673600d2acbc7cd8dd44b93c ] [web: add a simple test that you can load directory.xhtml zooko@zooko.com**20100510063729 Ignore-this: e49b25fa3c67b3c7a56c8b1ae01bb463 ] [setup: fix typos in misc/show-tool-versions.py zooko@zooko.com**20100510063615 Ignore-this: 2181b1303a0e288e7a9ebd4c4855628 ] [setup: show code-coverage tool versions in show-tools-versions.py zooko@zooko.com**20100510062955 Ignore-this: 4b4c68eb3780b762c8dbbd22b39df7cf ] [docs: update README, mv it to README.txt, update setup.py zooko@zooko.com**20100504094340 Ignore-this: 40e28ca36c299ea1fd12d3b91e5b421c ] [Dependency on Windmill test framework is not needed yet. david-sarah@jacaranda.org**20100504161043 Ignore-this: be088712bec650d4ef24766c0026ebc8 ] [tests: pass z to tar so that BSD tar will know to ungzip zooko@zooko.com**20100504090628 Ignore-this: 1339e493f255e8fc0b01b70478f23a09 ] [setup: update comments and URLs in setup.cfg zooko@zooko.com**20100504061653 Ignore-this: f97692807c74bcab56d33100c899f829 ] [setup: reorder and extend the show-tool-versions script, the better to glean information about our new buildslaves zooko@zooko.com**20100504045643 Ignore-this: 836084b56b8d4ee8f1de1f4efb706d36 ] [CLI: Support for https url in option --node-url Francois Deppierraz **20100430185609 Ignore-this: 1717176b4d27c877e6bc67a944d9bf34 This patch modifies the regular expression used for verifying of '--node-url' parameter. Support for accessing a Tahoe gateway over HTTPS was already present, thanks to Python's urllib. ] [backupdb.did_create_directory: use REPLACE INTO, not INSERT INTO + ignore error Brian Warner **20100428050803 Ignore-this: 1fca7b8f364a21ae413be8767161e32f This handles the case where we upload a new tahoe directory for a previously-processed local directory, possibly creating a new dircap (if the metadata had changed). Now we replace the old dirhash->dircap record. The previous behavior left the old record in place (with the old dircap and timestamps), so we'd never stop creating new directories and never converge on a null backup. ] ["tahoe webopen": add --info flag, to get ?t=info Brian Warner **20100424233003 Ignore-this: 126b0bb6db340fabacb623d295eb45fa Also fix some trailing whitespace. ] [docs: install.html http-equiv refresh to quickstart.html zooko@zooko.com**20100421165708 Ignore-this: 52b4b619f9dde5886ae2cd7f1f3b734b ] [docs: install.html -> quickstart.html zooko@zooko.com**20100421155757 Ignore-this: 6084e203909306bed93efb09d0e6181d It is not called "installing" because that implies that it is going to change the configuration of your operating system. It is not called "building" because that implies that you need developer tools like a compiler. Also I added a stern warning against looking at the "InstallDetails" wiki page, which I have renamed to "AdvancedInstall". ] [Fix another typo in tahoe_storagespace munin plugin david-sarah@jacaranda.org**20100416220935 Ignore-this: ad1f7aa66b554174f91dfb2b7a3ea5f3 ] [Add dependency on windmill >= 1.3 david-sarah@jacaranda.org**20100416190404 Ignore-this: 4437a7a464e92d6c9012926b18676211 ] [licensing: phrase the OpenSSL-exemption in the vocabulary of copyright instead of computer technology, and replicate the exemption from the GPL to the TGPPL zooko@zooko.com**20100414232521 Ignore-this: a5494b2f582a295544c6cad3f245e91 ] [munin-tahoe_storagespace freestorm77@gmail.com**20100221203626 Ignore-this: 14d6d6a587afe1f8883152bf2e46b4aa Plugin configuration rename ] [setup: add licensing declaration for setuptools (noticed by the FSF compliance folks) zooko@zooko.com**20100309184415 Ignore-this: 2dfa7d812d65fec7c72ddbf0de609ccb ] [setup: fix error in licensing declaration from Shawn Willden, as noted by the FSF compliance division zooko@zooko.com**20100309163736 Ignore-this: c0623d27e469799d86cabf67921a13f8 ] [CREDITS to Jacob Appelbaum zooko@zooko.com**20100304015616 Ignore-this: 70db493abbc23968fcc8db93f386ea54 ] [desert-island-build-with-proper-versions jacob@appelbaum.net**20100304013858] [docs: a few small edits to try to guide newcomers through the docs zooko@zooko.com**20100303231902 Ignore-this: a6aab44f5bf5ad97ea73e6976bc4042d These edits were suggested by my watching over Jake Appelbaum's shoulder as he completely ignored/skipped/missed install.html and also as he decided that debian.txt wouldn't help him with basic installation. Then I threw in a few docs edits that have been sitting around in my sandbox asking to be committed for months. ] [TAG allmydata-tahoe-1.6.1 david-sarah@jacaranda.org**20100228062314 Ignore-this: eb5f03ada8ea953ee7780e7fe068539 ] Patch bundle hash: 6c2f9b7e34529b50050a7262b41e014cf34dbde6