Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

IP-SLA 2.0.1

  • Loading branch information...
commit 33be73809f514d2ac692913bc2fc161b7f56d4da 1 parent aeb4532
@mattray mattray authored
View
194 ZenPacks/ipSLA/SLADevice/Collect_SLA.py
@@ -0,0 +1,194 @@
+#!/usr/bin/env python
+import os
+import sys
+import re
+import string
+import getopt
+
+##Check for python dependancies. If not found, flail user and quit.
+try:
+ from pysnmp.entity.rfc3413.oneliner import cmdgen
+except Exception, e:
+ print "You need to download pysnmp and pyasn1 fool!", e
+ sys.exit(1)
+
+##Main Fuction
+def main():
+ ##Allocate blank table
+ SLA_Table = {}
+
+ ##Perform walk of common RTT objects
+ rttMonLatestRttOperCompletionTime = walk( device, community, SLATable["rttMonLatestRttOperCompletionTime"])
+ rttMonLatestRttOperSense = walk( device, community, SLATable["rttMonLatestRttOperSense"])
+ rttMonLatestRttOperApplSpecificSense = walk( device, community, SLATable["rttMonLatestRttOperApplSpecificSense"])
+ rttMonLatestRttOperTime = walk( device, community, SLATable["rttMonLatestRttOperTime"])
+
+ ##If SLA is VoIP, perform walk of VoIP objects
+ if tType == "V":
+ rttMonLatestJitterOperAvgJitter = walk( device, community, vSLATable["rttMonLatestJitterOperAvgJitter"])
+ rttMonLatestJitterOperIAJIn = walk( device, community, vSLATable["rttMonLatestJitterOperIAJIn"])
+ rttMonLatestJitterOperIAJOut = walk( device, community, vSLATable["rttMonLatestJitterOperIAJOut"])
+ rttMonLatestJitterOperICPIF = walk( device, community, vSLATable["rttMonLatestJitterOperICPIF"])
+ rttMonLatestJitterOperMOS = walk( device, community, vSLATable["rttMonLatestJitterOperMOS"])
+
+ ##If SLA is HTTP, perform walk of other HTTP objects
+ if tType == "W":
+ rttMonLatestHTTPOperRTT = walk( device, community, wSLATable["rttMonLatestHTTPOperRTT"])
+ rttMonLatestHTTPOperDNSRTT = walk( device, community, wSLATable["rttMonLatestHTTPOperDNSRTT"])
+ rttMonLatestHTTPOperTCPConnectRTT = walk( device, community, wSLATable["rttMonLatestHTTPOperTCPConnectRTT"])
+ rttMonLatestHTTPOperTransactionRTT = walk( device, community, wSLATable["rttMonLatestHTTPOperTransactionRTT"])
+ rttMonLatestHTTPErrorSenseDescription = walk( device, community, wSLATable["rttMonLatestHTTPErrorSenseDescription"])
+
+ ##Take each collected value and store in a table
+ for host in rttMonLatestRttOperCompletionTime[1]:
+ SLA_Table[str(host[0][0][14])]={}
+ SLA_Table[str(host[0][0][14])]["rttMonLatestRttOperCompletionTime"] = host[0][1]
+ SLA_Table[str(host[0][0][14])]["item"] = host[0][0][14]
+
+ for host in rttMonLatestRttOperSense[1]:
+ SLA_Table[str(host[0][0][14])]["rttMonLatestRttOperSense"] = host[0][1]
+
+ for host in rttMonLatestRttOperApplSpecificSense[1]:
+ SLA_Table[str(host[0][0][14])]["rttMonLatestRttOperApplSpecificSense"] = host[0][1]
+
+ for host in rttMonLatestRttOperTime[1]:
+ SLA_Table[str(host[0][0][14])]["rttMonLatestRttOperTime"] = host[0][1]
+
+ ##If VoIP, store VoIP objects in same table
+ if tType == "V":
+ for host in rttMonLatestJitterOperAvgJitter[1]:
+ SLA_Table[str(host[0][0][14])]["rttMonLatestJitterOperAvgJitter"] = host[0][1]
+
+ for host in rttMonLatestJitterOperIAJIn[1]:
+ SLA_Table[str(host[0][0][14])]["rttMonLatestJitterOperIAJIn"] = host[0][1]
+
+ for host in rttMonLatestJitterOperIAJOut[1]:
+ SLA_Table[str(host[0][0][14])]["rttMonLatestJitterOperIAJOut"] = host[0][1]
+
+ for host in rttMonLatestJitterOperICPIF[1]:
+ SLA_Table[str(host[0][0][14])]["rttMonLatestJitterOperICPIF"] = host[0][1]
+
+ for host in rttMonLatestJitterOperMOS[1]:
+ SLA_Table[str(host[0][0][14])]["rttMonLatestJitterOperMOS"] = host[0][1]
+
+ ##If HTTP, store HTTP objects in same table
+ if tType == "W":
+ for host in rttMonLatestHTTPOperRTT[1]:
+ SLA_Table[str(host[0][0][14])]["rttMonLatestHTTPOperRTT"] = host[0][1]
+
+ for host in rttMonLatestHTTPOperDNSRTT[1]:
+ SLA_Table[str(host[0][0][14])]["rttMonLatestHTTPOperDNSRTT"] = host[0][1]
+
+ for host in rttMonLatestHTTPOperTCPConnectRTT[1]:
+ SLA_Table[str(host[0][0][14])]["rttMonLatestHTTPOperTCPConnectRTT"] = host[0][1]
+
+ for host in rttMonLatestHTTPOperTransactionRTT[1]:
+ SLA_Table[str(host[0][0][14])]["rttMonLatestHTTPOperTransactionRTT"] = host[0][1]
+
+ for host in rttMonLatestHTTPErrorSenseDescription[1]:
+ SLA_Table[str(host[0][0][14])]["rttMonLatestHTTPErrorSenseDescription"] = host[0][1]
+
+ ##If -k / key is not nothing, show the entries using said key, else show all
+ if keyS != None:
+ sho_specific_result(SLA_Table, keyS)
+ else:
+ sho_result(SLA_Table)
+
+##Fuction to display table data using a specified key
+def sho_specific_result( SLA_Table, keyS ):
+ for key in SLA_Table:
+ if key == keyS:
+ ##Declare vOut and wOut
+ vOut = wOut = ""
+
+ ##If SLA is VoIP, populate vOut with correct table data
+ if tType == "V":
+ vOut= " rttMonLatestJitterOperAvgJitter=" + str(SLA_Table[key]["rttMonLatestJitterOperAvgJitter"]) + " rttMonLatestJitterOperIAJIn=" + str(SLA_Table[key]["rttMonLatestJitterOperIAJIn"]) + " rttMonLatestJitterOperIAJOut=" + str(SLA_Table[key]["rttMonLatestJitterOperIAJOut"]) + " rttMonLatestJitterOperICPIF=" + str(SLA_Table[key]["rttMonLatestJitterOperICPIF"]) + " rttMonLatestJitterOperMOS=" + str(SLA_Table[key]["rttMonLatestJitterOperMOS"])
+
+ ##If SLA is HTTP, populate wOut with correct table data
+ if tType == "W":
+ wOut= " rttMonLatestHTTPOperRTT=" + str(SLA_Table[key]["rttMonLatestHTTPOperRTT"]) + " rttMonLatestHTTPOperDNSRTT=" + str(SLA_Table[key]["rttMonLatestHTTPOperDNSRTT"]) + " rttMonLatestHTTPOperTCPConnectRTT=" + str(SLA_Table[key]["rttMonLatestHTTPOperTCPConnectRTT"]) + " rttMonLatestHTTPOperTransactionRTT=" + str(SLA_Table[key]["rttMonLatestHTTPOperTransactionRTT"]) + " rttMonLatestHTTPErrorSenseDescription=" + str(SLA_Table[key]["rttMonLatestHTTPErrorSenseDescription"])
+
+ ##Populate out with common table data
+ out= "OK| key=" + str(SLA_Table[key]["item"]) + " rttMonLatestRttOperCompletionTime=" + str(SLA_Table[key]["rttMonLatestRttOperCompletionTime"]) + " rttMonLatestRttOperSense=" + str(SLA_Table[key]["rttMonLatestRttOperSense"]) + " rttMonLatestRttOperApplSpecificSense=" + str(SLA_Table[key]["rttMonLatestRttOperApplSpecificSense"]) + " rttMonLatestRttOperTime=" + str(SLA_Table[key]["rttMonLatestRttOperTime"])
+
+ ##Print all strings
+ print out + vOut + wOut
+
+##Fuction to display all common table data
+def sho_result( SLA_Table ):
+ for key in SLA_Table:
+ print "OK| key=", SLA_Table[key]["item"], "RttOperCompletionTime=", SLA_Table[key]["rttMonLatestRttOperCompletionTime"], "RttOperSense=", SLA_Table[key]["rttMonLatestRttOperSense"], "ApplSpecificSense=", SLA_Table[key]["rttMonLatestRttOperApplSpecificSense"], "RttOperTime=", SLA_Table[key]["rttMonLatestRttOperTime"]
+
+##SNMP walk (essentially)
+def walk( dswitch, com, oid ):
+ errorIndication, errorStatus, errorIndex, \
+ generic = cmdgen.CommandGenerator().nextCmd(cmdgen.CommunityData('test-agent', com), \
+ cmdgen.UdpTransportTarget((dswitch, 161)), oid)
+ return ( (errorIndication, generic) )
+
+##Print help menu
+def usage():
+ print """
+ Remember: pysnmp and pyasn1 are requirements to run this script!
+ '-d, --device=switch' This is the device you are connecting to.
+ '-c, --community=public' This is the SNMP community string you are using to connect to the device.
+ '-k, --key=unique ID' This is the unique ID for the entry you wish to return.
+ '-h, --help' Call this help menu.
+ '-t, --type' Specify SLA type.
+ """
+ sys.exit(1)
+
+##Define SLA OID's for specified SLA types
+SLATable = {
+ "rttMonLatestRttOperCompletionTime" : (1,3,6,1,4,1,9,9,42,1,2,10,1,1),
+ "rttMonLatestRttOperSense" : (1,3,6,1,4,1,9,9,42,1,2,10,1,2),
+ "rttMonLatestRttOperApplSpecificSense" : (1,3,6,1,4,1,9,9,42,1,2,10,1,3),
+ "rttMonLatestRttOperTime" : (1,3,6,1,4,1,9,9,42,1,2,10,1,5)
+ }
+
+vSLATable = {
+ "rttMonLatestJitterOperAvgJitter" : (1,3,6,1,4,1,9,9,42,1,5,2,1,46),
+ "rttMonLatestJitterOperIAJIn" : (1,3,6,1,4,1,9,9,42,1,5,2,1,45),
+ "rttMonLatestJitterOperIAJOut" : (1,3,6,1,4,1,9,9,42,1,5,2,1,44),
+ "rttMonLatestJitterOperICPIF" : (1,3,6,1,4,1,9,9,42,1,5,2,1,43),
+ "rttMonLatestJitterOperMOS" : (1,3,6,1,4,1,9,9,42,1,5,2,1,42)
+ }
+
+wSLATable = {
+ "rttMonLatestHTTPOperRTT" : (1,3,6,1,4,1,9,9,42,1,5,1,1,1),
+ "rttMonLatestHTTPOperDNSRTT" : (1,3,6,1,4,1,9,9,42,1,5,1,1,2),
+ "rttMonLatestHTTPOperTCPConnectRTT" : (1,3,6,1,4,1,9,9,42,1,5,1,1,3),
+ "rttMonLatestHTTPOperTransactionRTT" : (1,3,6,1,4,1,9,9,42,1,5,1,1,4),
+ "rttMonLatestHTTPErrorSenseDescription" : (1,3,6,1,4,1,9,9,42,1,5,1,1,6)
+ }
+
+##Populate arguments. If Fail, print help menu
+try:
+ opts, args = getopt.getopt(sys.argv[1:], "c:d:k:t:hv",
+ [ 'community=', 'device=', 'key=', 'type=', 'help' ]
+ )
+except getopt.error:
+ usage()
+
+##Declare strings
+help = keyS = tType = community = device = None
+
+##Populate strings with arguments
+for opt, val in opts:
+ if opt in ('-c', '--community'):
+ community = val
+ if opt in ('-d', '--device'):
+ device = val
+ if opt in ('-k', '--key'):
+ keyS = val
+ if opt in ('-t', '--type'):
+ tType = val
+ if opt in ('-h', '--help'):
+ help = usage()
+
+##If minimum arguments are supplied, goto main function, else print help menu
+if __name__ == '__main__' and device and community:
+ main()
+else:
+ usage()
View
2  ZenPacks/ipSLA/SLADevice/SLAS.py
@@ -23,6 +23,7 @@ class SLAS(DeviceComponent, ManagedEntity):
"""IP-SLA Onject"""
portal_type = meta_type = 'SLAS'
+ instance = ""
rttMonCtrlAdminOwner = ""
rttMonCtrlAdminTag = ""
rttMonCtrlAdminRttType = ""
@@ -90,6 +91,7 @@ class SLAS(DeviceComponent, ManagedEntity):
rttMonEchoAdminTargetEVC = ""
_properties = (
+ {'id':'instance', 'type':'string', 'mode':''},
{'id':'rttMonCtrlAdminOwner', 'type':'string', 'mode':''},
{'id':'rttMonCtrlAdminTag', 'type':'string', 'mode':''},
{'id':'rttMonCtrlAdminRttType', 'type':'string', 'mode':''},
View
12 ZenPacks/ipSLA/SLADevice/modeler/plugins/SLADevice.py
@@ -96,15 +96,21 @@ def process(self, device, results, log):
log.info('processing %s for device %s', self.name(), device.id)
log.info("SLA (entries) results: %r", results)
+ #log.info('TEST: %s', results[1]["MonOperEntry"])
getdata, tabledata = results
table = tabledata.get("MonOperEntry")
-
rm = self.relMap()
-
+ count=-1
+ #for key in table.keys():
+ # log.info('TEST: %s', key)
+
for info in table.values():
+ keys = table.keys()
+ count=count+1
+ log.info('TESTB: %s', keys[count])
omA = self.objectMap(info)
omA.id = self.prepId("SLA_" + str(omA.rttMonCtrlAdminTag))
-
+ omA.instance = keys[count]
if omA.rttMonCtrlAdminRttType == 9:
omA.rttMonCtrlAdminRttType = "VoIP"
View
2,726 ZenPacks/ipSLA/SLADevice/objects/objects.xml
@@ -1,1394 +1,1332 @@
-<?xml version="1.0"?>
-<objects>
-<!-- ('', 'zport', 'dmd', 'Devices', 'Network', 'IPSLA') -->
-<object id='/zport/dmd/Devices/Network/IPSLA' module='Products.ZenModel.DeviceClass' class='DeviceClass'>
-<property visible="True" type="string" id="zPythonClass" >
-ZenPacks.ipSLA.SLADevice.SLADevice
-</property>
-<property visible="True" type="string" id="zSnmpVer" >
-v2c
-</property>
-<tomanycont id='rrdTemplates'>
-<object id='HTTP' module='Products.ZenModel.RRDTemplate' class='RRDTemplate'>
-<property type="text" id="description" mode="w" >
-HTTP SLA Template
-</property>
-<property type="string" id="targetPythonClass" mode="w" >
-ZenPacks.ipSLA.SLADevice.SLADevice
-</property>
-<tomanycont id='datasources'>
-<object id='HTTP_TEST' module='Products.ZenModel.BasicDataSource' class='BasicDataSource'>
-<property select_variable="sourcetypes" type="selection" id="sourcetype" mode="w" >
-COMMAND
-</property>
-<property type="boolean" id="enabled" mode="w" >
-True
-</property>
-<property type="string" id="eventClass" mode="w" >
-/Cmd/Fail
-</property>
-<property type="int" id="severity" mode="w" >
-3
-</property>
-<property type="string" id="commandTemplate" mode="w" >
-/usr/bin/perl $ZENHOME/ZenPacks/ZenPacks.ipSLA.SLADevice-1.2-py2.4.egg/ZenPacks/ipSLA/SLADevice/Collect_HTTP.pl '${here/rttMonCtrlAdminTag}' ${here/zSnmpCommunity} ${here/zSnmpVer} ${here/manageIp}
-</property>
-<property type="int" id="cycletime" mode="w" >
-30
-</property>
-<property type="boolean" id="usessh" mode="w" >
-False
-</property>
-<property type="string" id="parser" mode="w" >
-Auto
-</property>
-<tomanycont id='datapoints'>
-<object id='rttMonLatestHTTPErrorSenseDescription' module='Products.ZenModel.RRDDataPoint' class='RRDDataPoint'>
-<property select_variable="rrdtypes" type="selection" id="rrdtype" mode="w" >
-GAUGE
-</property>
-<property type="boolean" id="isrow" mode="w" >
-True
-</property>
-</object>
-<object id='rttMonLatestHTTPOperDNSRTT' module='Products.ZenModel.RRDDataPoint' class='RRDDataPoint'>
-<property select_variable="rrdtypes" type="selection" id="rrdtype" mode="w" >
-GAUGE
-</property>
-<property type="boolean" id="isrow" mode="w" >
-True
-</property>
-</object>
-<object id='rttMonLatestHTTPOperRTT' module='Products.ZenModel.RRDDataPoint' class='RRDDataPoint'>
-<property select_variable="rrdtypes" type="selection" id="rrdtype" mode="w" >
-GAUGE
-</property>
-<property type="boolean" id="isrow" mode="w" >
-True
-</property>
-</object>
-<object id='rttMonLatestHTTPOperTCPConnectRTT' module='Products.ZenModel.RRDDataPoint' class='RRDDataPoint'>
-<property select_variable="rrdtypes" type="selection" id="rrdtype" mode="w" >
-GAUGE
-</property>
-<property type="boolean" id="isrow" mode="w" >
-True
-</property>
-</object>
-<object id='rttMonLatestHTTPOperTransactionRTT' module='Products.ZenModel.RRDDataPoint' class='RRDDataPoint'>
-<property select_variable="rrdtypes" type="selection" id="rrdtype" mode="w" >
-GAUGE
-</property>
-<property type="boolean" id="isrow" mode="w" >
-True
-</property>
-</object>
-</tomanycont>
-</object>
-<object id='SLA_HTTP_TEST' module='Products.ZenModel.BasicDataSource' class='BasicDataSource'>
-<property select_variable="sourcetypes" type="selection" id="sourcetype" mode="w" >
-COMMAND
-</property>
-<property type="boolean" id="enabled" mode="w" >
-True
-</property>
-<property type="string" id="eventClass" mode="w" >
-/Cmd/Fail
-</property>
-<property type="int" id="severity" mode="w" >
-3
-</property>
-<property type="string" id="commandTemplate" mode="w" >
-/usr/bin/perl $ZENHOME/ZenPacks/ZenPacks.ipSLA.SLADevice-1.2-py2.4.egg/ZenPacks/ipSLA/SLADevice/Collect.pl '${here/rttMonCtrlAdminTag}' ${here/zSnmpCommunity} ${here/zSnmpVer} ${here/manageIp}
-</property>
-<property type="int" id="cycletime" mode="w" >
-30
-</property>
-<property type="boolean" id="usessh" mode="w" >
-False
-</property>
-<property type="string" id="parser" mode="w" >
-Auto
-</property>
-<tomanycont id='datapoints'>
-<object id='rttMonLatestRttOperApplSpecificSense' module='Products.ZenModel.RRDDataPoint' class='RRDDataPoint'>
-<property select_variable="rrdtypes" type="selection" id="rrdtype" mode="w" >
-GAUGE
-</property>
-<property type="boolean" id="isrow" mode="w" >
-True
-</property>
-</object>
-<object id='rttMonLatestRttOperCompletionTime' module='Products.ZenModel.RRDDataPoint' class='RRDDataPoint'>
-<property select_variable="rrdtypes" type="selection" id="rrdtype" mode="w" >
-GAUGE
-</property>
-<property type="boolean" id="isrow" mode="w" >
-True
-</property>
-</object>
-<object id='rttMonLatestRttOperSense' module='Products.ZenModel.RRDDataPoint' class='RRDDataPoint'>
-<property select_variable="rrdtypes" type="selection" id="rrdtype" mode="w" >
-GAUGE
-</property>
-<property type="boolean" id="isrow" mode="w" >
-True
-</property>
-</object>
-<object id='rttMonLatestRttOperTime' module='Products.ZenModel.RRDDataPoint' class='RRDDataPoint'>
-<property select_variable="rrdtypes" type="selection" id="rrdtype" mode="w" >
-GAUGE
-</property>
-<property type="boolean" id="isrow" mode="w" >
-True
-</property>
-</object>
-</tomanycont>
-</object>
-</tomanycont>
-<tomanycont id='graphDefs'>
-<object id='Round Trip Time' module='Products.ZenModel.GraphDefinition' class='GraphDefinition'>
-<property type="int" id="height" mode="w" >
-100
-</property>
-<property type="int" id="width" mode="w" >
-890
-</property>
-<property type="string" id="units" mode="w" >
-Seconds
-</property>
-<property type="boolean" id="log" mode="w" >
-False
-</property>
-<property type="boolean" id="base" mode="w" >
-False
-</property>
-<property type="int" id="miny" mode="w" >
-0
-</property>
-<property type="int" id="maxy" mode="w" >
--1
-</property>
-<property type="text" id="custom" mode="w" >
--P
--E
-
-LINE2:HTTP_TEST_rttMonLatestRttOperCompletionTime-raw#0000FF:RTT Completion Time
-LINE2:TEST_rttMonLatestHTTPOperDNSRTT-raw#00FFFF:DNS RTT Completion Time
-LINE2:TEST_rttMonLatestHTTPOperTCPConnectRTT-raw#FF00FF:TCP Connection Completion Time
-LINE2:TEST_rttMonLatestHTTPOperTransactionRTT-raw#FF0000:Transaction Completion Time
-
-COMMENT:\\s
-COMMENT:\\s
-COMMENT:\\s
-
-COMMENT:&lt;b&gt;${here/viewName} Results&lt;/b&gt;\:
-COMMENT:\\s
-COMMENT:\\s
-
-COMMENT:RTT Completion Time\:
-GPRINT:HTTP_TEST_rttMonLatestRttOperCompletionTime-raw:LAST:%5.2lf seconds
-
-COMMENT:\\s
-COMMENT:\\s
-
-COMMENT:DNS RTT Completion Time\:
-GPRINT:TEST_rttMonLatestHTTPOperDNSRTT-raw:LAST:%5.2lf seconds
-
-COMMENT:\\s
-COMMENT:\\s
-
-COMMENT:TCP Connection Completion Time\:
-GPRINT:TEST_rttMonLatestHTTPOperTCPConnectRTT-raw:LAST:%5.2lf seconds
-
-COMMENT:\\s
-COMMENT:\\s
-
-COMMENT:Transaction Completion Time\:
-GPRINT:TEST_rttMonLatestHTTPOperTransactionRTT-raw:LAST:%5.2lf seconds
-
-COMMENT:\\s
-COMMENT:\\s
-COMMENT:\\s
-
-COMMENT:&lt;b&gt;${here/viewName} Spikes&lt;/b&gt;\:
-COMMENT:\\s
-COMMENT:\\s
-
-COMMENT:RTT\:
-GPRINT:HTTP_TEST_rttMonLatestRttOperCompletionTime-raw:MAX:%5.2lf seconds
-
-COMMENT:\\s
-COMMENT:\\s
-
-COMMENT:DNS RTT Completion Time\:
-GPRINT:TEST_rttMonLatestHTTPOperDNSRTT-raw:MAX:%5.2lf seconds
-
-COMMENT:\\s
-COMMENT:\\s
-
-COMMENT:TCP Connection Completion Time\:
-GPRINT:TEST_rttMonLatestHTTPOperTCPConnectRTT-raw:MAX:%5.2lf seconds
-
-COMMENT:\\s
-COMMENT:\\s
-
-COMMENT:Transaction Completion Time\:
-GPRINT:TEST_rttMonLatestHTTPOperTransactionRTT-raw:MAX:%5.2lf seconds
-
-COMMENT:\\s
-COMMENT:\\s
-</property>
-<property type="boolean" id="hasSummary" mode="w" >
-True
-</property>
-<tomanycont id='graphPoints'>
-<object id='HTTP_TEST_rttMonLatestRttOperCompletionTime' module='Products.ZenModel.DataPointGraphPoint' class='DataPointGraphPoint'>
-<property select_variable="lineTypes" type="selection" id="lineType" mode="w" >
-DONTDRAW
-</property>
-<property type="long" id="lineWidth" mode="w" >
-1
-</property>
-<property type="boolean" id="stacked" mode="w" >
-False
-</property>
-<property type="string" id="format" mode="w" >
-%5.2lf%s
-</property>
-<property type="string" id="legend" mode="w" >
-${here/viewName} RTT - ${here/rttMonCtrlAdminRttType} type
-</property>
-<property type="long" id="limit" mode="w" >
--1
-</property>
-<property type="string" id="rpn" mode="w" >
-1000,/
-</property>
-<property type="string" id="dpName" mode="w" >
-SLA_HTTP_TEST_rttMonLatestRttOperCompletionTime
-</property>
-<property type="string" id="cFunc" mode="w" >
-AVERAGE
-</property>
-</object>
-<object id='TEST_rttMonLatestHTTPOperDNSRTT' module='Products.ZenModel.DataPointGraphPoint' class='DataPointGraphPoint'>
-<property type="long" id="sequence" mode="w" >
-1
-</property>
-<property select_variable="lineTypes" type="selection" id="lineType" mode="w" >
-DONTDRAW
-</property>
-<property type="long" id="lineWidth" mode="w" >
-1
-</property>
-<property type="boolean" id="stacked" mode="w" >
-False
-</property>
-<property type="string" id="format" mode="w" >
-%5.2lf%s
-</property>
-<property type="string" id="legend" mode="w" >
-${graphPoint/id}
-</property>
-<property type="long" id="limit" mode="w" >
--1
-</property>
-<property type="string" id="dpName" mode="w" >
-HTTP_TEST_rttMonLatestHTTPOperDNSRTT
-</property>
-<property type="string" id="cFunc" mode="w" >
-AVERAGE
-</property>
-</object>
-<object id='TEST_rttMonLatestHTTPOperTCPConnectRTT' module='Products.ZenModel.DataPointGraphPoint' class='DataPointGraphPoint'>
-<property type="long" id="sequence" mode="w" >
-2
-</property>
-<property select_variable="lineTypes" type="selection" id="lineType" mode="w" >
-DONTDRAW
-</property>
-<property type="long" id="lineWidth" mode="w" >
-1
-</property>
-<property type="boolean" id="stacked" mode="w" >
-False
-</property>
-<property type="string" id="format" mode="w" >
-%5.2lf%s
-</property>
-<property type="string" id="legend" mode="w" >
-${graphPoint/id}
-</property>
-<property type="long" id="limit" mode="w" >
--1
-</property>
-<property type="string" id="dpName" mode="w" >
-HTTP_TEST_rttMonLatestHTTPOperTCPConnectRTT
-</property>
-<property type="string" id="cFunc" mode="w" >
-AVERAGE
-</property>
-</object>
-<object id='TEST_rttMonLatestHTTPOperTransactionRTT' module='Products.ZenModel.DataPointGraphPoint' class='DataPointGraphPoint'>
-<property type="long" id="sequence" mode="w" >
-3
-</property>
-<property select_variable="lineTypes" type="selection" id="lineType" mode="w" >
-DONTDRAW
-</property>
-<property type="long" id="lineWidth" mode="w" >
-1
-</property>
-<property type="boolean" id="stacked" mode="w" >
-False
-</property>
-<property type="string" id="format" mode="w" >
-%5.2lf%s
-</property>
-<property type="string" id="legend" mode="w" >
-${graphPoint/id}
-</property>
-<property type="long" id="limit" mode="w" >
--1
-</property>
-<property type="string" id="dpName" mode="w" >
-HTTP_TEST_rttMonLatestHTTPOperTransactionRTT
-</property>
-<property type="string" id="cFunc" mode="w" >
-AVERAGE
-</property>
-</object>
-</tomanycont>
-</object>
-<object id='Sense' module='Products.ZenModel.GraphDefinition' class='GraphDefinition'>
-<property type="int" id="height" mode="w" >
-100
-</property>
-<property type="int" id="width" mode="w" >
-890
-</property>
-<property type="string" id="units" mode="w" >
-Code #
-</property>
-<property type="boolean" id="log" mode="w" >
-False
-</property>
-<property type="boolean" id="base" mode="w" >
-False
-</property>
-<property type="int" id="miny" mode="w" >
-0
-</property>
-<property type="int" id="maxy" mode="w" >
--1
-</property>
-<property type="text" id="custom" mode="w" >
--P
--E
-
-LINE2:HTTP_TEST_rttMonLatestRttOperSense-raw#8888FF:Op Sense
-LINE2:HTTP_TEST_rttMonLatestRttOperApplSpecificSense-raw#88FF88:Specific Op Sense
-
-COMMENT:\\s
-COMMENT:\\s
-COMMENT:\\s
-
-COMMENT:&lt;b&gt;${here/viewName} Results&lt;/b&gt;\:
-COMMENT:\\s
-COMMENT:\\s
-COMMENT:Op Sense\:
-GPRINT:HTTP_TEST_rttMonLatestRttOperApplSpecificSense-raw:LAST:%5.0lf
-
-COMMENT:Specific Op Sense\:
-GPRINT:HTTP_TEST_rttMonLatestRttOperSense-raw:LAST:%5.0lf
-
-COMMENT:\\s
-COMMENT:\\s
-COMMENT:\\s
-
-COMMENT:&lt;b&gt;${here/viewName} Spikes&lt;/b&gt;\:
-COMMENT:\\s
-COMMENT:\\s
-COMMENT:Op Sense\:
-GPRINT:HTTP_TEST_rttMonLatestRttOperApplSpecificSense-raw:MAX:%5.0lf
-
-COMMENT:Specific Op Sense\:
-GPRINT:HTTP_TEST_rttMonLatestRttOperSense-raw:MAX:%5.0lf
-
-COMMENT:\\s
-COMMENT:\\s
-</property>
-<property type="boolean" id="hasSummary" mode="w" >
-True
-</property>
-<property type="long" id="sequence" mode="w" >
-1
-</property>
-<tomanycont id='graphPoints'>
-<object id='HTTP_TEST_rttMonLatestRttOperApplSpecificSense' module='Products.ZenModel.DataPointGraphPoint' class='DataPointGraphPoint'>
-<property select_variable="lineTypes" type="selection" id="lineType" mode="w" >
-DONTDRAW
-</property>
-<property type="long" id="lineWidth" mode="w" >
-1
-</property>
-<property type="boolean" id="stacked" mode="w" >
-False
-</property>
-<property type="string" id="format" mode="w" >
-%5.2lf%s
-</property>
-<property type="string" id="legend" mode="w" >
-${graphPoint/id}
-</property>
-<property type="long" id="limit" mode="w" >
--1
-</property>
-<property type="string" id="dpName" mode="w" >
-SLA_HTTP_TEST_rttMonLatestRttOperApplSpecificSense
-</property>
-<property type="string" id="cFunc" mode="w" >
-AVERAGE
-</property>
-</object>
-<object id='HTTP_TEST_rttMonLatestRttOperSense' module='Products.ZenModel.DataPointGraphPoint' class='DataPointGraphPoint'>
-<property type="long" id="sequence" mode="w" >
-1
-</property>
-<property select_variable="lineTypes" type="selection" id="lineType" mode="w" >
-DONTDRAW
-</property>
-<property type="long" id="lineWidth" mode="w" >
-1
-</property>
-<property type="boolean" id="stacked" mode="w" >
-False
-</property>
-<property type="string" id="format" mode="w" >
-%5.2lf%s
-</property>
-<property type="string" id="legend" mode="w" >
-${graphPoint/id}
-</property>
-<property type="long" id="limit" mode="w" >
--1
-</property>
-<property type="string" id="dpName" mode="w" >
-SLA_HTTP_TEST_rttMonLatestRttOperSense
-</property>
-<property type="string" id="cFunc" mode="w" >
-AVERAGE
-</property>
-</object>
-</tomanycont>
-</object>
-</tomanycont>
-</object>
-<object id='New_SLA' module='Products.ZenModel.RRDTemplate' class='RRDTemplate'>
-<property type="string" id="targetPythonClass" mode="w" >
-ZenPacks.ipSLA.SLADevice.SLADevice
-</property>
-<tomanycont id='datasources'>
-<object id='SLA_TEST' module='Products.ZenModel.BasicDataSource' class='BasicDataSource'>
-<property select_variable="sourcetypes" type="selection" id="sourcetype" mode="w" >
-COMMAND
-</property>
-<property type="boolean" id="enabled" mode="w" >
-True
-</property>
-<property type="string" id="eventClass" mode="w" >
-/Cmd/Fail
-</property>
-<property type="int" id="severity" mode="w" >
-3
-</property>
-<property type="string" id="commandTemplate" mode="w" >
-/usr/bin/perl $ZENHOME/ZenPacks/ZenPacks.ipSLA.SLADevice-1.2-py2.4.egg/ZenPacks/ipSLA/SLADevice/Collect.pl '${here/rttMonCtrlAdminTag}' ${here/zSnmpCommunity} ${here/zSnmpVer} ${here/manageIp}
-</property>
-<property type="int" id="cycletime" mode="w" >
-30
-</property>
-<property type="boolean" id="usessh" mode="w" >
-False
-</property>
-<property type="string" id="parser" mode="w" >
-Auto
-</property>
-<tomanycont id='datapoints'>
-<object id='rttMonLatestRttOperApplSpecificSense' module='Products.ZenModel.RRDDataPoint' class='RRDDataPoint'>
-<property select_variable="rrdtypes" type="selection" id="rrdtype" mode="w" >
-GAUGE
-</property>
-<property type="boolean" id="isrow" mode="w" >
-True
-</property>
-</object>
-<object id='rttMonLatestRttOperCompletionTime' module='Products.ZenModel.RRDDataPoint' class='RRDDataPoint'>
-<property select_variable="rrdtypes" type="selection" id="rrdtype" mode="w" >
-GAUGE
-</property>
-<property type="boolean" id="isrow" mode="w" >
-True
-</property>
-</object>
-<object id='rttMonLatestRttOperSense' module='Products.ZenModel.RRDDataPoint' class='RRDDataPoint'>
-<property select_variable="rrdtypes" type="selection" id="rrdtype" mode="w" >
-GAUGE
-</property>
-<property type="boolean" id="isrow" mode="w" >
-True
-</property>
-</object>
-<object id='rttMonLatestRttOperTime' module='Products.ZenModel.RRDDataPoint' class='RRDDataPoint'>
-<property select_variable="rrdtypes" type="selection" id="rrdtype" mode="w" >
-GAUGE
-</property>
-<property type="boolean" id="isrow" mode="w" >
-True
-</property>
-</object>
-</tomanycont>
-</object>
-</tomanycont>
-<tomanycont id='graphDefs'>
-<object id='Round Trip Time' module='Products.ZenModel.GraphDefinition' class='GraphDefinition'>
-<property type="int" id="height" mode="w" >
-100
-</property>
-<property type="int" id="width" mode="w" >
-890
-</property>
-<property type="string" id="units" mode="w" >
-Seconds
-</property>
-<property type="boolean" id="log" mode="w" >
-False
-</property>
-<property type="boolean" id="base" mode="w" >
-False
-</property>
-<property type="int" id="miny" mode="w" >
-0
-</property>
-<property type="int" id="maxy" mode="w" >
--1
-</property>
-<property type="text" id="custom" mode="w" >
--P
--E
-
-LINE2:TEST_rttMonLatestRttOperCompletionTime-raw#0000FF:RTT Completion Time
-
-COMMENT:\\s
-COMMENT:\\s
-COMMENT:\\s
-
-COMMENT:&lt;b&gt;${here/viewName} Results&lt;/b&gt;\:
-COMMENT:\\s
-COMMENT:\\s
-
-COMMENT:RTT\:
-GPRINT:TEST_rttMonLatestRttOperCompletionTime-raw:LAST:%5.2lf seconds
-
-COMMENT:\\s
-COMMENT:\\s
-COMMENT:\\s
-
-COMMENT:&lt;b&gt;${here/viewName} Spikes&lt;/b&gt;\:
-COMMENT:\\s
-COMMENT:\\s
-
-COMMENT:RTT\:
-GPRINT:TEST_rttMonLatestRttOperCompletionTime-raw:MAX:%5.2lf seconds
-
-COMMENT:\\s
-COMMENT:\\s
-</property>
-<property type="boolean" id="hasSummary" mode="w" >
-True
-</property>
-<tomanycont id='graphPoints'>
-<object id='TEST_rttMonLatestRttOperCompletionTime' module='Products.ZenModel.DataPointGraphPoint' class='DataPointGraphPoint'>
-<property select_variable="lineTypes" type="selection" id="lineType" mode="w" >
-DONTDRAW
-</property>
-<property type="long" id="lineWidth" mode="w" >
-1
-</property>
-<property type="boolean" id="stacked" mode="w" >
-False
-</property>
-<property type="string" id="format" mode="w" >
-%5.2lf%s
-</property>
-<property type="string" id="legend" mode="w" >
-${here/viewName} RTT - ${here/rttMonCtrlAdminRttType} type
-</property>
-<property type="long" id="limit" mode="w" >
--1
-</property>
-<property type="string" id="rpn" mode="w" >
-1000,/
-</property>
-<property type="string" id="dpName" mode="w" >
-SLA_TEST_rttMonLatestRttOperCompletionTime
-</property>
-<property type="string" id="cFunc" mode="w" >
-AVERAGE
-</property>
-</object>
-</tomanycont>
-</object>
-<object id='Sense' module='Products.ZenModel.GraphDefinition' class='GraphDefinition'>
-<property type="int" id="height" mode="w" >
-100
-</property>
-<property type="int" id="width" mode="w" >
-890
-</property>
-<property type="string" id="units" mode="w" >
-Code #
-</property>
-<property type="boolean" id="log" mode="w" >
-False
-</property>
-<property type="boolean" id="base" mode="w" >
-False
-</property>
-<property type="int" id="miny" mode="w" >
-0
-</property>
-<property type="int" id="maxy" mode="w" >
--1
-</property>
-<property type="text" id="custom" mode="w" >
--P
--E
-
-LINE2:TEST_rttMonLatestRttOperSense-raw#8888FF:Op Sense
-LINE2:TEST_rttMonLatestRttOperApplSpecificSense-raw#88FF88:Specific Op Sense
-
-COMMENT:\\s
-COMMENT:\\s
-COMMENT:\\s
-
-COMMENT:&lt;b&gt;${here/viewName} Results&lt;/b&gt;\:
-COMMENT:\\s
-COMMENT:\\s
-COMMENT:Op Sense\:
-GPRINT:TEST_rttMonLatestRttOperApplSpecificSense-raw:LAST:%5.0lf
-
-COMMENT:Specific Op Sense\:
-GPRINT:TEST_rttMonLatestRttOperSense-raw:LAST:%5.0lf
-
-COMMENT:\\s
-COMMENT:\\s
-COMMENT:\\s
-
-COMMENT:&lt;b&gt;${here/viewName} Spikes&lt;/b&gt;\:
-COMMENT:\\s
-COMMENT:\\s
-COMMENT:Op Sense\:
-GPRINT:TEST_rttMonLatestRttOperApplSpecificSense-raw:MAX:%5.0lf
-
-COMMENT:Specific Op Sense\:
-GPRINT:TEST_rttMonLatestRttOperSense-raw:MAX:%5.0lf
-
-COMMENT:\\s
-COMMENT:\\s
-</property>
-<property type="boolean" id="hasSummary" mode="w" >
-True
-</property>
-<property type="long" id="sequence" mode="w" >
-1
-</property>
-<tomanycont id='graphPoints'>
-<object id='TEST_rttMonLatestRttOperApplSpecificSense' module='Products.ZenModel.DataPointGraphPoint' class='DataPointGraphPoint'>
-<property select_variable="lineTypes" type="selection" id="lineType" mode="w" >
-DONTDRAW
-</property>
-<property type="long" id="lineWidth" mode="w" >
-1
-</property>
-<property type="boolean" id="stacked" mode="w" >
-False
-</property>
-<property type="string" id="format" mode="w" >
-%5.2lf%s
-</property>
-<property type="string" id="legend" mode="w" >
-${graphPoint/id}
-</property>
-<property type="long" id="limit" mode="w" >
--1
-</property>
-<property type="string" id="dpName" mode="w" >
-SLA_TEST_rttMonLatestRttOperApplSpecificSense
-</property>
-<property type="string" id="cFunc" mode="w" >
-AVERAGE
-</property>
-</object>
-<object id='TEST_rttMonLatestRttOperSense' module='Products.ZenModel.DataPointGraphPoint' class='DataPointGraphPoint'>
-<property type="long" id="sequence" mode="w" >
-1
-</property>
-<property select_variable="lineTypes" type="selection" id="lineType" mode="w" >
-DONTDRAW
-</property>
-<property type="long" id="lineWidth" mode="w" >
-1
-</property>
-<property type="boolean" id="stacked" mode="w" >
-False
-</property>
-<property type="string" id="format" mode="w" >
-%5.2lf%s
-</property>
-<property type="string" id="legend" mode="w" >
-${graphPoint/id}
-</property>
-<property type="long" id="limit" mode="w" >
--1
-</property>
-<property type="string" id="dpName" mode="w" >
-SLA_TEST_rttMonLatestRttOperSense
-</property>
-<property type="string" id="cFunc" mode="w" >
-AVERAGE
-</property>
-</object>
-</tomanycont>
-</object>
-</tomanycont>
-</object>
-<object id='VoIP' module='Products.ZenModel.RRDTemplate' class='RRDTemplate'>
-<property type="string" id="targetPythonClass" mode="w" >
-ZenPacks.ipSLA.SLADevice.SLADevice
-</property>
-<tomanycont id='datasources'>
-<object id='SLA_TEST' module='Products.ZenModel.BasicDataSource' class='BasicDataSource'>
-<property select_variable="sourcetypes" type="selection" id="sourcetype" mode="w" >
-COMMAND
-</property>
-<property type="boolean" id="enabled" mode="w" >
-True
-</property>
-<property type="string" id="eventClass" mode="w" >
-/Cmd/Fail
-</property>
-<property type="int" id="severity" mode="w" >
-3
-</property>
-<property type="string" id="commandTemplate" mode="w" >
-/usr/bin/perl $ZENHOME/ZenPacks/ZenPacks.ipSLA.SLADevice-1.2-py2.4.egg/ZenPacks/ipSLA/SLADevice/Collect.pl '${here/rttMonCtrlAdminTag}' ${here/zSnmpCommunity} ${here/zSnmpVer} ${here/manageIp}
-</property>
-<property type="int" id="cycletime" mode="w" >
-30
-</property>
-<property type="boolean" id="usessh" mode="w" >
-False
-</property>
-<property type="string" id="parser" mode="w" >
-Auto
-</property>
-<tomanycont id='datapoints'>
-<object id='rttMonLatestRttOperApplSpecificSense' module='Products.ZenModel.RRDDataPoint' class='RRDDataPoint'>
-<property select_variable="rrdtypes" type="selection" id="rrdtype" mode="w" >
-GAUGE
-</property>
-<property type="boolean" id="isrow" mode="w" >
-True
-</property>
-</object>
-<object id='rttMonLatestRttOperCompletionTime' module='Products.ZenModel.RRDDataPoint' class='RRDDataPoint'>
-<property select_variable="rrdtypes" type="selection" id="rrdtype" mode="w" >
-GAUGE
-</property>
-<property type="boolean" id="isrow" mode="w" >
-True
-</property>
-</object>
-<object id='rttMonLatestRttOperSense' module='Products.ZenModel.RRDDataPoint' class='RRDDataPoint'>
-<property select_variable="rrdtypes" type="selection" id="rrdtype" mode="w" >
-GAUGE
-</property>
-<property type="boolean" id="isrow" mode="w" >
-True
-</property>
-</object>
-<object id='rttMonLatestRttOperTime' module='Products.ZenModel.RRDDataPoint' class='RRDDataPoint'>
-<property select_variable="rrdtypes" type="selection" id="rrdtype" mode="w" >
-GAUGE
-</property>
-<property type="boolean" id="isrow" mode="w" >
-True
-</property>
-</object>
-</tomanycont>
-</object>
-<object id='VoIP_SLA_TEST' module='Products.ZenModel.BasicDataSource' class='BasicDataSource'>
-<property select_variable="sourcetypes" type="selection" id="sourcetype" mode="w" >
-COMMAND
-</property>
-<property type="boolean" id="enabled" mode="w" >
-True
-</property>
-<property type="string" id="eventClass" mode="w" >
-/Cmd/Fail
-</property>
-<property type="int" id="severity" mode="w" >
-3
-</property>
-<property type="string" id="commandTemplate" mode="w" >
-/usr/bin/perl $ZENHOME/ZenPacks/ZenPacks.ipSLA.SLADevice-1.2-py2.4.egg/ZenPacks/ipSLA/SLADevice/Collect_VoIP.pl '${here/rttMonCtrlAdminTag}' ${here/zSnmpCommunity} ${here/zSnmpVer} ${here/manageIp}
-</property>
-<property type="int" id="cycletime" mode="w" >
-30
-</property>
-<property type="boolean" id="usessh" mode="w" >
-False
-</property>
-<property type="string" id="parser" mode="w" >
-Auto
-</property>
-<tomanycont id='datapoints'>
-<object id='rttMonLatestJitterOperAvgJitter' module='Products.ZenModel.RRDDataPoint' class='RRDDataPoint'>
-<property select_variable="rrdtypes" type="selection" id="rrdtype" mode="w" >
-GAUGE
-</property>
-<property type="boolean" id="isrow" mode="w" >
-True
-</property>
-</object>
-<object id='rttMonLatestJitterOperIAJIn' module='Products.ZenModel.RRDDataPoint' class='RRDDataPoint'>
-<property select_variable="rrdtypes" type="selection" id="rrdtype" mode="w" >
-GAUGE
-</property>
-<property type="boolean" id="isrow" mode="w" >
-True
-</property>
-</object>
-<object id='rttMonLatestJitterOperIAJOut' module='Products.ZenModel.RRDDataPoint' class='RRDDataPoint'>
-<property select_variable="rrdtypes" type="selection" id="rrdtype" mode="w" >
-GAUGE
-</property>
-<property type="boolean" id="isrow" mode="w" >
-True
-</property>
-</object>
-<object id='rttMonLatestJitterOperICPIF' module='Products.ZenModel.RRDDataPoint' class='RRDDataPoint'>
-<property select_variable="rrdtypes" type="selection" id="rrdtype" mode="w" >
-GAUGE
-</property>
-<property type="boolean" id="isrow" mode="w" >
-True
-</property>
-</object>
-<object id='rttMonLatestJitterOperMOS' module='Products.ZenModel.RRDDataPoint' class='RRDDataPoint'>
-<property select_variable="rrdtypes" type="selection" id="rrdtype" mode="w" >
-GAUGE
-</property>
-<property type="boolean" id="isrow" mode="w" >
-True
-</property>
-</object>
-</tomanycont>
-</object>
-</tomanycont>
-<tomanycont id='graphDefs'>
-<object id='Jitter' module='Products.ZenModel.GraphDefinition' class='GraphDefinition'>
-<property type="int" id="height" mode="w" >
-100
-</property>
-<property type="int" id="width" mode="w" >
-890
-</property>
-<property type="boolean" id="log" mode="w" >
-False
-</property>
-<property type="boolean" id="base" mode="w" >
-False
-</property>
-<property type="int" id="miny" mode="w" >
-0
-</property>
-<property type="int" id="maxy" mode="w" >
--1
-</property>
-<property type="text" id="custom" mode="w" >
--P
--E
-
-LINE2:SLA_TEST_rttMonLatestJitterOperAvgJitter-raw#0000FF:Average Jitter
-LINE2:SLA_TEST_rttMonLatestJitterOperIAJIn-raw#00FF00:Jitter In
-LINE2:SLA_TEST_rttMonLatestJitterOperIAJOut-raw#FF0000:Jitter Out
-LINE2:SLA_TEST_rttMonLatestJitterOperICPIF-raw#FFFF00:ICPIF
-LINE2:SLA_TEST_rttMonLatestJitterOperMOS#00FFFF:MOS
-
-COMMENT:\\s
-COMMENT:\\s
-COMMENT:\\s
-
-COMMENT:&lt;b&gt;${here/viewName} Results&lt;/b&gt;\:
-COMMENT:\\s
-COMMENT:\\s
-COMMENT:Average Jitter\:
-GPRINT:SLA_TEST_rttMonLatestJitterOperAvgJitter-raw:LAST:%5.0lf
-
-COMMENT:\\s
-COMMENT:\\s
-
-COMMENT:Jitter In\:
-GPRINT:SLA_TEST_rttMonLatestJitterOperIAJIn-raw:LAST:%5.0lf
-
-COMMENT:\\s
-COMMENT:\\s
-
-COMMENT:Jitter Out\:
-GPRINT:SLA_TEST_rttMonLatestJitterOperIAJOut-raw:LAST:%5.0lf
-
-COMMENT:\\s
-COMMENT:\\s
-
-COMMENT:ICPIF\:
-GPRINT:SLA_TEST_rttMonLatestJitterOperICPIF-raw:LAST:%5.0lf
-
-COMMENT:\\s
-COMMENT:\\s
-
-COMMENT:MOS\:
-GPRINT:SLA_TEST_rttMonLatestJitterOperMOS:LAST:%5.0lf
-
-COMMENT:\\s
-COMMENT:\\s
-COMMENT:\\s
-
-COMMENT:&lt;b&gt;${here/viewName} Spikes&lt;/b&gt;\:
-COMMENT:\\s
-COMMENT:\\s
-COMMENT:Average Jitter\:
-GPRINT:SLA_TEST_rttMonLatestJitterOperAvgJitter-raw:MAX:%5.0lf
-
-COMMENT:\\s
-COMMENT:\\s
-
-COMMENT:Jitter In\:
-GPRINT:SLA_TEST_rttMonLatestJitterOperIAJIn-raw:MAX:%5.0lf
-
-COMMENT:\\s
-COMMENT:\\s
-
-COMMENT:Jitter Out\:
-GPRINT:SLA_TEST_rttMonLatestJitterOperIAJOut-raw:MAX:%5.0lf
-
-COMMENT:\\s
-COMMENT:\\s
-
-COMMENT:ICPIF\:
-GPRINT:SLA_TEST_rttMonLatestJitterOperICPIF-raw:MAX:%5.0lf
-
-COMMENT:\\s
-COMMENT:\\s
-
-COMMENT:MOS\:
-GPRINT:SLA_TEST_rttMonLatestJitterOperMOS:MAX:%5.0lf
-
-COMMENT:\\s
-COMMENT:\\s
-</property>
-<property type="boolean" id="hasSummary" mode="w" >
-True
-</property>
-<property type="long" id="sequence" mode="w" >
-2
-</property>
-<tomanycont id='graphPoints'>
-<object id='SLA_TEST_rttMonLatestJitterOperAvgJitter' module='Products.ZenModel.DataPointGraphPoint' class='DataPointGraphPoint'>
-<property select_variable="lineTypes" type="selection" id="lineType" mode="w" >
-DONTDRAW
-</property>
-<property type="long" id="lineWidth" mode="w" >
-1
-</property>
-<property type="boolean" id="stacked" mode="w" >
-False
-</property>
-<property type="string" id="format" mode="w" >
-%5.2lf%s
-</property>
-<property type="string" id="legend" mode="w" >
-${graphPoint/id}
-</property>
-<property type="long" id="limit" mode="w" >
--1
-</property>
-<property type="string" id="dpName" mode="w" >
-VoIP_SLA_TEST_rttMonLatestJitterOperAvgJitter
-</property>
-<property type="string" id="cFunc" mode="w" >
-AVERAGE
-</property>
-</object>
-<object id='SLA_TEST_rttMonLatestJitterOperIAJIn' module='Products.ZenModel.DataPointGraphPoint' class='DataPointGraphPoint'>
-<property type="long" id="sequence" mode="w" >
-1
-</property>
-<property select_variable="lineTypes" type="selection" id="lineType" mode="w" >
-DONTDRAW
-</property>
-<property type="long" id="lineWidth" mode="w" >
-1
-</property>
-<property type="boolean" id="stacked" mode="w" >
-False
-</property>
-<property type="string" id="format" mode="w" >
-%5.2lf%s
-</property>
-<property type="string" id="legend" mode="w" >
-${graphPoint/id}
-</property>
-<property type="long" id="limit" mode="w" >
--1
-</property>
-<property type="string" id="dpName" mode="w" >
-VoIP_SLA_TEST_rttMonLatestJitterOperIAJIn
-</property>
-<property type="string" id="cFunc" mode="w" >
-AVERAGE
-</property>
-</object>
-<object id='SLA_TEST_rttMonLatestJitterOperIAJOut' module='Products.ZenModel.DataPointGraphPoint' class='DataPointGraphPoint'>
-<property type="long" id="sequence" mode="w" >
-2
-</property>
-<property select_variable="lineTypes" type="selection" id="lineType" mode="w" >
-DONTDRAW
-</property>
-<property type="long" id="lineWidth" mode="w" >
-1
-</property>
-<property type="boolean" id="stacked" mode="w" >
-False
-</property>
-<property type="string" id="format" mode="w" >
-%5.2lf%s
-</property>
-<property type="string" id="legend" mode="w" >
-${graphPoint/id}
-</property>
-<property type="long" id="limit" mode="w" >
--1
-</property>
-<property type="string" id="dpName" mode="w" >
-VoIP_SLA_TEST_rttMonLatestJitterOperIAJOut
-</property>
-<property type="string" id="cFunc" mode="w" >
-AVERAGE
-</property>
-</object>
-<object id='SLA_TEST_rttMonLatestJitterOperICPIF' module='Products.ZenModel.DataPointGraphPoint' class='DataPointGraphPoint'>
-<property type="long" id="sequence" mode="w" >
-3
-</property>
-<property select_variable="lineTypes" type="selection" id="lineType" mode="w" >
-DONTDRAW
-</property>
-<property type="long" id="lineWidth" mode="w" >
-1
-</property>
-<property type="boolean" id="stacked" mode="w" >
-False
-</property>
-<property type="string" id="format" mode="w" >
-%5.2lf%s
-</property>
-<property type="string" id="legend" mode="w" >
-${graphPoint/id}
-</property>
-<property type="long" id="limit" mode="w" >
--1
-</property>
-<property type="string" id="dpName" mode="w" >
-VoIP_SLA_TEST_rttMonLatestJitterOperICPIF
-</property>
-<property type="string" id="cFunc" mode="w" >
-AVERAGE
-</property>
-</object>
-<object id='SLA_TEST_rttMonLatestJitterOperMOS' module='Products.ZenModel.DataPointGraphPoint' class='DataPointGraphPoint'>
-<property type="long" id="sequence" mode="w" >
-4
-</property>
-<property select_variable="lineTypes" type="selection" id="lineType" mode="w" >
-DONTDRAW
-</property>
-<property type="long" id="lineWidth" mode="w" >
-1
-</property>
-<property type="boolean" id="stacked" mode="w" >
-False
-</property>
-<property type="string" id="format" mode="w" >
-%5.2lf%s
-</property>
-<property type="string" id="legend" mode="w" >
-${graphPoint/id}
-</property>
-<property type="long" id="limit" mode="w" >
--1
-</property>
-<property type="string" id="rpn" mode="w" >
-100,/
-</property>
-<property type="string" id="dpName" mode="w" >
-VoIP_SLA_TEST_rttMonLatestJitterOperMOS
-</property>
-<property type="string" id="cFunc" mode="w" >
-AVERAGE
-</property>
-</object>
-</tomanycont>
-</object>
-<object id='Round Trip Time' module='Products.ZenModel.GraphDefinition' class='GraphDefinition'>
-<property type="int" id="height" mode="w" >
-100
-</property>
-<property type="int" id="width" mode="w" >
-890
-</property>
-<property type="string" id="units" mode="w" >
-Seconds
-</property>
-<property type="boolean" id="log" mode="w" >
-False
-</property>
-<property type="boolean" id="base" mode="w" >
-False
-</property>
-<property type="int" id="miny" mode="w" >
-0
-</property>
-<property type="int" id="maxy" mode="w" >
--1
-</property>
-<property type="text" id="custom" mode="w" >
--P
--E
-
-LINE2:TEST_rttMonLatestRttOperCompletionTime-raw#0000FF:RTT Completion Time
-
-COMMENT:\\s
-COMMENT:\\s
-COMMENT:\\s
-
-COMMENT:&lt;b&gt;${here/viewName} Results&lt;/b&gt;\:
-COMMENT:\\s
-COMMENT:\\s
-
-COMMENT:RTT\:
-GPRINT:TEST_rttMonLatestRttOperCompletionTime-raw:LAST:%5.2lf seconds
-
-COMMENT:\\s
-COMMENT:\\s
-COMMENT:\\s
-
-COMMENT:&lt;b&gt;${here/viewName} Spikes&lt;/b&gt;\:
-COMMENT:\\s
-COMMENT:\\s
-
-COMMENT:RTT\:
-GPRINT:TEST_rttMonLatestRttOperCompletionTime-raw:MAX:%5.2lf seconds
-
-COMMENT:\\s
-COMMENT:\\s
-</property>
-<property type="boolean" id="hasSummary" mode="w" >
-True
-</property>
-<tomanycont id='graphPoints'>
-<object id='TEST_rttMonLatestRttOperCompletionTime' module='Products.ZenModel.DataPointGraphPoint' class='DataPointGraphPoint'>
-<property select_variable="lineTypes" type="selection" id="lineType" mode="w" >
-DONTDRAW
-</property>
-<property type="long" id="lineWidth" mode="w" >
-1
-</property>
-<property type="boolean" id="stacked" mode="w" >
-False
-</property>
-<property type="string" id="format" mode="w" >
-%5.2lf%s
-</property>
-<property type="string" id="legend" mode="w" >
-${here/viewName} RTT - ${here/rttMonCtrlAdminRttType} type
-</property>
-<property type="long" id="limit" mode="w" >
--1
-</property>
-<property type="string" id="rpn" mode="w" >
-1000,/
-</property>
-<property type="string" id="dpName" mode="w" >
-SLA_TEST_rttMonLatestRttOperCompletionTime
-</property>
-<property type="string" id="cFunc" mode="w" >
-AVERAGE
-</property>
-</object>
-</tomanycont>
-</object>
-<object id='Sense' module='Products.ZenModel.GraphDefinition' class='GraphDefinition'>
-<property type="int" id="height" mode="w" >
-100
-</property>
-<property type="int" id="width" mode="w" >
-890
-</property>
-<property type="string" id="units" mode="w" >
-Code #
-</property>
-<property type="boolean" id="log" mode="w" >
-False
-</property>
-<property type="boolean" id="base" mode="w" >
-False
-</property>
-<property type="int" id="miny" mode="w" >
-0
-</property>
-<property type="int" id="maxy" mode="w" >
--1
-</property>
-<property type="text" id="custom" mode="w" >
--P
--E
-
-LINE2:TEST_rttMonLatestRttOperSense-raw#8888FF:Op Sense
-LINE2:TEST_rttMonLatestRttOperApplSpecificSense-raw#88FF88:Specific Op Sense
-
-COMMENT:\\s
-COMMENT:\\s
-COMMENT:\\s
-
-COMMENT:&lt;b&gt;${here/viewName} Results&lt;/b&gt;\:
-COMMENT:\\s
-COMMENT:\\s
-COMMENT:Op Sense\:
-GPRINT:TEST_rttMonLatestRttOperApplSpecificSense-raw:LAST:%5.0lf
-
-COMMENT:Specific Op Sense\:
-GPRINT:TEST_rttMonLatestRttOperSense-raw:LAST:%5.0lf
-
-COMMENT:\\s
-COMMENT:\\s
-COMMENT:\\s
-
-COMMENT:&lt;b&gt;${here/viewName} Spikes&lt;/b&gt;\:
-COMMENT:\\s
-COMMENT:\\s
-COMMENT:Op Sense\:
-GPRINT:TEST_rttMonLatestRttOperApplSpecificSense-raw:MAX:%5.0lf
-
-COMMENT:Specific Op Sense\:
-GPRINT:TEST_rttMonLatestRttOperSense-raw:MAX:%5.0lf
-
-COMMENT:\\s
-COMMENT:\\s
-</property>
-<property type="boolean" id="hasSummary" mode="w" >
-True
-</property>
-<property type="long" id="sequence" mode="w" >
-1
-</property>
-<tomanycont id='graphPoints'>
-<object id='TEST_rttMonLatestRttOperApplSpecificSense' module='Products.ZenModel.DataPointGraphPoint' class='DataPointGraphPoint'>
-<property select_variable="lineTypes" type="selection" id="lineType" mode="w" >
-DONTDRAW
-</property>
-<property type="long" id="lineWidth" mode="w" >
-1
-</property>
-<property type="boolean" id="stacked" mode="w" >
-False
-</property>
-<property type="string" id="format" mode="w" >
-%5.2lf%s
-</property>
-<property type="string" id="legend" mode="w" >
-${graphPoint/id}
-</property>
-<property type="long" id="limit" mode="w" >
--1
-</property>
-<property type="string" id="dpName" mode="w" >
-SLA_TEST_rttMonLatestRttOperApplSpecificSense
-</property>
-<property type="string" id="cFunc" mode="w" >
-AVERAGE
-</property>
-</object>
-<object id='TEST_rttMonLatestRttOperSense' module='Products.ZenModel.DataPointGraphPoint' class='DataPointGraphPoint'>
-<property type="long" id="sequence" mode="w" >
-1
-</property>
-<property select_variable="lineTypes" type="selection" id="lineType" mode="w" >
-DONTDRAW
-</property>
-<property type="long" id="lineWidth" mode="w" >
-1
-</property>
-<property type="boolean" id="stacked" mode="w" >
-False
-</property>
-<property type="string" id="format" mode="w" >
-%5.2lf%s
-</property>
-<property type="string" id="legend" mode="w" >
-${graphPoint/id}
-</property>
-<property type="long" id="limit" mode="w" >
--1
-</property>
-<property type="string" id="dpName" mode="w" >
-SLA_TEST_rttMonLatestRttOperSense
-</property>
-<property type="string" id="cFunc" mode="w" >
-AVERAGE
-</property>
-</object>
-</tomanycont>
-</object>
-</tomanycont>
-</object>
-</tomanycont>
-</object>
-<!-- ('', 'zport', 'dmd', 'zenMenus', 'More', 'zenMenuItems', 'ipSLAipSlaDevice.pt') -->
-<object id='/zport/dmd/zenMenus/More/zenMenuItems/ipSLAipSlaDevice.pt' module='Products.ZenModel.ZenMenuItem' class='ZenMenuItem'>
-<property type="text" id="description" mode="w" >
-IP SLAs
-</property>
-<property type="text" id="action" mode="w" >
-ipSLAipSlaDevice
-</property>
-<property type="boolean" id="isglobal" mode="w" >
-True
-</property>
-<property type="lines" id="permissions" mode="w" >
-('View',)
-</property>
-<property type="lines" id="allowed_classes" mode="w" >
-['SLADevice']
-</property>
-<property type="boolean" id="isdialog" mode="w" >
-False
-</property>
-<property type="float" id="ordering" mode="w" >
-5.0
-</property>
-</object>
-</objects>
+<?xml version="1.0"?>
+<objects>
+<!-- ('', 'zport', 'dmd', 'Devices', 'Network', 'IPSLA') -->
+<object id='/zport/dmd/Devices/Network/IPSLA' module='Products.ZenModel.DeviceClass' class='DeviceClass'>
+<property visible="True" type="string" id="zPythonClass" >
+ZenPacks.ipSLA.SLADevice.SLADevice
+</property>
+<tomanycont id='rrdTemplates'>
+<object id='HTTP' module='Products.ZenModel.RRDTemplate' class='RRDTemplate'>
+<property type="text" id="description" mode="w" >
+HTTP SLA Template
+</property>
+<property type="string" id="targetPythonClass" mode="w" >
+ZenPacks.ipSLA.SLADevice.SLADevice
+</property>
+<tomanycont id='datasources'>
+<object id='SLA_HTTP_TEST' module='Products.ZenModel.BasicDataSource' class='BasicDataSource'>
+<property select_variable="sourcetypes" type="selection" id="sourcetype" mode="w" >
+COMMAND
+</property>
+<property type="boolean" id="enabled" mode="w" >
+True
+</property>
+<property type="string" id="eventClass" mode="w" >
+/Cmd/Fail
+</property>
+<property type="int" id="severity" mode="w" >
+3
+</property>
+<property type="string" id="commandTemplate" mode="w" >
+${here/ZenPackManager/packs/ZenPacks.zenoss.ipSLA/path}/Collect_SLA.py -d ${here/manageIp} -c ${here/zSnmpCommunity} -k ${here/instance} -t W
+</property>
+<property type="int" id="cycletime" mode="w" >
+30
+</property>
+<property type="boolean" id="usessh" mode="w" >
+False
+</property>
+<property type="string" id="parser" mode="w" >
+Auto
+</property>
+<tomanycont id='datapoints'>
+<object id='rttMonLatestHTTPErrorSenseDescription' module='Products.ZenModel.RRDDataPoint' class='RRDDataPoint'>
+<property select_variable="rrdtypes" type="selection" id="rrdtype" mode="w" >
+GAUGE
+</property>
+<property type="boolean" id="isrow" mode="w" >
+True
+</property>
+</object>
+<object id='rttMonLatestHTTPOperDNSRTT' module='Products.ZenModel.RRDDataPoint' class='RRDDataPoint'>
+<property select_variable="rrdtypes" type="selection" id="rrdtype" mode="w" >
+GAUGE
+</property>
+<property type="boolean" id="isrow" mode="w" >
+True
+</property>
+</object>
+<object id='rttMonLatestHTTPOperRTT' module='Products.ZenModel.RRDDataPoint' class='RRDDataPoint'>
+<property select_variable="rrdtypes" type="selection" id="rrdtype" mode="w" >
+GAUGE
+</property>
+<property type="boolean" id="isrow" mode="w" >
+True
+</property>
+</object>
+<object id='rttMonLatestHTTPOperTCPConnectRTT' module='Products.ZenModel.RRDDataPoint' class='RRDDataPoint'>
+<property select_variable="rrdtypes" type="selection" id="rrdtype" mode="w" >
+GAUGE
+</property>
+<property type="boolean" id="isrow" mode="w" >
+True
+</property>
+</object>
+<object id='rttMonLatestHTTPOperTransactionRTT' module='Products.ZenModel.RRDDataPoint' class='RRDDataPoint'>
+<property select_variable="rrdtypes" type="selection" id="rrdtype" mode="w" >
+GAUGE
+</property>
+<property type="boolean" id="isrow" mode="w" >
+True
+</property>
+</object>
+<object id='rttMonLatestRttOperApplSpecificSense' module='Products.ZenModel.RRDDataPoint' class='RRDDataPoint'>
+<property select_variable="rrdtypes" type="selection" id="rrdtype" mode="w" >
+GAUGE
+</property>
+<property type="boolean" id="isrow" mode="w" >
+True
+</property>
+</object>
+<object id='rttMonLatestRttOperCompletionTime' module='Products.ZenModel.RRDDataPoint' class='RRDDataPoint'>
+<property select_variable="rrdtypes" type="selection" id="rrdtype" mode="w" >
+GAUGE
+</property>
+<property type="boolean" id="isrow" mode="w" >
+True
+</property>
+</object>
+<object id='rttMonLatestRttOperSense' module='Products.ZenModel.RRDDataPoint' class='RRDDataPoint'>
+<property select_variable="rrdtypes" type="selection" id="rrdtype" mode="w" >
+GAUGE
+</property>
+<property type="boolean" id="isrow" mode="w" >
+True
+</property>
+</object>
+<object id='rttMonLatestRttOperTime' module='Products.ZenModel.RRDDataPoint' class='RRDDataPoint'>
+<property select_variable="rrdtypes" type="selection" id="rrdtype" mode="w" >
+GAUGE
+</property>
+<property type="boolean" id="isrow" mode="w" >
+True
+</property>
+</object>
+</tomanycont>
+</object>
+</tomanycont>
+<tomanycont id='graphDefs'>
+<object id='Round Trip Time' module='Products.ZenModel.GraphDefinition' class='GraphDefinition'>
+<property type="int" id="height" mode="w" >
+100
+</property>
+<property type="int" id="width" mode="w" >
+890
+</property>
+<property type="string" id="units" mode="w" >
+ms
+</property>
+<property type="boolean" id="log" mode="w" >
+False
+</property>
+<property type="boolean" id="base" mode="w" >
+False
+</property>
+<property type="int" id="miny" mode="w" >
+0
+</property>
+<property type="int" id="maxy" mode="w" >
+-1
+</property>
+<property type="text" id="custom" mode="w" >
+-P
+-E
+
+LINE2:HTTP_TEST_rttMonLatestRttOperCompletionTime-raw#0000FF:RTT Completion Time
+LINE2:HTTP_TEST_rttMonLatestHTTPOperDNSRTT-raw#00FFFF:DNS RTT Completion Time
+LINE2:HTTP_TEST_rttMonLatestHTTPOperTCPConnectRTT-raw#FF00FF:TCP Connection Completion Time
+LINE2:HTTP_TEST_rttMonLatestHTTPOperTransactionRTT-raw#FF0000:Transaction Completion Time
+
+COMMENT:\\s
+COMMENT:\\s
+COMMENT:\\s
+
+COMMENT:&lt;b&gt;${here/viewName} Results&lt;/b&gt;\:
+COMMENT:\\s
+COMMENT:\\s
+
+COMMENT:RTT Completion Time\:
+GPRINT:HTTP_TEST_rttMonLatestRttOperCompletionTime-raw:LAST:%5.2lf
+
+COMMENT:\\s
+COMMENT:\\s
+
+COMMENT:DNS RTT Completion Time\:
+GPRINT:HTTP_TEST_rttMonLatestHTTPOperDNSRTT-raw:LAST:%5.2lf
+
+COMMENT:\\s
+COMMENT:\\s
+
+COMMENT:TCP Connection Completion Time\:
+GPRINT:HTTP_TEST_rttMonLatestHTTPOperTCPConnectRTT-raw:LAST:%5.2lf
+
+COMMENT:\\s
+COMMENT:\\s
+
+COMMENT:Transaction Completion Time\:
+GPRINT:HTTP_TEST_rttMonLatestHTTPOperTransactionRTT-raw:LAST:%5.2lf
+
+COMMENT:\\s
+COMMENT:\\s
+COMMENT:\\s
+
+COMMENT:&lt;b&gt;${here/viewName} Spikes&lt;/b&gt;\:
+COMMENT:\\s
+COMMENT:\\s
+
+COMMENT:RTT\:
+GPRINT:HTTP_TEST_rttMonLatestRttOperCompletionTime-raw:MAX:%5.2lf
+
+COMMENT:\\s
+COMMENT:\\s
+
+COMMENT:DNS RTT Completion Time\:
+GPRINT:HTTP_TEST_rttMonLatestHTTPOperDNSRTT-raw:MAX:%5.2lf
+
+COMMENT:\\s
+COMMENT:\\s
+
+COMMENT:TCP Connection Completion Time\:
+GPRINT:HTTP_TEST_rttMonLatestHTTPOperTCPConnectRTT-raw:MAX:%5.2lf
+
+COMMENT:\\s
+COMMENT:\\s
+
+COMMENT:Transaction Completion Time\:
+GPRINT:HTTP_TEST_rttMonLatestHTTPOperTransactionRTT-raw:MAX:%5.2lf
+
+COMMENT:\\s
+COMMENT:\\s
+</property>
+<property type="boolean" id="hasSummary" mode="w" >
+True
+</property>
+<tomanycont id='graphPoints'>
+<object id='HTTP_TEST_rttMonLatestHTTPOperDNSRTT' module='Products.ZenModel.DataPointGraphPoint' class='DataPointGraphPoint'>
+<property type="long" id="sequence" mode="w" >
+1
+</property>
+<property select_variable="lineTypes" type="selection" id="lineType" mode="w" >
+DONTDRAW
+</property>
+<property type="long" id="lineWidth" mode="w" >
+1
+</property>
+<property type="boolean" id="stacked" mode="w" >
+False
+</property>
+<property type="string" id="format" mode="w" >
+%5.2lf%s
+</property>
+<property type="string" id="legend" mode="w" >
+${graphPoint/id}
+</property>
+<property type="long" id="limit" mode="w" >
+-1
+</property>
+<property type="string" id="dpName" mode="w" >
+SLA_HTTP_TEST_rttMonLatestHTTPOperDNSRTT
+</property>
+<property type="string" id="cFunc" mode="w" >
+AVERAGE
+</property>
+</object>
+<object id='HTTP_TEST_rttMonLatestHTTPOperTCPConnectRTT' module='Products.ZenModel.DataPointGraphPoint' class='DataPointGraphPoint'>
+<property type="long" id="sequence" mode="w" >
+2
+</property>
+<property select_variable="lineTypes" type="selection" id="lineType" mode="w" >
+DONTDRAW
+</property>
+<property type="long" id="lineWidth" mode="w" >
+1
+</property>
+<property type="boolean" id="stacked" mode="w" >
+False
+</property>
+<property type="string" id="format" mode="w" >
+%5.2lf%s
+</property>
+<property type="string" id="legend" mode="w" >
+${graphPoint/id}
+</property>
+<property type="long" id="limit" mode="w" >
+-1
+</property>
+<property type="string" id="dpName" mode="w" >
+SLA_HTTP_TEST_rttMonLatestHTTPOperTCPConnectRTT
+</property>
+<property type="string" id="cFunc" mode="w" >
+AVERAGE
+</property>
+</object>
+<object id='HTTP_TEST_rttMonLatestHTTPOperTransactionRTT' module='Products.ZenModel.DataPointGraphPoint' class='DataPointGraphPoint'>
+<property type="long" id="sequence" mode="w" >
+3
+</property>
+<property select_variable="lineTypes" type="selection" id="lineType" mode="w" >
+DONTDRAW
+</property>
+<property type="long" id="lineWidth" mode="w" >
+1
+</property>
+<property type="boolean" id="stacked" mode="w" >
+False
+</property>
+<property type="string" id="format" mode="w" >
+%5.2lf%s
+</property>
+<property type="string" id="legend" mode="w" >
+${graphPoint/id}
+</property>
+<property type="long" id="limit" mode="w" >
+-1
+</property>
+<property type="string" id="dpName" mode="w" >
+SLA_HTTP_TEST_rttMonLatestHTTPOperTransactionRTT
+</property>
+<property type="string" id="cFunc" mode="w" >
+AVERAGE
+</property>
+</object>
+<object id='HTTP_TEST_rttMonLatestRttOperCompletionTime' module='Products.ZenModel.DataPointGraphPoint' class='DataPointGraphPoint'>
+<property select_variable="lineTypes" type="selection" id="lineType" mode="w" >
+DONTDRAW
+</property>
+<property type="long" id="lineWidth" mode="w" >
+1
+</property>
+<property type="boolean" id="stacked" mode="w" >
+False
+</property>
+<property type="string" id="format" mode="w" >
+%5.2lf%s
+</property>
+<property type="string" id="legend" mode="w" >
+${here/viewName} RTT - ${here/rttMonCtrlAdminRttType} type
+</property>
+<property type="long" id="limit" mode="w" >
+-1
+</property>
+<property type="string" id="rpn" mode="w" >
+1000,/
+</property>
+<property type="string" id="dpName" mode="w" >
+SLA_HTTP_TEST_rttMonLatestRttOperCompletionTime
+</property>
+<property type="string" id="cFunc" mode="w" >
+AVERAGE
+</property>
+</object>
+</tomanycont>
+</object>
+<object id='Sense' module='Products.ZenModel.GraphDefinition' class='GraphDefinition'>
+<property type="int" id="height" mode="w" >
+100
+</property>
+<property type="int" id="width" mode="w" >
+890
+</property>
+<property type="string" id="units" mode="w" >
+Code #
+</property>
+<property type="boolean" id="log" mode="w" >
+False
+</property>
+<property type="boolean" id="base" mode="w" >
+False
+</property>
+<property type="int" id="miny" mode="w" >
+0
+</property>
+<property type="int" id="maxy" mode="w" >
+-1
+</property>
+<property type="text" id="custom" mode="w" >
+-P
+-E
+
+LINE2:HTTP_TEST_rttMonLatestRttOperSense-raw#8888FF:Op Sense
+LINE2:HTTP_TEST_rttMonLatestRttOperApplSpecificSense-raw#88FF88:Specific Op Sense
+
+COMMENT:\\s
+COMMENT:\\s
+COMMENT:\\s
+
+COMMENT:&lt;b&gt;${here/viewName} Results&lt;/b&gt;\:
+COMMENT:\\s
+COMMENT:\\s
+COMMENT:Op Sense\:
+GPRINT:HTTP_TEST_rttMonLatestRttOperApplSpecificSense-raw:LAST:%5.0lf
+
+COMMENT:Specific Op Sense\:
+GPRINT:HTTP_TEST_rttMonLatestRttOperSense-raw:LAST:%5.0lf
+
+COMMENT:\\s
+COMMENT:\\s
+COMMENT:\\s
+
+COMMENT:&lt;b&gt;${here/viewName} Spikes&lt;/b&gt;\:
+COMMENT:\\s
+COMMENT:\\s
+COMMENT:Op Sense\:
+GPRINT:HTTP_TEST_rttMonLatestRttOperApplSpecificSense-raw:MAX:%5.0lf
+
+COMMENT:Specific Op Sense\:
+GPRINT:HTTP_TEST_rttMonLatestRttOperSense-raw:MAX:%5.0lf
+
+COMMENT:\\s
+COMMENT:\\s
+</property>
+<property type="boolean" id="hasSummary" mode="w" >
+True
+</property>
+<property type="long" id="sequence" mode="w" >
+1
+</property>
+<tomanycont id='graphPoints'>
+<object id='HTTP_TEST_rttMonLatestRttOperApplSpecificSense' module='Products.ZenModel.DataPointGraphPoint' class='DataPointGraphPoint'>
+<property select_variable="lineTypes" type="selection" id="lineType" mode="w" >
+DONTDRAW
+</property>
+<property type="long" id="lineWidth" mode="w" >
+1
+</property>
+<property type="boolean" id="stacked" mode="w" >
+False
+</property>
+<property type="string" id="format" mode="w" >
+%5.2lf%s
+</property>
+<property type="string" id="legend" mode="w" >
+${graphPoint/id}
+</property>
+<property type="long" id="limit" mode="w" >
+-1
+</property>
+<property type="string" id="dpName" mode="w" >
+SLA_HTTP_TEST_rttMonLatestRttOperApplSpecificSense
+</property>
+<property type="string" id="cFunc" mode="w" >
+AVERAGE
+</property>
+</object>
+<object id='HTTP_TEST_rttMonLatestRttOperSense' module='Products.ZenModel.DataPointGraphPoint' class='DataPointGraphPoint'>
+<property type="long" id="sequence" mode="w" >
+1
+</property>
+<property select_variable="lineTypes" type="selection" id="lineType" mode="w" >
+DONTDRAW
+</property>
+<property type="long" id="lineWidth" mode="w" >
+1
+</property>
+<property type="boolean" id="stacked" mode="w" >
+False
+</property>
+<property type="string" id="format" mode="w" >
+%5.2lf%s
+</property>
+<property type="string" id="legend" mode="w" >
+${graphPoint/id}
+</property>
+<property type="long" id="limit" mode="w" >
+-1
+</property>
+<property type="string" id="dpName" mode="w" >
+SLA_HTTP_TEST_rttMonLatestRttOperSense
+</property>
+<property type="string" id="cFunc" mode="w" >
+AVERAGE
+</property>
+</object>
+</tomanycont>
+</object>
+</tomanycont>
+</object>
+<object id='New_SLA' module='Products.ZenModel.RRDTemplate' class='RRDTemplate'>
+<property type="string" id="targetPythonClass" mode="w" >
+ZenPacks.ipSLA.SLADevice.SLADevice
+</property>
+<tomanycont id='datasources'>
+<object id='SLA_TEST' module='Products.ZenModel.BasicDataSource' class='BasicDataSource'>
+<property select_variable="sourcetypes" type="selection" id="sourcetype" mode="w" >
+COMMAND
+</property>
+<property type="boolean" id="enabled" mode="w" >
+True
+</property>
+<property type="string" id="eventClass" mode="w" >
+/Cmd/Fail
+</property>
+<property type="int" id="severity" mode="w" >
+3
+</property>
+<property type="string" id="commandTemplate" mode="w" >
+${here/ZenPackManager/packs/ZenPacks.zenoss.ipSLA/path}/Collect_SLA.py -d ${here/manageIp} -c ${here/zSnmpCommunity} -k ${here/instance}
+</property>
+<property type="int" id="cycletime" mode="w" >
+30
+</property>
+<property type="boolean" id="usessh" mode="w" >
+False
+</property>
+<property type="string" id="parser" mode="w" >
+Nagios
+</property>
+<tomanycont id='datapoints'