Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

Requesting Collected Flow Data

 

Use the Cloud Analytics Engine CA API flow data resource to retrieve application flow path analytics data.

GET data/flow Resource

Use the GET data/flow CA API to request analytics data for a flow you have started. This is a synchronous API.

The available data depends on the parameters used to start the flow, described in GET start/flow Resource.

Request Parameters:

  • The 5-tuple identifying the flow from which to retrieve available analytics data:

    • src: (String) Source IPv4 address.

    • dst: (String) Destination IPv4 address.

    • proto: (String, Optional) Protocol type: “tcp” or “udp”. Default is “udp”.

    • sport: (Numeric, Optional) Source port corresponding to the protocol type for the flow. Default value is 33434.

    • dport: (Numeric, Optional) Destination port corresponding to the protocol type for the flow. Default value is 33434.

Return Code:

  • None—CA returns the requested flow data.

  • EFAIL—No data is present for the specified 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:

See the following for examples of using the data/flow resource with different flow data collection parameters:

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:

  • For non-overlay (data/flow resource):

    {source IP address, destination IP address, protocol, source port, destination port}

  • For overlay (data/tunnel resource):

    {VTEP source IP address, VTEP destination IP address, VXLAN ID, application source IP address, application destination IP address}

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.

Flow Data Compute Agent API Example

This example shows the JSON-format response data returned from a CA API request to retrieve flow data results for the specified flow. See GET data/flow Resource for details on response data elements.

Also see GET start/flow Resource for request parameters you can use to specify different options for the data collection when setting up the flow. This example illustrates tracing a simple TCP application flow with no extra instructions specified to CA for collecting flow data.

Start a flow data collection with these parameters (GET start/flow request):

http://10.94.201.11:8080/start/flow?dport=9000&src=10.1.1.1&dst=10.1.7.1&

sport=4567&proto=tcp

Request collected data for the flow (GET data/flow request):

http://10.94.201.11:8080/data/flow?dport=9000&src=10.1.1.1&dst=10.1.7.1&

sport=4567&proto=tcp

Response data:

Bandwidth Flow Data Compute Agent API Example

These examples show the JSON-format response data returned from CA API requests to retrieve flow data results that include bandwidth measurements for TCP and UDP flows. See GET data/flow Resource for details on response data elements.

Also see GET start/flow Resource for request parameters you can use to specify different options for the data collection when setting up the flow, such as the bw_ingress option used here to also trace ingress bandwidth statistics.

Bandwidth Example with a TCP Flow

Start a flow data collection with these parameters for a TCP flow (GET start/flow request):

http://10.94.201.11:8080/start/flow?src=10.1.1.1&bw_ingress=true&proto=tcp&dst=10.1.7.1&

dport=9000&sport=58991

Request collected data for the TCP flow (GET data/flow request):

http://10.94.201.11:8080/data/flow?src=10.1.1.1&proto=tcp&dst=10.1.7.1&dport=9000&

sport=58991

Response data:

Bandwidth Example with a UDP Flow

Start a flow data collection with these parameters for a UDP flow (GET start/flow request):

http://10.94.201.11:8080/start/flow?src=10.1.1.1&bw_ingress=true&proto=udp&dst=10.1.7.1&

dport=9000&sport=54676

Request collected data for the UDP flow (GET data/flow request):

http://10.94.201.11:8080/data/flow?src=10.1.1.1&proto=udp&dst=10.1.7.1&dport=9000&

sport=54676

Response data:

Mirror Flow Data Compute Agent API Example

This example shows the JSON-format response data returned from a CA API request to retrieve flow data results for the specified flow that includes mirroring. See GET data/flow Resource for details on response data elements.

Also see GET start/flow Resource for request parameters you can use to specify different options for the data collection when setting up the flow, such as the mirror options used here to set up and trace mirroring. This flow also includes the bw_ingress option to include bandwidth measurements.

Start a flow data collection with mirroring and bandwidth measurements (GET start/flow request):

http://10.94.201.11:8080/start/flow?src=10.1.1.1&mirror_dir=ingress&

mirror_analyzer=10.2.1.1&bw_ingress=true&proto=tcp&dst=10.1.7.1&mirror_type=ERSPAN&

dport=9000&sport=59047

Request collected data for the flow (GET data/flow request:

http://10.94.201.11:8080/data/flow?src=10.1.1.1&proto=tcp&dst=10.1.7.1&

dport=9000&sport=59047

Response data: