You're going to want to look at the InterfaceTraffic view in the database.
SELECT n.Caption AS 'Device' ,i.caption AS 'Interface' ,t.DateTime ,t.In_Averagebps ,t.In_Minbps ,t.In_Maxbps ,t.Out_Averagebps ,t.Out_Minbps ,t.Out_Maxbps ,t.Weight FROM InterfaceTraffic t JOIN Interfaces i on i.InterfaceID = t.InterfaceID JOIN Nodes n on n.NodeID = t.NodeID WHERE i.InterfaceID IN ('123','456','789') --INSERT YOUR INTERFACE IDs HERE FOR YOUR UPLINKS ORDER BY n.Caption, i.Caption, t.DateTime
One thing to note is that you mentioned that you don't want to use data that has been averaged. That's going to be a bit of an issue with the way that data is retained by default within SolarWinds.
By default, SolarWinds has 3 levels of data retention for (almost) all metrics. Specifically for interface statistics, there are Detail (7 day), Hourly (30 day), and Daily (365 day) metrics.
For Instance, this:
SELECT MIN(DateTime) firstDetail, MAX(DateTime) lastDetail FROM InterfaceTraffic_Detail; SELECT MIN(DateTime) firstHourly, MAX(DateTime) lastHourly FROM InterfaceTraffic_Hourly; SELECT MIN(DateTime) firstDaily, MAX(DateTime) lastDaily FROM InterfaceTraffic_Daily;
firstDetail lastDetail ----------------------- ----------------------- 2015-10-28 00:00:35.917 2015-11-04 21:11:22.907 firstHourly lastHourly ----------------------- ----------------------- 2015-09-05 00:00:00.000 2015-10-27 23:00:00.000 firstDaily lastDaily ----------------------- ----------------------- 2014-11-04 00:00:00.000 2015-09-04 00:00:00.000
Detailed Statistics are held for n-7 days(every single data point)
Hourly Statistics are held for n-8 > n-30 days (detailed statistics are averaged into hourly blocks)
Daily Statistics are held for n-31 > n-365 days (hourly statistics are averaged into daily blocks)
The takeaway here is that retention levels maintain averaged data by default, so your "raw" data is unfortunately not as raw as one might expect...
Technically, you can edit these retention levels and increase (or decrease) the amount of Detail, Hourly, or Daily data that is being kept in your database. However, it should be noted and respected that dramatic increases to your retention levels will result in an exponential increase in the amount of data being retained, which has the potential to produce negative consequences to your website response times. If you need to move these numbers you need to either scale your SQL database resources for the increased demand, or you can setup a database warehouse-type scenario where you export the data you need to retain as "raw" into a separate database and use SQL Server Reporting Services to report directly against that data. This is a highly scalable, and generally free (as in: included with SQL Server licensing), architecture that allows you to maintain a highly functioning monitoring platform and still comply with your specific reporting requirements.
For reference, you can view and edit the retention settings for NPM under Settings > Polling Settings, or you can run this query to get your specific interface retention settings:
SELECT SettingID ,Name ,Description ,Units ,Minimum ,Maximum ,CurrentValue ,DefaultValue FROM Settings WHERE SettingID IN ('NPM_Settings_InterfaceAvailability_Retain_Detail','NPM_Settings_InterfaceAvailability_Retain_Hourly','NPM_Settings_InterfaceAvailability_Retain_Daily')
Excellent information, very, very helpful.