Difference between revisions of "Latency determination"

From ss7api.null.ro
Jump to: navigation, search
(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
Personal tools
Namespaces

Variants
Actions
MAP & CAMEL XML Interface
Diameter XML Interface
MAP and CAMEL operations
Diameter interfaces
Examples
Resources
Navigation
Toolbox