Measuring the Performance of Web Service Calls
9 min
to measure and analyze the performance of web service calls, record their start and stop times use this information to determine the elapsed time, usually in milliseconds, of the web service call after you have the web service time, you can use the times to list the averages, best and worst performances, summary, and more see the following topics web service calls docid\ bso3urjpc33yozt sv ieservice names docid\ bso3urjpc33yozt sv iestep 1 enabling logging for the ivanti application server docid\ bso3urjpc33yozt sv iestep 2 enabling the logging level in the configuration database and in the tenant docid\ bso3urjpc33yozt sv iestep 3 viewing the log docid\ bso3urjpc33yozt sv iestep 4 running a database query docid\ bso3urjpc33yozt sv iestep 5 reviewing the results docid\ bso3urjpc33yozt sv ie web service calls the following are the web service calls in dashboardservice cs (3 items) dashbdsvc getdashboard dashbdsvc getsearchtargetobjects dashbdsvc getdashboardtree knowledge asmx cs (1 item) knowledge getselfsvcknwlgewsdata myitems asmx cs (1 item) myitems getmyitems selfservice asmx cs (5 items) selfservice getobjqukactnsbytype selfservice getannouncements selfservice getalerts selfservice gettoptopics selfservice getmyitems frsheatintegration asmx cs (2 items) frsheatintg getschemaforobject frsheatintg getallallowedobnames formservice asmx cs (6 items) frmsvc getformdata frmsvc getformdatawithexprfields frmsvc getdependentformdata frmsvc getformvalidationlistdata frmsvc getobjectlayoutdefbyid frmsvc getchildtablinkselectdata layout asmx cs (1 item) layout getlayout save asmx cs (1 item) save savedataexecuteaction search asmx cs (1 item) search getsavedsearcheslist workspace asmx cs (4 items) workspace getworkspacedata workspace getworkspaces workspace getroleworkspaces workspace getfavoritesearches service names there are several services, but to measure performance, we only use the service called performance performance service name see viewing the logging configuration docid\ sm4xxhchp2z7c eqv8 0j for more information about logging step 1 enabling logging for the ivanti application server update the configuration file called frsloggingsettings config to enable the performance service the following is an example \<?xml version="1 0" encoding="utf 8"?> \<configuration> \<appsettings> \<! turns logging on and off for the host running the application > \<add key=" enablecentrallogging " value="true" /> \<! where to read the logging settings from database from > \<add key=" configureserviceapi ws url " value="https //localhost/centralconfig/configserviceapi asmx"/> \<! where to send the logs > \<add key=" loggingservice ws url " value="https //localhost/centralconfig/configserviceapi asmx" /> \<! specifies when to flush the log queue; whenever comes first, seconds passed or exceeding the log item size > \<add key=" elapsedsecondstoflushlog " value="60" /> \<add key=" itemsizetoflushlog " value="5000" /> \<! determines when to reload this file, and to refresh the log settings from database > \<add key=" logsettingcachetimeoutinminutes " value="5" /> \<! for the old logger > \<add key=" enablelogging " value="true" /> \<add key=" retrievetenantloglevel ws url " value="https //localhost/centralconfig/retrievetenantloglevel ashx" /> \</appsettings> \</configuration> the enablecentrallogging parameter determines if logging is enabled if it is set to false, there is no logging the default value is false the configureserviceapi ws url parameter specifies where to load tenant specific settings from databases the default value is https //localhost/centralconfig/configserviceapi asmx the loggingservice ws url parameter specifies where to send the log the default value is configureserviceapi ws url the elapsedsecondstoflushlog parameter and the itemsizetoflushlog parameter specify when to flush the log queue the logsettingcachetimeoutinminutes parameter specifies how often to refresh the log settings you can shorten or extend the value of the logsettingcachetimeoutinminutes parameter at runtime this applies for all tenants, upon reloading of this configuration file step 2 enabling the logging level in the configuration database and in the tenant the following are the log levels for all web services all debug warn off fatal info error to enable the performance web service call, its severity level must be debug or info you set this value in both the configuration database (configdb) for the entire application, and in the tenant for each individual tenant to set the log level for the performance service in the configdb, follow these steps log into the configdb see the configuration database guide for for more information about using the configdb go to the logging configuration workspace double click the performance service name to open the record change the log level to either info or debug click save you must also set the log level in the tenant the log level set in the tenant overrides the log level set in the configdb to set the log level for the performance service in the tenant, follow these steps log in to go to the logging configuration workspace double click the performance service name to open the record change the log level to either info or debug click save step 3 viewing the log log into the configdb see the configuration database guide for for more information about using the configuration database go to the logs workspace filter the service name column to only show performance the application displays all the logs for the performance service (if the service name column is not displayed, add it see working with lists docid 5sknnbwacog7kx6hee5ts for information about how to add a column to a list ) double click a log to open it example log entry the following are the fields in the record and the database records associated with them log record field performance record field description log entry id logid id of this log log time logtime the time when the log stops client ip address clientip ip address login id loginid id of the user running the log note the value cannot contain angle brackets current role of user userrole the role of the logged in user host name hostname the host name of the server service name servicename service name this should always say performance component name wsurlorcomponentname not used error code errorcode not used log db time entrytime the time when the log starts sub system id subsystemid not used tenant id tenantid id of this tenant session id sessionid id for this session thread name threadid id for this thread target site targetsite not used log severity severity the log level this should always say debug or info exception exception the exception message message the associated message step 4 running a database query with the results of the log, run a database query the following is a sample query, that computes the transaction time with w3cformat as ( select convert(date, logtime) as \[date], convert(time, logtime) as \[time], clientipaddress as \[c ip], loginid as \[cs username], currentroleofuser as \[cs userrole], sessionid as \[cs session], hostname as \[s computername], 'soap' as \[cs method], componentname as \[cs uri stem], tenantid as \[cs host], datediff (millisecond, logdbtime, logtime) as \[time taken] from logs where servicename = 'performance' ) select top 5 from w3cformat where \[date] = '2014 10 17' order by \[time taken] desc step 5 reviewing the results you can view the results in a microsoft excel spreadsheet, in a table, or in a chart the following is a sample of the results in a table (the table is shown on three lines for readability) date time c ip cs username cs userrole cs session 10/17/2014 23 09 1 10 10 100 100 admin admin 10a1e1e7f2d741ae8c0d58aa7b4a6375 10/17/2014 19 08 4 10 10 100 102 frs tso admin 723a0eb7f5964525bed53c0fce411c07 10/17/2014 21 06 9 10 10 100 104 jon doe admin 09958d7c6f934e1593c7beca35de8505 10/17/2014 19 38 2 10 10 100 107 frs tso admin 723a0eb7f5964525bed53c0fce411c07 10/17/2014 22 59 8 10 10 100 109 admin admin 10a1e1e7f2d741ae8c0d58aa7b4a6375 date time s computername cs method cs uri stem 10/17/2014 23 09 1 s607677ch4vw38 soap save savedataexecuteaction 10/17/2014 19 08 4 s607677ch4vw38 soap frmsvc getobjectlayoutdefbyid 10/17/2014 21 06 9 s607677ch4vw38 soap frmsvc getformdatawithexprfields 10/17/2014 19 38 2 s607677ch4vw38 soap workspace getworkspacedata 10/17/2014 22 59 8 s607677ch4vw38 soap frmsvc getformvalidationlistdata date time cs host time taken 10/17/2014 23 09 1 abc stg saasit com 466 10/17/2014 19 08 4 xyz stg saasit com 233 10/17/2014 21 06 9 xyz stg saasit com 233 10/17/2014 19 38 2 xyz stg saasit com 186 10/17/2014 22 59 8 abc stg saasit com 170
