Requesting Collected Tunnel Flow Data
Use the Cloud Analytics Engine CA API tunnel data resource to retrieve application flow path analytics data flowing over a tunnel.
GET data/tunnel Resource
Use the GET data/tunnel
CA API to
request analytics data from the network for a tunnel flow you have
started. This is an asynchronous API.
The available data depends on the parameters used to start the tunnel flow, described in GET start/tunnel Resource.
Request Parameters:
The following tuple values identifying the overlay tunnel:
src: (String) VTEP source IPv4 address.
dst: (String) VTEP endpoint IPv4 address.
vnid: (Numeric) VXLAN network identifier.
appsrc: (String) Application source IP address communicating on the given tunnel’s VTEP.
appdst: (String) Application destination IP address corresponding to
appsrc
.
Return Codes:
None—CA returns the requested tunnel flow data.
EFAIL
—No data is present for the specified tunnel flow.E_UNAUTHORIZED
—Flow was initiated by a different client and cannot be retrieved by the originator of this request.E_AoF
—No such flow.
Response Data:
A data/tunnel response data object with statistics from the devices in the tunnel flow path, in JSON format. See Flow Path Response Data Object.
See Tunnel Data Compute Agent API Example for an example of using the data/tunnel resource.
Flow Path Response Data Object
Table 1 lists the elements in the response data object (JSON format) for requests to retrieve CA flow path analytics data. See GET data/flow Resource and GET data/tunnel Resource, which describe the CA API resource requests that return this data.
Note that the Cloud Analytics Engine DLE component collects,
stores, and processes this data as a client of CA data/flow
and data/tunnel
resources, and supports
an analytics data subscription service that can stream this CA flow
path data in bulk directly to subscribed DLE clients. See POST /api/v1/subscription/subscribeAll for details on the DLE API you can use to subscribe to this service
to receive this data automatically.
Table 1: Flow Path Analytics Data JSON Response Object
Element Name | Description |
---|---|
Path | Path data object that contains statistics from the devices in the flow path, containing the elements listed in Table 2. |
ID | A 5-tuple in JSON format identifying the flow or tunnel flow. The tuple values are as follows, in the order shown:
|
Time | (Numeric) Time (epoch time in seconds) when the probe run for the flow was started. |
Table 2 lists the elements in the Path data object of flow path data responses.
Table 2: Flow Path Analytics JSON Response Data: Path Object Elements
Element Name | Description |
---|---|
HOP | (Numeric) Number identifying the position of node in the path. |
DevMEMUtil | (Numeric, decimal) Memory utilization of the node expressed as a percentage. |
DevCPUUtil | (Numeric, decimal) CPU utilization of the node expressed as a percentage. |
Bandwidth_Counter | (Numeric) Counter to track the flow packet count at the node. |
Bandwidth_ID | (Numeric) Bandwidth measurement ID to track reset of bandwidth filters. |
Latency | (Numeric, decimal) Latency for the node from CA server. |
DevName | (String) Node name. |
DevSerialID | (String) Node serial id. |
TIMESTAMP | Timestamp object representing the time at which flow packet was received at the node. See Table 3. |
IngressIFLAttribute | Ingress Logical Interface Attribute data object. See Table 4. |
EgressIFLAttribute | Egress Logical Interface Attribute data object. See Table 5. |
Table 3 lists the elements in the Timestamp data object of the Path data object in flow path data responses.
Table 3: Flow Path Analytics JSON Response Data: Timestamp Object Elements
Element Name | Description |
---|---|
TimeStamp | (Numeric) Seconds portion of the timestamp. |
TimeStamp_usec | (Numeric) Microseconds portion of the timestamp. |
Type | (String) Timestamp type. Accepted values are “PTP”, “LCPU” or “NTP”. |
Table 4 lists the elements in the Ingress Logical Interface Attribute data object, part of the Path data object of flow path data responses.
Table 4: Flow Path Analytics JSON Response Data: Ingress Logical Interface Attribute Object Elements
Element Name | Description |
---|---|
IFLList | List of Logical Interface data objects. See Table 8. |
Table 5 lists the elements in the Egress Logical Interface Attribute data object, part of the Path data object of flow path data responses.
Table 5: Flow Path Analytics JSON Response Data: Egress Logical Interface Attribute Object Elements
Element Name | Description |
---|---|
L3Ecmp | Layer 3 ECMP data object. See Table 6. |
Table 6 lists the elements in the Layer 3 ECMP data object in the Egress Logical Interface Attribute data object (part of the Path data object) in flow path data responses.
Table 6: Flow Path Analytics JSON Response Data: Layer 3 ECMP Object Elements
Element Name | Description |
---|---|
IFLList | List of Logical Interface data objects. See Table 8. |
NumBuckets | (Numeric) Number of buckets in the ECMP. |
L2EcmpList | List of Layer 2 ECMP data objects. See Table 7. |
Table 7 lists the elements in the Layer 2 ECMP List data object within the Layer 3 ECMP data object of flow path data responses.
Table 7: Flow Path Analytics JSON Response Data: Layer 2 ECMP List Object Elements
Element Name | Description |
---|---|
AE_IFL_NAME | (String) Aggregated logical interface name. |
NumBuckets | (Numeric) Number of buckets in the ECMP. |
IFLList | List of Logical Interface data objects. See Table 8. |
Table 8 lists the elements in the Logical Interface data object (part of the Layer 2 ECMP and Layer 3 ECMP data objects) of flow path data responses.
Table 8: Flow Path Analytics JSON Response Data: Logical Interface Object Elements
Element Name | Description |
---|---|
IFLName | (String) Interface name. |
IFLStats | Interface Packet Statistics data object. See Table 9. |
Table 9 lists the elements in the Interface Packet Statistics data object (part of the Logical Interface data object) of flow path data responses.
Table 9: Flow Path Analytics JSON Response Data: Interface Packet Statistics Object Elements
Element Name | Description |
---|---|
TX_PKTS | (Numeric) Total transmitted (Tx) packets on the interface. |
RX_PKTS | (Numeric) Total received (Rx) packets on the interface. |
TX_UCPKTS | (Numeric) Total number of egress/transmitted unicast packets on the interface. |
RX_UCPKTS | (Numeric) Total number of ingress/received unicast packets on the interface. |
TX_BCPKTS | (Numeric) Total number of outgoing broadcast packets. |
RX_BCPKTS | (Numeric) Total number of incoming broadcast packets. |
TX_MCPKTS | (Numeric) Total outgoing multicast packets. |
RX_MCPKTS | (Numeric) Total incoming multicast packets. |
TX_PPS | (Numeric) Transmit bandwidth (packets per second). |
RX_PPS | (Numeric) Receive bandwidth (packets per second). |
TX_CRCERROR | (Numeric) Total CRC align errors while transmitting. |
RX_CRCERROR | (Numeric) Total CRC align errors while receiving. |
TX_DROPPKT | (Numeric) Cumulative Tx packet drop in all the queues for the interface. |
RX_DROPPKT | (Numeric) Ingress Rx packet drops on the interface. This could be due to a buffer full condition. |
TX_BYTES | (Numeric) Total transmit bytes. |
RX_BYTES | (Numeric) Total receive bytes. |
TX_BW | (Numeric) Transmit bandwidth (bytes per second), the average rate at which packet bytes are transmitted. |
RX_BW | (Numeric) Receive bandwidth (bytes per second), the average rate at which packet bytes are received. |
Tunnel Data Compute Agent API Example
This example shows the JSON-format response data returned from a CA API request to retrieve tunnel flow data results for the specified tunnel. See GET data/tunnel Resource for details on response data elements.
Also see GET start/tunnel Resource for request parameters you can use to specify different options for the data collection when setting up the tunnel flow.
Start a tunnel flow data collection with these parameters (GET start/tunnel
request):
http://10.94.201.11:8080/start/tunnel?src=10.1.1.1&sport=4567&
vnid=5&dst=10.1.7.1&appdst=10.1.2.5&appdmac=44:1e:a1:02:25:c0&dport=9000&appsrc=10.1.2.3&
appsmac=9c:8e:99:12:88:2e
Request collected data for the tunnel flow (GET
data/tunnel
request):
http://10.94.201.11:8080/data/tunnel?src=10.1.1.1&sport=4567&vnid=5&
dst=10.1.7.1&appdst=10.1.2.5&appsrc=10.1.2.3
Response data:
{ 'Path': [ { 'Latency': 0.0078845024108886719, 'DevMEMUtil': 15.0, 'IngressIFLAttribute': { 'IFLList': [ { 'IFLStats': { 'RX_PPS': 81293, 'TX_BW': 356385, 'RX_BYTES': 67449363756, 'RX_PKTS': 44520918, 'TX_BCPKTS': 44, 'RX_MCPKTS': 6040, 'TX_PKTS': 3388998, 'RX_UCPKTS': 44514874, 'RX_BCPKTS': 4, 'TX_UCPKTS': 3388954, 'TX_PPS': 5043, 'TX_BYTES': 300920892, 'RX_BW': 123398583 }, 'IFLName': 'ge-0/0/0.0' } ] }, 'DevCPUUtil': 20.0, 'TIMESTAMP': { 'TimeStamp': 1442515460, 'Type': 'LCPU', 'TimeStamp_usec': 968290 }, 'DevName': 'device02-example-01', 'EgressIFLAttribute': { 'L3Ecmp': { 'IFLList': [ { 'IFLStats': { 'TX_BW': 28, 'RX_BYTES': 43869305, 'RX_PKTS': 620675, 'TX_BCPKTS': 32, 'RX_MCPKTS': 5280, 'TX_MCPKTS': 4983, 'TX_PKTS': 7520635, 'RX_UCPKTS': 615380, 'RX_BCPKTS': 15, 'TX_UCPKTS': 7515620, 'TX_BYTES': 11405041270, 'RX_BW': 724 }, 'IFLName': 'xe-0/0/18.0' }, { 'IFLStats': { 'RX_PPS': 5044, 'TX_BW': 251, 'RX_BYTES': 169032019, 'RX_PKTS': 1816664, 'TX_BCPKTS': 78, 'RX_MCPKTS': 19911, 'TX_MCPKTS': 22989, 'TX_PKTS': 24828768, 'RX_UCPKTS': 1796666, 'RX_BCPKTS': 87, 'TX_UCPKTS': 24805701, 'TX_PPS': 1, 'TX_BYTES': 37577256330, 'RX_BW': 353791 }, 'IFLName': 'xe-0/0/8.0' } ], 'NumBuckets': 3, 'L2EcmpList': [ { 'IFLList': [ { 'IFLStats': { 'TX_BW': 123368103, 'RX_BYTES': 27482374, 'RX_PKTS': 387466, 'TX_BCPKTS': 2, 'TX_MCPKTS': 10, 'RX_UCPKTS': 387466, 'TX_PKTS': 7563459, 'TX_UCPKTS': 7563447, 'TX_PPS': 81270, 'TX_BYTES': 11481235302 }, 'IFLName': 'xe-0/0/14.0' }, { 'IFLStats': { 'RX_BYTES': 40382814, 'RX_PKTS': 569108, 'TX_BCPKTS': 23, 'RX_MCPKTS': 5103, 'TX_MCPKTS': 4995, 'TX_PKTS': 4618530, 'RX_UCPKTS': 563982, 'RX_BCPKTS': 23, 'TX_UCPKTS': 4613512, 'TX_BYTES': 7000004258 }, 'IFLName': 'xe-0/0/16.0' } ], 'AE_IFL_NAME': 'ae0.0', 'NumBuckets': 2 } ] } }, 'HOP': 1, 'DevSerialID': 'TA3714040533' }, { 'Latency': 0.015943527221679688, 'DevMEMUtil': 15.0, 'IngressIFLAttribute': { 'IFLList': [ { 'IFLStats': { 'RX_PPS': 1, 'TX_BW': 353914, 'RX_BYTES': 37577256586, 'RX_PKTS': 24828770, 'TX_BCPKTS': 87, 'RX_MCPKTS': 22989, 'TX_MCPKTS': 19911, 'TX_PKTS': 1816849, 'RX_UCPKTS': 24805703, 'RX_BCPKTS': 78, 'TX_UCPKTS': 1796851, 'TX_PPS': 5046, 'TX_BYTES': 169043989, 'RX_BW': 225 }, 'IFLName': 'xe-0/0/44.0' } ] }, 'DevCPUUtil': 9.0, 'TIMESTAMP': { 'TimeStamp': 1442515460, 'Type': 'LCPU', 'TimeStamp_usec': 996042 }, 'DevName': 'device03-example-01', 'EgressIFLAttribute': { 'IFLList': [ { 'IFLStats': { 'RX_PPS': 5045, 'TX_BW': 112, 'RX_BYTES': 147180897, 'RX_PKTS': 1797068, 'TX_BCPKTS': 86, 'RX_MCPKTS': 23142, 'TX_MCPKTS': 19828, 'TX_PKTS': 24798650, 'RX_UCPKTS': 1773849, 'RX_BCPKTS': 77, 'TX_UCPKTS': 24778736, 'TX_BYTES': 37575212868, 'RX_BW': 353243 }, 'IFLName': 'xe-0/0/94.0' } ] }, 'HOP': 2, 'DevSerialID': 'VB3714010003' }, { 'Latency': 0.016468524932861328, 'DevMEMUtil': 15.0, 'IngressIFLAttribute': { 'IFLList': [ { 'IFLStats': { 'TX_BW': 353331, 'RX_BYTES': 37575212996, 'RX_PKTS': 24798651, 'TX_BCPKTS': 77, 'RX_MCPKTS': 19828, 'TX_MCPKTS': 23142, 'TX_PKTS': 1798630, 'RX_UCPKTS': 24778737, 'RX_BCPKTS': 86, 'TX_UCPKTS': 1775411, 'TX_PPS': 5047, 'TX_BYTES': 147290237, 'RX_BW': 127 }, 'IFLName': 'xe-0/0/84.0' } ] }, 'DevCPUUtil': 11.0, 'TIMESTAMP': { 'TimeStamp': 1442515461, 'Type': 'LCPU', 'TimeStamp_usec': 26941 }, 'DevName': 'device02-example-03', 'EgressIFLAttribute': { 'IFLList': [ { 'IFLStats': { 'RX_PPS': 5047, 'TX_BW': 123374250, 'RX_BYTES': 232358129, 'RX_PKTS': 3317472, 'TX_BCPKTS': 59, 'RX_UCPKTS': 3317472, 'TX_PKTS': 44421507, 'TX_UCPKTS': 44421448, 'TX_PPS': 81274, 'TX_BYTES': 67424575227, 'RX_BW': 353319 }, 'IFLName': 'ge-0/0/12.0' } ] }, 'HOP': 3, 'DevSerialID': 'VB3113350021' } ], 'ID': "('10.1.1.1', '10.1.7.1', 4567, 5)", 'Time': 1442515433.609627 }