CloudStack supports TrafficSentinel as an external Traffic Monitor to get metering stats for Direct Network.

TrafficSentinel

InMon’s Traffic Sentinel makes use of SFlow technology to give extensive insight into network traffic. Traffic Sentinel also provides historical usage.

More on SFlow: http://www.inmon.com/technology/index.php

More on Traffic Sentinel: http://www.inmon.com/products/trafficsentinel.php

Traffic Sentinel Configuration

Tutorial on Traffic Sentinel Configuration is available at the following location.

http://www.inmon.com/tutorials5/configuration.php

Additional Configuration required for CloudStack Integration

Script querying capability should be enabled for Guest users in Traffic Sentinel.

File -> Users -> Access Control -> Reports Query and select Guest from drop-down list

File -> Users -> Access Control -> Reports Script and select Guest from drop-down list

Traffic Sentinel can be queried remotely to get network usage for any duration for a given IP(s).

Traffic Monitor APIs

  • addTrafficMonitor - Adds a traffic monitor host into CloudStack. This would be the host where traffic Sentinel is installed.
  • deleteTrafficMonitor - Deletes the traffic monitor with specified Id
  • listTrafficMonitors - List the available Traffic Monitors in CloudStack

Parameters

direct.network.stats.interval parameter determines the collection interval. It is set to daily(86400 seconds) as default. (May be this should be changed to minutes and should have 60 mins as the minimum interval)

Implementation

During the network stats colllection, we identify the IPs allocated duiring the querying period along with the account ownership. usage_event table and user_ip_address tables are used here. Querying period is form last_collection_time (stored in host_details table) till time "now".

All IP.ASSIGN and IP.RELEASE usage events during the querying period are fetched in chronological order.

Allocation Period is identified as follows:

Case 1. IP.ASSIGN and IP.RELEASE events exist during the querying period.
Allocation Period = IP.ASSIGN time to IP.RELEASE time

Case 2. Only IP.ASSIGN event exists during the querying period and IP is in allocated state in user_ip_address table
Allocation Period = IP.ASSIGN time to time "now"

Case 3. Only IP.RELEASE event exists during the querying period
Allocation Period = "last_collection" time to IP.RELEASE time

Case 4. No IP events but IP is in allocated state in user_ip_address table.

Allocation Period = "last_collection" time to time "now"

Using the IPs and their allocation periods, Traffic Sentinel is queried for network stats. These stats are populated in to user_statistics table account wise with device_type as DirectNetwork.

Usage Server will pick these values to generate usage records.

Additional Notes:

1. Traffic Sentinel populates historical traffic stats 15mins past every hour. To allow enough time for these records to be populated, cloudstack pulls the stats until (current time - 2hrs).

2. Dell 6224 series switches report incorrect sflow data. This makes them unusable for network metering.

  • No labels