Arturo Borrero Gonzalez has submitted this change and it was merged. ( https://gerrit.wikimedia.org/r/387243 )
Change subject: diamond: nfsiostat update collector to read from arbitrary NFS mount points ...................................................................... diamond: nfsiostat update collector to read from arbitrary NFS mount points Update nfsiostat collector to be more flexible and collect data from arbitrary NFS mounts points. This is required also because mount points are now being mixed with symlinks to support previous NFS schemes. We have now 2 config directives: * devices_include: regexp containing which devices should be included * devices_exclude: regexp for the opposite The regex (?!) match nothing, so by default we read all the data from /mnt/nfs/*. Bug: T179024 Change-Id: I3f022d39f512957c18d1e3c4b169706341d5373f Signed-off-by: Arturo Borrero Gonzalez <aborr...@wikimedia.org> --- M modules/diamond/files/collector/nfsiostat.py 1 file changed, 13 insertions(+), 8 deletions(-) Approvals: Arturo Borrero Gonzalez: Looks good to me, approved jenkins-bot: Verified Filippo Giunchedi: Looks good to me, but someone else must approve diff --git a/modules/diamond/files/collector/nfsiostat.py b/modules/diamond/files/collector/nfsiostat.py index dcdc0b8..c5d2414 100644 --- a/modules/diamond/files/collector/nfsiostat.py +++ b/modules/diamond/files/collector/nfsiostat.py @@ -27,6 +27,7 @@ from __future__ import print_function import diamond.collector +import re Iostats_version = '0.2' @@ -349,11 +350,16 @@ return iostat -def list_nfs_mounts(mountstats): +def list_nfs_mounts(mountstats, include_regex, exclude_regex): """return a list of NFS mounts """ list = [] + for device, descr in mountstats.items(): + if exclude_regex.match(device): + continue + if not include_regex.match(device): + continue stats = DeviceData() stats.parse_stats(descr) if stats.is_nfs_mountpoint(): @@ -377,10 +383,8 @@ config.update({ 'enabled': False, 'path': 'nfsiostat', - 'devices': ['/home', - '/public/dumps', - '/data/scratch', - '/data/project'], + 'devices_include': '/mnt/nfs/.*', + 'devices_exclude': '(?!)', 'attributes': ['attr', 'read', 'write', @@ -422,15 +426,16 @@ mountstats = parse_stats_file('/proc/self/mountstats') # make certain devices contains only NFS mount points - devices = list_nfs_mounts(mountstats) or [] - adevices = [d for d in devices if d in self.config['devices']] + include_regex = re.compile(self.config['devices_include']) + exclude_regex = re.compile(self.config['devices_exclude']) + devices = list_nfs_mounts(mountstats, include_regex, exclude_regex) if len(devices) == 0: self.log.error('No NFS mount points were found') return metrics = {} - stats = nfs_iostat(mountstats, adevices) + stats = nfs_iostat(mountstats, devices) nfs_ops = {} # ops are reported by mount point but this is disingenuous as -- To view, visit https://gerrit.wikimedia.org/r/387243 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: merged Gerrit-Change-Id: I3f022d39f512957c18d1e3c4b169706341d5373f Gerrit-PatchSet: 5 Gerrit-Project: operations/puppet Gerrit-Branch: production Gerrit-Owner: Arturo Borrero Gonzalez <aborr...@wikimedia.org> Gerrit-Reviewer: Arturo Borrero Gonzalez <aborr...@wikimedia.org> Gerrit-Reviewer: Dzahn <dz...@wikimedia.org> Gerrit-Reviewer: Filippo Giunchedi <fgiunch...@wikimedia.org> Gerrit-Reviewer: Rush <r...@wikimedia.org> Gerrit-Reviewer: Volans <rcocci...@wikimedia.org> Gerrit-Reviewer: jenkins-bot <> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits