⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 vprrd.py

📁 Network Administration Visualized 网络管理可视化源码
💻 PY
字号:
#!/usr/bin/env python# -*- coding: ISO8859-1 -*-# Copyright 2004 Norwegian University of Science and Technology# Copyright 2006 UNINETT AS## This file is part of Network Administration Visualized (NAV)## NAV is free software; you can redistribute it and/or modify# it under the terms of the GNU General Public License as published by# the Free Software Foundation; either version 2 of the License, or# (at your option) any later version.## NAV is distributed in the hope that it will be useful,# but WITHOUT ANY WARRANTY; without even the implied warranty of# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the# GNU General Public License for more details.## You should have received a copy of the GNU General Public License# along with NAV; if not, write to the Free Software# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA### Authors: Kristian Eide <kreide@online.no>#          Morten Brekkevold <morten.brekkevold@uninett.no>#"""Helper program to allow vPServer to fetch RRD data.vPServer establishes communication with this program through a pipe."""import rrdtoolfrom sys import stdinimport os.pathimport shlexdoWarp = True # Should we perform timewarping?timewarp = 60 # Secondsdef rrdvalues(start, stop, rrdfile, datasources, consolidation):    """Extract values from RRD files and return as a list."""    defs = [ 'DEF:value' + str(ds[0]) + '=' + rrdfile + ':' + ds[1] +             ':AVERAGE'             for ds in enumerate(datasources) ]    prints = [ 'PRINT:value' + str(ds[0]) + ':' + consolidation + ':%6.2lf'               for ds in enumerate(datasources) ]    result = rrdtool.graph('-', '-s ' + str(start) + ':' + str(stop),                           *(defs+prints))    return [v.strip() for v in result[2]]consolidation = stdin.readline().strip()time = stdin.readline().strip().split(",")start = long(time[0])stop = long(time[1])for line in stdin:    if len(line.strip()) == 0: continue    t = shlex.split(line)    rrdfile = t[0]    dss = t[1:]        if os.path.isfile(rrdfile):        values = rrdvalues(start, stop, rrdfile, dss, consolidation)        if doWarp and stop == 0:            if "nan" in [v.lower() for v in values]:                # The RRD file's last data point might not have been inserted                # yet, so we look `timewarp` seconds further back in time in a                # desperate attempt to avoid so-called "black load" on the                # traffic map.                values = rrdvalues(start-timewarp, stop-timewarp, rrdfile,                                   dss, consolidation)        print " ".join(values)    else:        print 'fnf'

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -