|
########################################################### # Description: Canopy SM traffic analyzer # Copyright 2005 NetMechanica - All rights reserved ########################################################### # Database variables string sConnectionString = "DSN=Traffic" string sSelectStatement = "SELECT PhysicalAddress, sum(InBytes) as InTraffic, sum(OutBytes) as OutTraffic from traffic where PollingTime > DateAdd('h',-1,Now()) group by PhysicalAddress;" int nDatabaseID = DBOpen(sConnectionString) if (nDatabaseID == -1) # Place error handling/reporting code here Println("Failed to open database") stop endif array InChartData array OutChartData array TableData = DBSelect(nDatabaseID, sSelectStatement) if (DBGetSQLStatus(nDatabaseID)) == FALSE) Println(DBGetSQLErrorString(nDatabaseID)) else int nPosition string sIndex string sPhysicalAddress int nInTraffic, nOutTraffic for(nPosition = 0; nPosition < GetArraySize(TableData); nPosition++) sIndex = GetArrayIndex(TableData, nPosition) sPhysicalAddress = TableData[sIndex]["PhysicalAddress"] nInTraffic = ToInteger(TableData[sIndex]["InTraffic"])/1024 nOutTraffic = ToInteger(TableData[sIndex]["OutTraffic"])/1024 InChartData[sPhysicalAddress] = nInTraffic OutChartData[sPhysicalAddress] = nOutTraffic Println(sPhysicalAddress, TAB, nInTraffic, TAB, nOutTraffic) endfor endif DBClose(nDatabaseID) # Create charts string sCurrentTime = GetTimeString() string sIncomingTitle = sCurrentTime + ": Incoming traffic (KB) consumed within last hour" string sOutgoingTitle = sCurrentTime + ": Outgoing traffic (KB) consumed within last hour" CreatePieChart("C:\TrafficIn.svg", sIncomingTitle, InChartData) CreatePieChart("C:\TrafficOut.svg", sOutgoingTitle, OutChartData) Println("Done") |