Latency determination
The purpose of latency determination is to estimate how much time takes for a message to be processed by a GSM application.
The MAP protocol does not provide a general way of matching requests with responses and in CAMEL responses are used only for error conditions. As a result latency cannot be computed without application help.
The camel_map module offers a way to compute average application processing latency with a simple addition in the XML structure:
- Each message sent by the module can be timestamped with the server's current time
- Application copies the timestamp from the received XML to the one it responds with
- If the module receives a timestamp it will compute the difference from the current time and adjust average latency
The timestamps need to be enabled in the camel_map.conf module. This can be done globally or per application:
[general] add-timestamp=yes [tcap hlr] type=MAP ... add-timestamp=yes
If enabled the timestamps are added in their own XML element named timestamp-send:
<m> <timestamp-send>1377071763411706</timestamp-send> ... </m>
The application is supposed to copy the received timestamp to the response in a timestamp-recv element:
<m> <timestamp-recv>1377071763411706</timestamp-recv> ... </m>
The latency is available per connection either through rmanager status command or by SNMP:
status camel_map name=camel_map,type=misc,format=User|Type|ReceivedXML|SentXML|ReceivedTCAP|SentTCAP|CurrentTransactions|Congestion|LatencyXML;count=2;hlr:127.0.0.1:36648=hlr|MAP|619|619|618|618|0|false|2873,msc:127.0.0.1:37156=msc|MAP|1|1|0|0|0|false|0
snmpwalk -M +/usr/share/yate/data -m +NULL-TEAM-MIB:YATE-MIB -v 2c -c public 127.0.0.1:1161 1.3.6.1.4.1.34501.1.6.7 YATE-MIB::gsmAppCount.0 2 YATE-MIB::gsmAppIndex.1 1 YATE-MIB::gsmAppIndex.2 2 YATE-MIB::gsmAppID.1 hlr:127.0.0.1:36648 YATE-MIB::gsmAppID.2 msc:127.0.0.1:37156 YATE-MIB::gsmAppType.1 MAP YATE-MIB::gsmAppType.2 MAP YATE-MIB::gsmAppUser.1 hlr YATE-MIB::gsmAppUser.2 msc YATE-MIB::gsmAppRxApp.1 619 YATE-MIB::gsmAppRxApp.2 1 YATE-MIB::gsmAppTxApp.1 619 YATE-MIB::gsmAppTxApp.2 1 YATE-MIB::gsmAppRxNet.1 618 YATE-MIB::gsmAppRxNet.2 0 YATE-MIB::gsmAppTxNet.1 618 YATE-MIB::gsmAppTxNet.2 0 YATE-MIB::gsmAppTransactions.1 0 YATE-MIB::gsmAppTransactions.2 0 YATE-MIB::gsmAppCongestion.1 false YATE-MIB::gsmAppCongestion.2 false YATE-MIB::gsmAppLatencyApp.1 2873 milliseconds YATE-MIB::gsmAppLatencyApp.2 0 milliseconds