From patchwork Fri Dec 12 19:14:46 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Scott Mayhew X-Patchwork-Id: 5485001 Return-Path: X-Original-To: patchwork-linux-nfs@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork1.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.19.201]) by patchwork1.web.kernel.org (Postfix) with ESMTP id B5A549F1D4 for ; Fri, 12 Dec 2014 19:15:12 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id 8EA192014A for ; Fri, 12 Dec 2014 19:15:11 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 661FC201C8 for ; Fri, 12 Dec 2014 19:15:10 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S966284AbaLLTPC (ORCPT ); Fri, 12 Dec 2014 14:15:02 -0500 Received: from mx1.redhat.com ([209.132.183.28]:47678 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S966256AbaLLTO7 (ORCPT ); Fri, 12 Dec 2014 14:14:59 -0500 Received: from int-mx14.intmail.prod.int.phx2.redhat.com (int-mx14.intmail.prod.int.phx2.redhat.com [10.5.11.27]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id sBCJExs8016226 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=FAIL) for ; Fri, 12 Dec 2014 14:14:59 -0500 Received: from tonberry.usersys.redhat.com (dhcp145-188.rdu.redhat.com [10.13.145.188]) by int-mx14.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id sBCJEwmv004924 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO) for ; Fri, 12 Dec 2014 14:14:59 -0500 Received: from tonberry.usersys.redhat.com (localhost [127.0.0.1]) by tonberry.usersys.redhat.com (8.14.8/8.14.5) with ESMTP id sBCJEwQd000347 for ; Fri, 12 Dec 2014 14:14:58 -0500 Received: (from smayhew@localhost) by tonberry.usersys.redhat.com (8.14.8/8.14.8/Submit) id sBCJEwum000346 for linux-nfs@vger.kernel.org; Fri, 12 Dec 2014 14:14:58 -0500 From: Scott Mayhew To: linux-nfs@vger.kernel.org Subject: [nfs-utils PATCH v4 03/14] mountstats: Refactor __parse_nfs_line and __parse_rpc_line Date: Fri, 12 Dec 2014 14:14:46 -0500 Message-Id: <1418411697-65535-4-git-send-email-smayhew@redhat.com> In-Reply-To: <1418411697-65535-1-git-send-email-smayhew@redhat.com> References: <1418411697-65535-1-git-send-email-smayhew@redhat.com> X-Scanned-By: MIMEDefang 2.68 on 10.5.11.27 Sender: linux-nfs-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org X-Spam-Status: No, score=-6.9 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_HI, T_RP_MATCHES_RCVD, UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Iterate over the newly added counter lists instead of having a ton of assignment statements. Signed-off-by: Scott Mayhew --- tools/mountstats/mountstats.py | 92 +++++++++++------------------------------- 1 file changed, 23 insertions(+), 69 deletions(-) diff --git a/tools/mountstats/mountstats.py b/tools/mountstats/mountstats.py index bf98813..a129d61 100644 --- a/tools/mountstats/mountstats.py +++ b/tools/mountstats/mountstats.py @@ -238,40 +238,18 @@ class DeviceData: if self.__nfs_data['flavor'] == 6: self.__nfs_data['pseudoflavor'] = int(keys[1].split('=')[1]) elif words[0] == 'events:': - self.__nfs_data['inoderevalidates'] = int(words[1]) - self.__nfs_data['dentryrevalidates'] = int(words[2]) - self.__nfs_data['datainvalidates'] = int(words[3]) - self.__nfs_data['attrinvalidates'] = int(words[4]) - self.__nfs_data['vfsopen'] = int(words[5]) - self.__nfs_data['vfslookup'] = int(words[6]) - self.__nfs_data['vfspermission'] = int(words[7]) - self.__nfs_data['vfsupdatepage'] = int(words[8]) - self.__nfs_data['vfsreadpage'] = int(words[9]) - self.__nfs_data['vfsreadpages'] = int(words[10]) - self.__nfs_data['vfswritepage'] = int(words[11]) - self.__nfs_data['vfswritepages'] = int(words[12]) - self.__nfs_data['vfsreaddir'] = int(words[13]) - self.__nfs_data['vfssetattr'] = int(words[14]) - self.__nfs_data['vfsflush'] = int(words[15]) - self.__nfs_data['vfsfsync'] = int(words[16]) - self.__nfs_data['vfslock'] = int(words[17]) - self.__nfs_data['vfsrelease'] = int(words[18]) - self.__nfs_data['congestionwait'] = int(words[19]) - self.__nfs_data['setattrtrunc'] = int(words[20]) - self.__nfs_data['extendwrite'] = int(words[21]) - self.__nfs_data['sillyrenames'] = int(words[22]) - self.__nfs_data['shortreads'] = int(words[23]) - self.__nfs_data['shortwrites'] = int(words[24]) - self.__nfs_data['delay'] = int(words[25]) - self.__nfs_data['pnfsreads'] = int(words[26]) - self.__nfs_data['pnfswrites'] = int(words[27]) + i = 1 + for key in NfsEventCounters: + try: + self.__nfs_data[key] = int(words[i]) + except IndexError as err: + self.__nfs_data[key] = 0 + i += 1 elif words[0] == 'bytes:': - self.__nfs_data['normalreadbytes'] = int(words[1]) - self.__nfs_data['normalwritebytes'] = int(words[2]) - self.__nfs_data['directreadbytes'] = int(words[3]) - self.__nfs_data['directwritebytes'] = int(words[4]) - self.__nfs_data['serverreadbytes'] = int(words[5]) - self.__nfs_data['serverwritebytes'] = int(words[6]) + i = 1 + for key in NfsByteCounters: + self.__nfs_data[key] = int(words[i]) + i += 1 def __parse_rpc_line(self, words): if words[0] == 'RPC': @@ -280,44 +258,20 @@ class DeviceData: elif words[0] == 'xprt:': self.__rpc_data['protocol'] = words[1] if words[1] == 'udp': - self.__rpc_data['port'] = int(words[2]) - self.__rpc_data['bind_count'] = int(words[3]) - self.__rpc_data['rpcsends'] = int(words[4]) - self.__rpc_data['rpcreceives'] = int(words[5]) - self.__rpc_data['badxids'] = int(words[6]) - self.__rpc_data['inflightsends'] = int(words[7]) - self.__rpc_data['backlogutil'] = int(words[8]) + i = 2 + for key in XprtUdpCounters: + self.__rpc_data[key] = int(words[i]) + i += 1 elif words[1] == 'tcp': - self.__rpc_data['port'] = words[2] - self.__rpc_data['bind_count'] = int(words[3]) - self.__rpc_data['connect_count'] = int(words[4]) - self.__rpc_data['connect_time'] = int(words[5]) - self.__rpc_data['idle_time'] = int(words[6]) - self.__rpc_data['rpcsends'] = int(words[7]) - self.__rpc_data['rpcreceives'] = int(words[8]) - self.__rpc_data['badxids'] = int(words[9]) - self.__rpc_data['inflightsends'] = int(words[10]) - self.__rpc_data['backlogutil'] = int(words[11]) + i = 2 + for key in XprtTcpCounters: + self.__rpc_data[key] = int(words[i]) + i += 1 elif words[1] == 'rdma': - self.__rpc_data['port'] = words[2] - self.__rpc_data['bind_count'] = int(words[3]) - self.__rpc_data['connect_count'] = int(words[4]) - self.__rpc_data['connect_time'] = int(words[5]) - self.__rpc_data['idle_time'] = int(words[6]) - self.__rpc_data['rpcsends'] = int(words[7]) - self.__rpc_data['rpcreceives'] = int(words[8]) - self.__rpc_data['badxids'] = int(words[9]) - self.__rpc_data['backlogutil'] = int(words[10]) - self.__rpc_data['read_chunks'] = int(words[11]) - self.__rpc_data['write_chunks'] = int(words[12]) - self.__rpc_data['reply_chunks'] = int(words[13]) - self.__rpc_data['total_rdma_req'] = int(words[14]) - self.__rpc_data['total_rdma_rep'] = int(words[15]) - self.__rpc_data['pullup'] = int(words[16]) - self.__rpc_data['fixup'] = int(words[17]) - self.__rpc_data['hardway'] = int(words[18]) - self.__rpc_data['failed_marshal'] = int(words[19]) - self.__rpc_data['bad_reply'] = int(words[20]) + i = 2 + for key in XprtRdmaCounters: + self.__rpc_data[key] = int(words[i]) + i += 1 elif words[0] == 'per-op': self.__rpc_data['per-op'] = words else: