Difference between revisions of "Latency determination"
(Created page with "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...") |
|||
Line 9: | Line 9: | ||
The timestamps need to be enabled in the camel_map.conf module. This can be done globally or per application: | The timestamps need to be enabled in the camel_map.conf module. This can be done globally or per application: | ||
− | + | ||
[general] | [general] | ||
add-timestamp=yes | add-timestamp=yes | ||
− | + | ||
[tcap hlr] | [tcap hlr] | ||
type=MAP | type=MAP | ||
... | ... | ||
add-timestamp=yes | add-timestamp=yes | ||
− | + | ||
If enabled the timestamps are added in their own XML element named timestamp-send: | If enabled the timestamps are added in their own XML element named timestamp-send: | ||
<m> | <m> | ||
Line 32: | Line 32: | ||
The latency is available per connection either through rmanager status command or by SNMP: | The latency is available per connection either through rmanager status command or by SNMP: | ||
− | + | ||
− | status camel_map | + | 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 | + | 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 | + | 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::gsmAppCount.0 2 |
− | YATE-MIB::gsmAppIndex.1 1 | + | YATE-MIB::gsmAppIndex.1 1 |
− | YATE-MIB::gsmAppIndex.2 2 | + | YATE-MIB::gsmAppIndex.2 2 |
− | YATE-MIB::gsmAppID.1 hlr:127.0.0.1:36648 | + | YATE-MIB::gsmAppID.1 hlr:127.0.0.1:36648 |
− | YATE-MIB::gsmAppID.2 msc:127.0.0.1:37156 | + | YATE-MIB::gsmAppID.2 msc:127.0.0.1:37156 |
− | YATE-MIB::gsmAppType.1 MAP | + | YATE-MIB::gsmAppType.1 MAP |
− | YATE-MIB::gsmAppType.2 MAP | + | YATE-MIB::gsmAppType.2 MAP |
− | YATE-MIB::gsmAppUser.1 hlr | + | YATE-MIB::gsmAppUser.1 hlr |
− | YATE-MIB::gsmAppUser.2 msc | + | YATE-MIB::gsmAppUser.2 msc |
− | YATE-MIB::gsmAppRxApp.1 619 | + | YATE-MIB::gsmAppRxApp.1 619 |
− | YATE-MIB::gsmAppRxApp.2 1 | + | YATE-MIB::gsmAppRxApp.2 1 |
− | YATE-MIB::gsmAppTxApp.1 619 | + | YATE-MIB::gsmAppTxApp.1 619 |
− | YATE-MIB::gsmAppTxApp.2 1 | + | YATE-MIB::gsmAppTxApp.2 1 |
− | YATE-MIB::gsmAppRxNet.1 618 | + | YATE-MIB::gsmAppRxNet.1 618 |
− | YATE-MIB::gsmAppRxNet.2 0 | + | YATE-MIB::gsmAppRxNet.2 0 |
− | YATE-MIB::gsmAppTxNet.1 618 | + | YATE-MIB::gsmAppTxNet.1 618 |
− | YATE-MIB::gsmAppTxNet.2 0 | + | YATE-MIB::gsmAppTxNet.2 0 |
− | YATE-MIB::gsmAppTransactions.1 0 | + | YATE-MIB::gsmAppTransactions.1 0 |
− | YATE-MIB::gsmAppTransactions.2 0 | + | YATE-MIB::gsmAppTransactions.2 0 |
− | YATE-MIB::gsmAppCongestion.1 false | + | YATE-MIB::gsmAppCongestion.1 false |
− | YATE-MIB::gsmAppCongestion.2 false | + | YATE-MIB::gsmAppCongestion.2 false |
− | YATE-MIB::gsmAppLatencyApp.1 2873 milliseconds | + | YATE-MIB::gsmAppLatencyApp.1 2873 milliseconds |
− | YATE-MIB::gsmAppLatencyApp.2 0 milliseconds | + | YATE-MIB::gsmAppLatencyApp.2 0 milliseconds |
− | + |
Latest revision as of 16:46, 23 August 2013
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