How is Average Response time for ICMP based Reachability calculated in Performance Management
search cancel

How is Average Response time for ICMP based Reachability calculated in Performance Management

book

Article ID: 194359

calendar_today

Updated On:

Products

CA Infrastructure Management CA Performance Management - Usage and Administration DX NetOps

Issue/Introduction

Why is the Average Response Time metric data for ICMP Reachability always a whole number?

Why does only rolled up Average Response Time metric data for ICMP based Reachability show values with a decimal place?

The ICMP Vendor Certification for Reachability shows the expression for the Average Response Time metric as just "avgRTT". How is avgRTT determined?

Environment

Release : 3.7

Component : IM Reporting / Admin / Configuration

Resolution

The formula used behind the scenes in the code to generate the avgRTT number is:

int averageRoundTripTime=accumulatedTime/goodFeedbackTime;

Being an integer, it must be a whole number. If the result is 1.23 ms, it becomes 1 ms after the decimal point and anything after it is dropped.

The value we insert to the database for each poll cycle is the rtt value seen in the DCDebug based poll logging responses for the Reachability Metric Family.

Two sample poll values from sample logging:

Jul 02 13:37:22.003: Sent request to ICMP daemon
Jul 02 13:37:22.023: Received response from ICMP daemon
Jul 02 13:37:22.023: Sending response:IcmpPollResponse [error=SUCCESS, duration=60000, pollRate=-1, itemID=3424, deviceItemId=3424, pollGroupId=2889, timedOut =false, rtt =4, timestamp=1593714900000]
Jul 02 13:37:22.023: (for request:IcmpPollRequest [serialVersionUID=1, dcmId=null, itemId=3424, deviceItemId=3424, hostname=, internetAddress=10.90.0.64, numberOfTries=2, timeout=3000, packetSize=64, pollGroupId=2889, cycles=0])

Jul 02 13:42:22.002: Sent request to ICMP daemon
Jul 02 13:42:22.025: Received response from ICMP daemon
Jul 02 13:42:22.025: Sending response:IcmpPollResponse [error=SUCCESS, duration=60000, pollRate=-1, itemID=3424, deviceItemId=3424, pollGroupId=2889, timedOut =false, rtt =7, timestamp=1593715200000]
Jul 02 13:42:22.025: (for request:IcmpPollRequest [serialVersionUID=1, dcmId=null, itemId=3424, deviceItemId=3424, hostname=, internetAddress=10.90.0.64, numberOfTries=2, timeout=3000, packetSize=64, pollGroupId=2889, cycles=0])

We see the same rtt values in the time stamps representing those poll cycles in the UI reports CSV export.

  • 7/2/2020 13:40 4
  • 7/2/2020 13:45 7

The As-Polled RATE data uses that formula, and being an integer it will always be a whole number.

When the data is rolled up and averaged, the value then is set as a double. This means it allows it to use a decimal point and values after it.

This is why As-Polled data will show whole numbers only, but rolled up data will show decimal point values.

To get the As-Polled RATE data value changed from an int to a double would be an Enhancement Request. See the following Knowledge Base Article for Enhancement Request submission instructions.

Additional Information

Difference between int and double:

"int is a binary representation of a whole number, double is a double-precision floating point number. Short answer: int uses up 4 bytes of memory (and it CANNOT contain a decimal), double uses 8 bytes of memory. Just different tools for different purposes."