APMaaS Synthetic Monitoring for Web and Mobile Data Feed API Reference September 2014
Please direct questions about APMaaS Synthetic Monitoring or comments on this document to: APM Customer Support FrontLine Support Login Page: http://go.compuware.com Copyright 2014 Compuware Corporation. All rights reserved. Unpublished rights reserved under the Copyright Laws of the United States. U.S. GOVERNMENT RIGHTS-Use, duplication, or disclosure by the U.S. Government is subject to restrictions as set forth in Compuware Corporation license agreement and as provided in DFARS 227.7202-1(a) and 227.7202-3(a) (1995), DFARS 252.227-7013(c)(1)(ii) (OCT 1988), FAR 12.212(a) (1995), FAR 52.227-19, or FAR 52.227-14 (ALT III), as applicable. Compuware Corporation. This product contains confidential information and trade secrets of Compuware Corporation. Disclosure is prohibited without the prior express written permission of Compuware Corporation. Use of this product is subject to the terms and conditions of the user's License Agreement with Compuware Corporation. Documentation may only be reproduced by Licensee for internal use. The content of this document may not be altered, modified or changed without the express written consent of Compuware Corporation. Compuware Corporation may change the content specified herein at any time, with or without notice. All current Compuware Corporation product documentation can be found at http://go.compuware.com. Adobe Reader is a registered trademark of Adobe Systems Incorporated in the United States and/or other countries. All other company and product names are trademarks or registered trademarks of their respective owners. Local Build: September 26, 2014, 8:25
Contents Contents Introduction...................................................... Data Feed API Features and Notes...................................... Documentation Conventions........................................... Customer Support Information......................................... Chapter 1 Data Feed Options........................................ Which Data Feeds are Available?....................................... Which Data Feed Do I Need?.......................................... How Do I Get the Data Feed I Need?..................................... Does the Data Feed Provide the Data I Need?.............................. Chapter 2 Data Feed Web Services.................................... OpenDataFeed Request.............................................. OpenDataFeed Response............................................. OpenDataFeed2 Request............................................. OpenDataFeed3 Request............................................. GetResponseData Request............................................ GetResponseData Response........................................... Sample GetResponseData for Backbone Data.............................. Sample GetResponseData for Streaming Data.............................. GetErrorCodes Request.............................................. GetErrorCodes Response............................................. CloseDataFeed Request.............................................. CloseDataFeed Response............................................. Data Service Security................................................ Chapter 3 FTP Data Feeds.......................................... Access FTP Data Feed Files........................................... FTP Data Feed File Information........................................ T File Layout.................................................... Monitor File Layout............................................... Site File Layout.................................................. LM File Layout.................................................. 5 5 6 7 9 9 10 11 11 15 16 20 22 24 27 28 29 33 33 34 34 34 34 35 35 35 36 37 37 38 3
Contents TO File Layout................................................... LMO File Layout................................................ Appendix A Data Export Web Service Response SD..................... Index........................................................... 38 39 41 53 4
INTRODUCTION This document describes the details and use of the Application Programming Interface (API) that can be used to retrieve collected data sets from the Compuware APMaaS platform. APMaaS Synthetic Monitoring provides the raw data and associated data definitions that can be used to access the data feed performance data. Document Contents This document contains the following chapters: Data Feed Options [p. 9] Provides information about each of the available data feeds and helps you determine which to use. Data Feed Web Services [p. 15] Describes the methods available for retrieving the data. FTP Data Feeds [p. 35] Describes the FTP data feeds available for retrieving the data. Data Export Web Service Response SD [p. 41] Provides an example of the SD that can be downloaded for reference. Data Feed API Features and Notes The Data Feed API supports a broad range of available APMaaS Synthetic Monitoring data sets. The API includes support for discrimination between legacy UTA test measurements and newer BROWSER based test measurements through the inclusion of a browser type attribute which is associated at the test level of every acquired data sample. The API can emit an extended data set for MOBILE tests. The API supports a request mode for eliciting data sets which correspond to samples which have been reclassified as data cuts in the system. Data cut requests are supported across all available response models. Data cut information can be elicited for any series of cut events occurring within the last four days. The API supports a request mode to cause the data service to reinterpret the requested time range as a platform arrival time rather than the current interpretation as test acquisition time. 5
Introduction This allows clients greater flexibility for use cases which must take into account latencies within the Compuware APMaaS platform. A companion schema document for the response payload is available. Backward Compatibility of Responses Responses from the 4.0 and later versions of the service are not backward compatible with the earlier versions of the service. While many of the low level element attributes are preserved, many of the containing element names have changed. Specifically, the legacy element name TEST was specialized to better inform the response model being used: TTEST Indicates a Transaction Test Response element emanating from Backbone, Last Mile, Private Peer, or Mobile Systems. TTIMEGROUP Indicates a Transaction Test Time Group Response element emanating from Backbone-based transactions. STREAMTEST Indicates a Stream Test Response element emanating from Backbone Streaming System. DATACUT Indicates a Data Cut Sample element emanating from Backbone, Last Mile, Private Peer or Mobile Systems. MESSAGE Indicates a general purposes messaging element. Documentation Conventions The following font conventions are used throughout documentation: This font Bold Citation Documentation Conventions [p. 6] Fixed width Fixed width bold Fixed width italic Indicates Terms, commands, and references to names of screen controls and user interface elements. Emphasized text, inline citations, titles of external books or articles. Links to Internet resources and linked references to titles in Compuware documentation. Cited contents of text files, inline examples of code, command line inputs or system outputs. Also file and path names. User input in console commands. Place holders for values of strings, for example as in the command: cd directory_name 6
Introduction This font Menu Item Screen Code block Indicates Menu items. Text screen shots. Blocks of code or fragments of text files. Customer Support Information APM Community For information on Compuware products, go to the APM Community and click Support. You can review frequently asked questions, access the training resources in the APM University, and post a question or comment to the product forums. You must register and log in to access the Community. Corporate Website To access the Compuware website, go to http://www.compuware.com. The Compuware site provides a variety of product and support information. 7
Introduction 8
CHAPTER 1 Data Feed Options The APMaaS Synthetic Monitoring tools provide a variety of graphical displays that satisfy the reporting and analytical needs of most APMaaS Synthetic Monitoring customers. If you want to correlate your internal business data with APMaaS Synthetic Monitoring data, APMaaS Synthetic Monitoring provides several data feeds can be used to download your account data. Data feeds provide another way for you to access and structure their data. It can be difficult to determine which feed is best for meeting specific requirements. This document first discusses the two APMaaS Synthetic Monitoring data feeds (FTP and Web Services) and then provides a number of recommendations to help you determine which data feed is best for your purposes. Which Data Feeds are Available? APMaaS Synthetic Monitoring provides the following data feeds: Web Services FTP For a large volume (hundreds) of tests, downloads can approach over one gigabyte (1,000 MB) of data in a day, and the File Transfer Protocol (FTP) data feed provides the most efficient way to download this quantity of data from APMaaS Synthetic Monitoring. Most clients, however, download the results of only dozens of tests on average. For these clients, the Web Services data feed is the best way to download test data. Web Service Data Feed The Web Services data feed is the best way for obtaining most data from APMaaS Synthetic Monitoring. Customers can create batch programs to download test-level, page-level, and object-level data and to load that data into data warehouses to supplement business analytics and reporting. If you need support for creating programs to download data, contact Customer Support. Contact Customer Support to have your account enabled for the APMaaS Synthetic Monitoring Web Service data feeds. For more information, see Data Feed Web Services [p. 15]. 9
Chapter 1 Data Feed Options FTP Data Feed Use the FTP data feed to obtain large amounts of data at once from the Compuware APMaaS platform. For users that have dozens of tests and large test volume (for example, service providers and ad networks), FTP is the preferred method for application integration at the customer premises. Many tests can generate up to a gigabyte of data, and files are created every hour by scheduled scripts. As with Web Services, this amount of data requires planning and management by technical personnel. Contact Customer Support to set up your FTP account. For more information, see FTP Data Feeds [p. 35]. Emailed Reports and Alerts While these are not really data feeds, for many users it is critically important to receive an emailed report that is already aggregated, processed, and summarized. Email reports are sent directly to the customer and can be set up in the Compuware APMaaS platform portals. Similarly, emailed alerts do not require any processing by the user. Their use is described in the online help. If you need a custom or enhanced report, contact your Account Manager. ML Data Feed For users interested in programming or integrating small subsets of certain Last Mile data via an HTTPS (or HTTP) connection, the ML data feed can be used. NOTE The ML Data Feed is targeted for deprecation, to be replaced by the Web Services Data Feed. At this time, most customers would already be better served by the Web Services Data Feed. Which Data Feed Do I Need? Data feed selection depends on a number of factors, but the key factors are the total number of tests and the target application. You can receive an aggregated weekly summary report of a dozen tests in Microsoft Excel format and Email reports are perfect for this. Additionally, if you have a dedicated analytics team and want to correlate the test measurements with a web user analytics system, a daily batch pull using a Web Service data feed is the best option. Audience Function # of Tests Target Application or Format Data Feed Recommendation Business SLA reports Under 10 Excel, PDF, HTML, CSV Email Report Business Aggregated Any Excel, PDF, HTML, CSV Email Report Business Daily Test Results Under 20 Excel, PDF, HTML, CSV Email Report Technical Aggregated for Smart Phones Any HTML Email Report Technical Daily test results Any Analytics or Dashboards Web Services 10
Chapter 1 Data Feed Options Audience Function # of Tests Target Application or Format Data Feed Recommendation Technical Daily Batch Load Any Data Warehouse Web Services Technical Hourly Batch Load Over 20 Data Warehouse FTP or Web Services Any Receive Alerts Any Email Alert Email How Do I Get the Data Feed I Need? Once you have determined the data feed to use, there are a number of different processes you need to follow, depending on the feed you want. Data Feed Web Services FTP How to get it Have your Compuware account activated first by Customer Support to access this feed. Open a ticket with Customer Support to set up your FTP account. Does the Data Feed Provide the Data I Need? The level of detail is used to determine which data feed to use. Not all data feeds include the same level of detail. For instance, the Last Mile web service includes most, but not all, types of Backbone data. Use the following matrix to determine the data feed to use. Data Source Data Type Web Services FTP Backbone Summary [p. 12] Page [p. 12] W3C [p. 12] Object [p. 12] All [p. 13] Data Cut [p. 13] Streaming (Backbone) Summary [p. 12] Page [p. 12] Object [p. 12] All (for Streaming only) [p. 13] Data Cut [p. 13] Last Mile Summary [p. 12] Page [p. 12] 11
Chapter 1 Data Feed Options Data Source Data Type Web Services FTP W3C [p. 12] Object [p. 12] All [p. 13] Data Cut [p. 13] Private Peer Summary [p. 12] Page [p. 12] * W3C [p. 12] Object [p. 12] All [p. 13] Data Cut [p. 13] Mobile Summary [p. 12] Page [p. 12] * W3C [p. 12] Object [p. 12] All [p. 13] Data Cut [p. 13] Classic RUM (previously known as Browser RUM) Raw [p. 13] Chart [p. 13] Geo [p. 13] *Does not include Private Peer extended data attributes. Data Types The data types referenced in the table above are described below: Summary Raw data for each test specified over the time frame requested. Page Raw data for each test for each page in the test over the time frame requested. The hourly page summary rolls up the data by test id, hour, node, and page. W3C Provides information for the W3C performance metrics collected for Backbone, Last Mile, Private Peer, and Mobile. Object Provides information for each object in the test, ordered by test id, timestamp, node, page sequence, and object sequence. NOTE: You cannot aggregate up to test results due to problems around HTTP concurrent connections, compression, and other technical issues. 12
Chapter 1 Data Feed Options All Includes Summary, Page, Object, plus Host and Connection data. All (for Streaming only) Includes Summary plus Event, Trace, and Meta data. Data Cut Specific data sets for cut events occurring in the last 4 days. Raw Provides raw Classic RUM (previously known as Browser RUM) data. Chart Provides aggregated Classic RUM (previously known as Browser RUM) data. Geo Provides geographically-based Classic RUM (previously known as Browser RUM) data. 13
Chapter 1 Data Feed Options 14
CHAPTER 2 Data Feed Web Services The following functions are supported by the Data Feed Web Services interface: Request OpenDataFeed Request [p. 16] OpenDataFeed2 Request [p. 22] OpenDataFeed3 Request [p. 24] GetResponseData Request [p. 27] GetErrorCodes Request [p. 33] CloseDataFeed Request [p. 34] Results Initializes client data feed session based on a set of input parameters. A token in returned to the client for subsequent data pickup. Initializes client data feed session based on a set of input parameters. A token in returned to the client for subsequent data pickup. This interface supports the specification of a mode of operation using relative rather than absolute time windows. Initializes client data feed session based on a set of input parameters. A token in returned to the client for subsequent data pickup. This interface supports the specification of a mode of operation using ARRIVAL time rather than TEST time windows. Get next chunk of data for current feed session. Explicitly expires the current feed session. Exports the raw error code definitions. A session starts with one of the three OpenDataFeed requests. After a successful response completes the handshake, a GetResponseData request starts the actual data transfer. A successful GetResponseData response includes an ML file containing the data payload. A CloseDataFeed request starts the termination of the session after the requested data is transferred. With a successful CloseDataFeed response, the session is completed. The following diagram illustrates how a typical session proceeds. 15
Chapter 2 Data Feed Web Services Access to the Data Service Use the following URLs to access the production specifications for the Data Export service. Production URL http://gpn.webservice.gomez.com/dataexportservice60/gpndataexportservice.asmx Production WSDL http://gpn.webservice.gomez.com/dataexportservice60/gpndataexportservice.asmx?wsdl Production SD http://gpn.webservice.gomez.com/dataexportservice60/gpndataexportservice.asmx?xsd OpenDataFeed Request The OpenDataFeed web service method initializes a data feed session based on a number of user-defined criteria. A data feed session always exports a homogeneous dataset based on the MonitorClassDesignator and DataDesignator specified when the session is initialized. Use an OpenDataFeed request to open a session: http://gpn.webservice.gomez.com/dataexportservice60/gpndataexportservice.asmx?op=opendatafeed Parameters susername spassword imonitoridset The account username. The account password Requested set of the Compuware APMaaS platform Monitor/Test reference Identifiers. This set will be cross-referenced with the MonitorClassDesignator and only the requested monitors meeting the specified class criteria will be returned. 16
Chapter 2 Data Feed Web Services Parameters NOTE Use the Account Management API to retrieve the Compuware APMaaS platform monitor identifiers available to your account. isiteidset Requested set of the Compuware APMaaS platform Site reference Identifiers. Empty set denotes all sites. NOTE Use the Account Management API to retrieve the Compuware APMaaS platform monitor identifiers available to your account. smonitorclassdesignator sdatadesignator sstarttime Specifies the type of data to be exported in the dataset based on the common class of tests. Supported values are as follows: UTAT Data sets based on transaction tests running on UTA agents BROWSERT Data sets based on transaction tests running on browser agents. Note that this is a shared schema with UTA. STREAM Data sets based on streaming test running on stream agents. PRIVATEER Data sets based on tests running on Private Peer Network LASTMILE Data sets based on tests running on Last Mile Network MOBILE Data sets based on tests running on Mobile Network Specifies the levels of data in the dataset returned to the client for the type of data specified with the smonitorclassdesignator parameter. Supported values are as follows: ALL Returns all levels of data available. OBJECT Returns SUMMARY, PAGE, and OBJECT level data. Mobile datasets will also include MOBILEET level data. PAGE Returns SUMMARY and PAGE level data. Mobile datasets will also include MOBILEET level data. SUMMARY Returns SUMMARY level data. Mobile datasets will also include MOBILEET level data. TIMEGROUP Returns aggregation data over specified time window, up to 24 hours. (see following parameter descriptions). Specifies the starting time boundary for the dataset. The format is: 17
Chapter 2 Data Feed Web Services Parameters YYYY-MM-DD HH:MM:SS sendtime sorderdesignator Specifies the ending time boundary for the dataset. The format is: YYYY-MM-DD HH:MM:SS Specifies how the dataset will be ordered. Supported values are as follows: TIME Orders data by time. SITE Orders data by site. MONITOR Orders data by monitor class Supported Combinations Together, the sdatadesignator and smonitorclassdesignator values define what will be included in the retrieved dataset. The supported combinations are listed in the following table. sdatadesignator ALL OBJECT PAGE smonitorclassdesignator UTAT BROWSERT STREAM PRIVATE PEER LASTMILE MOBILE UTAT BROWSERT PRIVATE PEER LASTMILE MOBILE UTAT BROWSERT PRIVATE PEER DataSet Retrieved Summary, page, object, host, and connection-level. Summary, page, object, host, and connection-level. Summary, event, metadata, and trace-level. Summary, page, object, host, and connection-level. Summary, page, object, host, and connection-level. Summary, page, object, host, connection, and mobileext-level. Summary, page, and object level only. Summary, page, and object level only. Summary, page, and object level only. Summary, page, and object level only. Summary, page, object, and mobileext-level. Summary and page-level only. Summary and page-level only. Summary and page-level only. 18
Chapter 2 Data Feed Web Services sdatadesignator SUMMARY TIMEGROUP smonitorclassdesignator LASTMILE MOBILE UTAT BROWSERT STREAM PRIVATE PEER LASTMILE MOBILE UTAT BROWSERT DataSet Retrieved Summary and page-level only. Summary, page, and mobileext-level. Summary-level only. Summary-level only. Summary-level only. Summary-level only. Summary-level only. Summary-level only. Up to 24 hours of aggregated data. Up to 24 hours of aggregated data. Validation Criteria In the following table are descriptions of the validation criteria for the OpenDataFeed request. Validation Criteria Username Password MonitorIdSet SiteIdSet StartTime EndTime MonitorClassDesignator DataDesignator OrderDesignator Data Volume Frequency Concurrency The supplied username is valid for the account. The supplied password is valid for the account. The set of Monitor IDs is valid for the account. The set of Site IDs is valid for the account. The time window start boundary is valid. The time window end boundary is valid. The smonitorclassdesignator value is valid. The sdatadesignator value is valid. The sorderdesignator value is valid. The volume of data does not exceed the account constraints The request frequency does not exceed the account constraints The request concurrency does not exceed the account constraints Response Example <soap:envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/mlschema-instance" xmlns:xsd="http://www.w3.org/2001/mlschema"> <soap:body> <OpenDataFeedResponse xmlns="http://gomeznetworks.com/webservices/"> <GpnOpenUtaDataFeedResponse> <Status> <estatus>status_success</estatus> <serrormessage/> </Status> <GPNGlobalConstraints MaxDataRequestsPerHourPerSession="60" MaxTotalSessions="4096"/> 19
Chapter 2 Data Feed Web Services <GPNAccountConstraints MaxDataRecordsPerRequest="100" MaxConcurrentSessions="100" MaxConcurrentRequests="1" MaxRequestIntervalBeforeExpirationInMinutes="15"/> <CurrentTime>2014-01-15 17:49:54</CurrentTime> <SessionToken>39eb9e7d-c0cb-4e62-a806-46cd112e1d8c</SessionToken> <AcceptedMonitors> <mid>331608</mid> </AcceptedMonitors> <AcceptedSites> <sid>5</sid> <sid>6</sid> <sid>316</sid> <sid>777</sid> <sid>834</sid> <sid>835</sid> <sid>836</sid> <sid>837</sid> <sid>843</sid> <sid>844</sid> <sid>845</sid> <sid>846</sid> <sid>847</sid> <sid>848</sid> <sid>849</sid> <sid>850</sid> <sid>851</sid> <sid>852</sid> <sid>855</sid> <sid>856</sid> <sid>857</sid> <sid>858</sid> <sid>860</sid> <sid>861</sid> <sid>862</sid> <sid>864</sid> <sid>865</sid> <sid>866</sid> <sid>867</sid> <sid>868</sid> <sid>871</sid> <sid>872</sid> <sid>873</sid> <sid>880</sid> <sid>881</sid> <sid>884</sid> <sid>885</sid> <sid>886</sid> <sid>887</sid> <sid>888</sid> <sid>889</sid> <sid>9100</sid> </AcceptedSites> </GpnOpenUtaDataFeedResponse> </OpenDataFeedResponse> </soap:body> </soap:envelope> OpenDataFeed Response The OpenDataFeed web service method returns an ML message containing the following: The status of the operation. The set of global operational constraints. The set of account specific operational constraints. The session Identifier. The set of validated monitor identifiers. The set of validated site identifiers. Successful Response Message Example <?xml version="1.0" encoding="utf-8"?> <GpnOpenUtaDataFeedResponse xmlns:xsd="http://www.w3.org/2001/mlschema" xmlns:xsi="http://www.w3.org/2001/mlschema-instance" xmlns="http://gomeznetworks.com/webservices/"> <Status> <estatus>status_success</estatus> <serrormessage /> 20
Chapter 2 Data Feed Web Services </Status> <GPNGlobalConstraints MaxDataRequestsPerHourPerSession="60" MaxTotalSessions="50" /> <GPNAccountConstraints MaxDataRecordsPerRequest="1000" MaxConcurrentSessions="1" MaxConcurrentRequests="1" MaxRequestIntervalBeforeExpirationInMinutes="15" /> <CurrentTime>2014-01-15 17:49:54</CurrentTime> <SessionToken>c59754b7-3ed3-4878-a0e8-c352daa0b8a1</SessionToken> <AcceptedMonitors> <mid>1162690</mid> </AcceptedMonitors> <AcceptedSites> <sid>101</sid> </AcceptedSites> </GpnOpenUtaDataFeedResponse> Unsuccessful Response Message Example <?xml version="1.0" encoding="utf-8"?> <GpnOpenUtaDataFeedResponse xmlns:xsd="http://www.w3.org/2001/mlschema" xmlns:xsi="http://www.w3.org/2001/mlschema-instance" xmlns="http://gomeznetworks.com/webservices/"> <Status> <estatus>status_failed</estatus> <serrormessage>invalid ORDER DESIGNATOR SPECIFIED. MUST BE (TIME MONITOR SITE)</sErrorMessage> </Status> </GpnOpenUtaDataFeedResponse> The following table summarizes the elements and attributes in the ML response returned by this web service. Refer to the WSDL for the complete definition of this ML response. Container Element OpenDataFeedResponse Status GPNGlobalConstraints Data Element/Attribute estatus serrormessage MaxDataRequestsPerHourPerSession MaxTotalSessions Either STATUS_SUCCESS or STATUS_FAILED. Contains an error message if STATUS_FAILED. The maximum number of data requests that can be made per hour within a given session is 60. The maximum number of sessions that can be handled by the service is 32. GPNAccountConstraints MaxDataRecordsPerRequest MaxConcurrentSessions MaxConcurrentRequests The maximum number of data records that can be obtained per GetResponseData request is 1000. The maximum number of concurrent sessions that will be serviced is 1. The maximum number of concurrent requests that can be made within the context of a given session is 1. MaxRequestIntervalBeforeExpirationInMinutes The maximum amount of time that can elapse between calls to "GetResponseData" before 21
Chapter 2 Data Feed Web Services Container Element Data Element/Attribute CurrentTime SessionToken AcceptedMonitors AcceptedSites a session may be expired by the system is 15 minutes. Contains the time the request was received in GMT. The ssession Identifier that is used in subsequent calls to GetResponseData and CloseDataFeed. Contains a list of the Compuware APMaaS platform monitor identifiers that have been validated by the system for a specified account. Contains a list of the Compuware APMaaS platform site identifiers that have been validated by the system for a specified account. OpenDataFeed2 Request This represents an alternate version of an OpenDataFeed request, asking for the last N samples relative to the current time. Web method for initializing the UTA data feed session based on a number of user-defined criteria. A data feed session always exports a homogeneous dataset based on the specified smonitorclassdesignator and the sdatadesignator tags provides when the session is initialized. http://gpn.webservice.gomez.com/dataexportservice60/gpndataexportservice.asmx?op=opendatafeed3 The request message includes parameters and validation criteria, as described in the following tables. Parameters susername spassword imonitoridset The account username. The account password Requested set of Compuware APMaaS platform Monitor/Test reference Identifiers. This set will be cross-referenced against the smonitorclassdesignator and only requested monitors meeting the specified class criteria will be returned. NOTE Use the Account Management API to retrieve the Compuware APMaaS platform monitor identifiers available to your account. isiteidset Requested set of Compuware APMaaS platform Site reference Identifiers. Empty set denotes all sites. 22
Chapter 2 Data Feed Web Services Parameters NOTE Use the Account Management API to retrieve the Compuware APMaaS platform monitor identifiers available to your account. smonitorclassdesignator sdatadesignator slastn Specifies the type of data to be exported in the dataset based on the common class of tests. Supported values are as follows: UTAT Data sets based on transaction tests running on UTA agents BROWSERT Data sets based on transaction tests running on browser agents. Note that this is a shared schema with UTA. STREAM Data sets based on streaming test running on stream agents. PRIVATEER Data sets based on tests running on Private Peer Network LASTMILE Data sets based on tests running on Last Mile Network MOBILE Data sets based on tests running on Mobile Network Specifies the levels of data in the dataset returned to the client for the type of data specified with the smonitorclassdesignator parameter. Supported values are as follows: ALL Returns all levels of data available. OBJECT Returns SUMMARY, PAGE, and OBJECT level data. Mobile datasets will also include MOBILEET level data. PAGE Returns SUMMARY and PAGE level data. Mobile datasets will also include MOBILEET level data. SUMMARY Returns SUMMARY level data. Mobile datasets will also include MOBILEET level data. TIMEGROUP Returns aggregation data over specified time window, up to 24 hours. (see following parameter descriptions). Indicates a window based on the last N test samples relative to the current time. A value of 1 will spec a data export session which always returns the last test acquired relative to the current time. This parameter can contain any value up to cap enforced by the MaxDataRecordsPerRequest constraint. Any values specified for this parameter which exceed this constraint will be set to the constraint. Ignored when sdatadesignator is TIMEGROUP. 23
Chapter 2 Data Feed Web Services Parameters sstarttime sendtime sorderdesignator Specifies the starting time boundary for the dataset. The format is: YYYY-MM-DD HH:MM:SS Specifies the ending time boundary for the dataset. The format is: YYYY-MM-DD HH:MM:SS Specifies how the dataset will be ordered. Supported values are as follows: TIME Orders data by time. SITE Orders data by site. MONITOR Orders data by monitor class Validation Criteria Validation Criteria Username Password MonitorIdSet SiteIdSet StartTime EndTime MonitorClassDesignator DataDesignator OrderDesignator Data Volume Frequency Concurrency The supplied username is valid for the account. The supplied password is valid for the account. The set of Monitor IDs is valid for the account. The set of Site IDs is valid for the account. The time window start boundary is valid. The time window end boundary is valid. The smonitorclassdesignator value is valid. The sdatadesignator value is valid. The sorderdesignator value is valid. The volume of data does not exceed account constraints The request frequency does not exceed account constraints The request concurrency does not exceed account constraints OpenDataFeed3 Request This represents an alternate version of an OpenDataFeed request using an ARRIVAL versus TEST TIME Filter Interpretation. Web method for initializing the UTA data feed session based on a number of user-defined criteria. A data feed session always exports a homogeneous dataset based on the specified smonitorclassdesignator and the sdatadesignator tags provides when the session is initialized. http://gpn.webservice.gomez.com/dataexportservice60/gpndataexportservice.asmx?op=opendatafeed3 24
Chapter 2 Data Feed Web Services Parameters susername spassword imonitoridset The account username. The account password Requested set of the Compuware APMaaS platform Monitor/Test reference Identifiers. This set will be cross-referenced against the smonitorclassdesignator and only requested monitors meeting the specified class criteria will be returned. NOTE Use the Account Management API to retrieve the Compuware APMaaS platform monitor identifiers available to your account. isiteidset Requested set of the Compuware APMaaS platform Site reference Identifiers. Empty set denotes all sites. NOTE Use the Account Management API to retrieve the Compuware APMaaS platform monitor identifiers available to your account. smonitorclassdesignator sdatadesignator Specifies the type of data to be exported in the dataset based on the common class of tests. Supported values are as follows: UTAT Data sets based on transaction tests running on UTA agents BROWSERT Data sets based on transaction tests running on browser agents. Note that this is a shared schema with UTA. STREAM Data sets based on streaming test running on stream agents. PRIVATEER Data sets based on tests running on Private Peer Network LASTMILE Data sets based on tests running on Last Mile Network MOBILE Data sets based on tests running on Mobile Network Specifies the levels of data in the dataset returned to the client for the type of data specified with the smonitorclassdesignator parameter. Supported values are as follows: ALL Returns all levels of data available. OBJECT Returns SUMMARY, PAGE, and OBJECT level data. Mobile datasets will also include MOBILEET level data. PAGE Returns SUMMARY and PAGE level data. Mobile datasets will also include MOBILEET level data. 25
Chapter 2 Data Feed Web Services Parameters SUMMARY Returns SUMMARY level data. Mobile datasets will also include MOBILEET level data. TIMEGROUP Returns aggregation data over specified time window, up to 24 hours. (see following parameter descriptions). slastn sstarttime sendtime sorderdesignator stimedesignator Indicates a window based on the last N test samples relative to the current time. A value of 1 will spec a data export session which always returns the last test acquired relative to the current time. This parameter can contain any value up to cap enforced by the MaxDataRecordsPerRequest constraint. Any values specified for this parameter which exceed this constraint will be set to the constraint. Ignored when sdatadesignator is TIMEGROUP. Specifies the starting time boundary for the dataset. The format is: YYYY-MM-DD HH:MM:SS Specifies the ending time boundary for the dataset. The format is: YYYY-MM-DD HH:MM:SS Specifies how the dataset will be ordered. Supported values are as follows: TIME Orders data by time. SITE Orders data by site. MONITOR Orders data by monitor class Designation indicating how the time filters and modes are to be applied. Supported values are as follows: TESTTIME_ABSOLUTE Time range filter to be applied relative to the time samples were acquired by remote agents. This is the current default mode of operation for legacy versions of the service. TESTTIME_RELATIVE Time range filter is unused and slastn must be specified. The slastn parameter is interpreted as last N samples relative to the time samples were acquired by remote agents. ARRIVAL_ABSOLUTE Time range filter to be applied relative to the time samples arrived at the central data repositories. This is a new mode of operation. ARRIVAL_RELATIVE Time range filter is unused and slastn must be specified. The slastn parameter is interpreted as last N samples relative to the time samples arrived at the central data repositories. 26
Chapter 2 Data Feed Web Services Validation Criteria Validation Criteria Username Password MonitorIdSet SiteIdSet StartTime EndTime MonitorClassDesignator DataDesignator OrderDesignator Time Designator Data Volume Frequency Concurrency The supplied username is valid for the account. The supplied password is valid for the account. The set of Monitor IDs is valid for the account. The set of Site IDs is valid for the account. The time window start boundary is valid. The time window end boundary is valid. The smonitorclassdesignator value is valid. The sdatadesignator value is valid. The sorderdesignator value is valid. The stimedesignator values are valid. The volume of data does not exceed account constraints. The request frequency does not exceed account constraints. The request concurrency does not exceed account constraints. GetResponseData Request This web method returns the next chunk of the dataset for a specified transaction from each site. Range, content, and volume of data are based on constraints setup when the session was opened with one of the OpenDataFeed web methods and the standard system and account level constraints. http://gpn.webservice.gomez.com/dataexportservice60/gpndataexportservice.asmx?op=getresponsedata Parameters ssessiontoken Unique Identifier issued by the initial OpenDataFeed call for the session. Request Example <soapenv:envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:web="http://gomeznetworks.com/webservices/"> <soapenv:header/> <soapenv:body> <web:getresponsedata> <!--Optional:--> <web:ssessiontoken>39eb9e7d-c0cb-4e62-a806-46cd112e1d8c</web:ssessiontoken> </web:getresponsedata> </soapenv:body> </soapenv:envelope> 27
Chapter 2 Data Feed Web Services Validation Criteria Validation Criteria Session Token Data Volume Frequency Concurrency The ssessiontoken value is valid. The volume of data does not exceed account constraints. The request frequency does not exceed account constraints. The request concurrency does not exceed account constraints. GetResponseData Response This Web method returns an ML message containing: Status of operation Number of data records returned ML subdocument containing Type of data returned APMaaS Synthetic Monitoring Performance Dataset Container Element GetResponseDataResponse Status GpnResponseData Data Element/Attribute estatus serrormessage NumRecords Availability mldocument CurrentTime MonitorDesignator Contains STATUS_SUCCESS or STATUS_FAILED Contains an error message if STATUS_FAILED Contains the number of records exported in the current response The availability of the monitors in the current response. Contains the performance data subdocument (see SD) Contains the time the request was received in GMT. Indicates the "type" of performance data exported in the current request. This reflects the MonitorClassDesignatorvalue specified in the initialization call to the OpenDataFeed service: UTAT BROWSERT STREAM PRIVATE PEER 28
Chapter 2 Data Feed Web Services Container Element Data Element/Attribute Test Streamtest LASTMILE MOBILE For more information, see OpenDataFeed Request [p. 16]. Top level container for test information Refer to the SD for further details. For more information, see Data Export Web Service Response SD [p. 41]. Top level container for streaming test information. Refer to the SD for further details. For more information, see Data Export Web Service Response SD [p. 41]. Sample GetResponseData for Backbone Data For backbone data, a successful call to the GetResponseData web service method returns an ML message similar the following: Sample of a Successful Response Message <soap:envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/mlschema-instance" xmlns:xsd="http://www.w3.org/2001/mlschema"> <soap:body> <GetResponseDataResponse xmlns="http://gomeznetworks.com/webservices/"> <GpnResponseData> <Status> <estatus>status_success</estatus> <serrormessage/> </Status> <NumRecords>2</NumRecords> <CurrentTime>2014-09-10 03:05:43</CurrentTime> <mldocument> <GpnResponseData xmlns=""> <MonitorDesignator MonitorClassDesignator="UTAT"/> <TTEST mid="331606" sid="884" ttime="2014-09-01 00:05:30.447" sname="tpnts10 - Boston, MA - Savvis" rtime="5853" tpt="2" tps="1" tpf="1" tot="27" tos="27" tof="0" nbyte="478513" browsertype="ff35" sipv6ready="0" testipv6pref="ipv6_preferred"> <PAGE pseq="0" rtime="2001" nobj="15" rc200="15" rc300="2" rc400="0" rc500="0" rcnet="0" rcint="0" nbyte="403817" nhost="7" nconn="9" tostat="0" usstat="0" blstat="0" rtobjseq="2" dnssum="107" ndns="7" connsum="536" nconn1="13" sslsum="383" nssl="8" fbsum="896" nfb="17" contsum="593" ncont="17" ptime="1060"> <OBJECT oseq="0" hid="0" connid="0" rc="301" ctype="text/html; charset=utf-8" rtime="62" nbyte="219" fbstart="2014-09-01 00:05:31.587" fbtime="62" contstart="2014-09-01 00:05:31.647" conttime="0" uhost="http://google.com" upage="/" redirobjid="1" spdy="0"/> <OBJECT oseq="1" hid="1" connid="1" rc="302" ctype="text/html; charset=utf-8" rtime="51" nbyte="231" fbstart="2014-09-01 00:05:31.683" fbtime="51" contstart="2014-09-01 00:05:31.737" conttime="0" uhost="http://www.google.com" upage="/" redirobjid="2" spdy="0"/> <OBJECT oseq="2" hid="1" connid="2" rc="200" ctype="text/html; charset=utf-8" rtime="193" nbyte="39776" fbstart="2014-09-01 00:05:32.043" fbtime="104" contstart="2014-09-01 00:05:32.147" conttime="89" uhost="https://www.google.com" upage="/" uparam="?gws_rd=ssl" spdy="0"/> <OBJECT oseq="3" hid="2" connid="3" rc="200" ctype="application/ocsp-response" rtime="64" nbyte="463" fbstart="2014-09-01 00:05:31.863" fbtime="64" contstart="2014-09-01 00:05:31.927" conttime="0" uhost="http://clients1.google.com" upage="/ocsp" spdy="0"/> <OBJECT oseq="4" hid="3" connid="4" rc="200" ctype="application/ocsp-response" rtime="34" nbyte="1454" fbstart="2014-09-01 00:05:32.003" fbtime="34" contstart="2014-09-01 00:05:32.037" conttime="0" uhost="http://gtglobal-ocsp.geotrust.com" upage="/" spdy="0"/> <OBJECT oseq="5" hid="1" connid="2" rc="200" ctype="image/jpeg" rtime="73" nbyte="14022" fbstart="2014-09-01 00:05:32.340" fbtime="44" contstart="2014-09-01 00:05:32.387" conttime="29" uhost="https://www.google.com" upage="/images/srpr/logo11w.png" spdy="0"/> 29
Chapter 2 Data Feed Web Services <OBJECT oseq="6" hid="4" connid="5" rc="200" ctype="image/jpeg" rtime="142" nbyte="53898" fbstart="2014-09-01 00:05:32.537" fbtime="47" contstart="2014-09-01 00:05:32.583" conttime="95" uhost="https://ssl.gstatic.com" upage="/gb/images/v1_2e543709.png" spdy="0"/> <OBJECT oseq="7" hid="1" connid="6" rc="200" ctype="image/png" rtime="131" nbyte="127552" fbstart="2014-09-01 00:05:32.407" fbtime="34" contstart="2014-09-01 00:05:32.440" conttime="97" uhost="https://www.google.com" upage="/xjs/_/js/k=xjs.s.en_us.w-mwpchq9os.o/rs=aitrshenadbs4va" spdy="0"/> <OBJECT oseq="8" hid="2" connid="3" rc="200" ctype="application/ocsp-response" rtime="64" nbyte="463" fbstart="2014-09-01 00:05:32.440" fbtime="64" contstart="2014-09-01 00:05:32.503" conttime="0" uhost="http://clients1.google.com" upage="/ocsp" spdy="0"/> <OBJECT oseq="9" hid="2" connid="3" rc="200" ctype="application/ocsp-response" rtime="65" nbyte="463" fbstart="2014-09-01 00:05:32.503" fbtime="65" contstart="2014-09-01 00:05:32.570" conttime="0" uhost="http://clients1.google.com" upage="/ocsp" spdy="0"/> <OBJECT oseq="10" hid="5" connid="9" rc="200" ctype="image/png" rtime="143" nbyte="51781" fbstart="2014-09-01 00:05:32.793" fbtime="48" contstart="2014-09-01 00:05:32.843" conttime="95" uhost="https://www.gstatic.com" upage="/og/_/js/k=og.og.en_us.ss4npnikgpg.o/rs=aitrs1si444-phs352npq" spdy="0"/> <OBJECT oseq="11" hid="1" connid="6" rc="200" ctype="image/png" rtime="82" nbyte="11614" fbstart="2014-09-01 00:05:32.793" fbtime="81" contstart="2014-09-01 00:05:32.877" conttime="1" uhost="https://www.google.com" upage="/extern_chrome/59debdbe0c85d78b.js" uparam="?bav=on.2,or.r_qf." spdy="0"/> <OBJECT oseq="12" hid="1" connid="2" rc="200" ctype="image/jpeg" rtime="31" nbyte="387" fbstart="2014-09-01 00:05:32.793" fbtime="30" contstart="2014-09-01 00:05:32.823" conttime="1" uhost="https://www.google.com" upage="/textinputassistant/tia.png" spdy="0"/> <OBJECT oseq="13" hid="1" connid="2" rc="200" ctype="image/png" rtime="118" nbyte="37046" fbstart="2014-09-01 00:05:32.827" fbtime="30" contstart="2014-09-01 00:05:32.857" conttime="88" uhost="https://www.google.com" upage="/xjs/_/js/k=xjs.s.en_us.w-mwpchq9os.o/rs=aitn5lhenadbs4va" spdy="0"/> <OBJECT oseq="14" hid="6" connid="12" rc="200" ctype="image/png" rtime="145" nbyte="48234" fbstart="2014-09-01 00:05:33.207" fbtime="48" contstart="2014-09-01 00:05:33.257" conttime="97" uhost="https://apis.google.com" upage="/_/scs/abc-static/_/js/rs=aitrstpppu6cr-g/cb=gapi.loaded_0" spdy="0"/> <OBJECT oseq="15" hid="1" connid="6" rc="200" ctype="image/jpeg" rtime="43" nbyte="16214" fbstart="2014-09-01 00:05:33.430" fbtime="42" contstart="2014-09-01 00:05:33.470" conttime="1" uhost="https://www.google.com" upage="/images/nav_logo195.png" spdy="0"/> <OBJECT oseq="16" hid="1" connid="2" rc="204" ctype="text/html; charset=utf-8" rtime="48" nbyte="0" fbstart="2014-09-01 00:05:33.430" fbtime="48" contstart="2014-09-01 00:05:33.477" conttime="0" uhost="https://www.google.com" upage="/gen_204" uparam="?v=3&s=webhp&action=xjsls.96,prt.96" spdy="0"/> </PAGE> <PAGE pseq="1" rtime="3852" nobj="12" rc200="12" rc300="0" rc400="0" rc500="0" rcnet="0" rcint="0" nbyte="74696" nhost="1" nconn="2" tostat="0" usstat="1" blstat="0" rtobjseq="17" dnssum="0" ndns="0" connsum="0" nconn1="0" sslsum="0" nssl="0" fbsum="676" nfb="12" contsum="290" ncont="12" ptime="1029"> <OBJECT oseq="17" hid="1" connid="6" rc="200" ctype="application/json" rtime="71" nbyte="653" fbstart="2014-09-01 00:05:34.410" fbtime="70" contstart="2014-09-01 00:05:34.480" conttime="1" uhost="https://www.google.com" upage="/s" uparam="?gs_rn=52&gs_ri=psy-ab&cp=1&psi=tlgdvpobygsz7igqbq.14092635.1" spdy="0"> <OBJECT oseq="18" hid="1" connid="6" rc="204" ctype="text/html; charset=utf-8" rtime="47" nbyte="0" fbstart="2014-09-01 00:05:34.517" fbtime="47" contstart="2014-09-01 00:05:34.563" conttime="0" uhost="https://www.google.com" upage="/gen_204" uparam="?atyp=i&ct=1&cad=1&rsm=6&ei=tlgdvp2jc&zx=14504" spdy="0"> <OBJECT oseq="19" hid="1" connid="6" rc="200" ctype="application/json" rtime="69" nbyte="715" fbstart="2014-09-01 00:05:34.947" fbtime="67" contstart="2014-09-01 00:05:35.013" conttime="2" uhost="https://www.google.com" upage="/s" uparam="?gs_rn=52&gs_ri=psy-ab&psi=tlgbygsz7igqbq.140635.1" spdy="0"> <OBJECT oseq="20" hid="1" connid="6" rc="200" ctype="application/json" rtime="65" nbyte="742" fbstart="2014-09-01 00:05:35.443" fbtime="64" contstart="2014-09-01 00:05:35.507" conttime="1" uhost="https://www.google.com" upage="/s" uparam="?gs_rn=52&gs_ri=psy-ab&psi=tlgdvpsz7igqbq.1409529932635.1" spdy="0"> <OBJECT oseq="21" hid="1" connid="6" rc="200" ctype="application/json" rtime="90" nbyte="533" fbstart="2014-09-01 00:05:35.983" fbtime="66" contstart="2014-09-01 00:05:36.050" conttime="24" uhost="https://www.google.com" upage="/s" uparam="?gs_rn=52&psi=tlgdvp2jcjobygsz7igqbq.1409529932635.1" spdy="0"> <OBJECT oseq="22" hid="1" connid="6" rc="200" ctype="application/json" rtime="69" nbyte="602" fbstart="2014-09-01 00:05:36.113" fbtime="67" contstart="2014-09-01 00:05:36.180" conttime="2" uhost="https://www.google.com" upage="/s" uparam="?gs_rn=52&gs_ri=psy-ab&psi=p2jcjobygsz7igqbq.1409529932635.1" spdy="0"> <OBJECT oseq="23" hid="1" connid="6" rc="200" ctype="application/json" rtime="310" nbyte="39430" fbstart="2014-09-01 00:05:36.507" fbtime="56" contstart="2014-09-01 00:05:36.563" conttime="254" uhost="https://www.google.com" upage="/s" uparam="?gs_rn=52&gs_ri=psy-ab&psi=tlgdvp2jcjoby7igqbq.129932635.1" spdy="0"> <OBJECT oseq="24" hid="1" connid="2" rc="200" ctype="application/json" rtime="62" nbyte="772" fbstart="2014-09-01 00:05:36.597" fbtime="59" contstart="2014-09-01 00:05:36.657" conttime="3" uhost="https://www.google.com" upage="/s" uparam="?gs_rn=52&gs_ri=psy-ab&psi=tlgdobygsz7igqbq.140635.1" spdy="0"> <OBJECT oseq="25" hid="1" connid="6" rc="200" ctype="image/png" rtime="31" nbyte="30710" fbstart="2014-09-01 00:05:37.173" fbtime="30" contstart="2014-09-01 00:05:37.203" conttime="1" uhost="https://www.google.com" upage="/xjs/_/js/k=xjs.s.en_us.w-mwpchq9os.o/rs=aitr6r4axoebn5lhenadbs4va" spdy="0"> <OBJECT oseq="26" hid="1" connid="2" rc="204" ctype="text/html; charset=utf-8" rtime="46" nbyte="0" fbstart="2014-09-01 00:05:37.180" fbtime="46" contstart="2014-09-01 00:05:37.227" conttime="0" uhost="https://www.google.com" upage="/gen_204" uparam="?v=3&s=web&rt=prt.235" spdy="0"> <OBJECT oseq="27" hid="1" connid="6" rc="200" ctype="application/json" rtime="60" nbyte="539" fbstart="2014-09-01 00:05:37.677" fbtime="58" contstart="2014-09-01 00:05:37.733" conttime="2" uhost="https://www.google.com" upage="/s" 30
Chapter 2 Data Feed Web Services uparam="?gs_rn=52&gs_ri=psy-ab&psi=tlgdvp2jcjobygsz7igqbq.1409529932635.1" spdy="0"> <OBJECT oseq="28" hid="1" connid="6" rc="204" ctype="text/html; charset=utf-8" rtime="46" nbyte="0" fbstart="2014-09-01 00:05:38.217" fbtime="46" contstart="2014-09-01 00:05:38.263" conttime="0" uhost="https://www.google.com" upage="/gen_204" uparam="?atyp=i&ct=1&cad=1&q=compuware&oq=compuware&gs_l=hp.10" spdy="0"/> </PAGE> <HOST hid="0" page="0" dnsstart="2014-09-01 00:05:31.477" dnstime="61" nbyte="219" nerr="0" nobj="0" nconn="1" ip="2607:f8b0:4004:0802:0000:0000:0000:1002" isipv6="1"> <CONN connid="0" page="0" rtime="110" connstart="2014-09-01 00:05:31.537" conntime="48" nbyte="219" nerr="0" nobj="0"/> </HOST> <HOST hid="1" page="0" dnsstart="2014-09-01 00:05:31.653" dnstime="2" nbyte="321538" nerr="0" nobj="20" nconn="4" ip="2607:f8b0:4009:0803:0000:0000:0000:1014" isipv6="1"> <CONN connid="1" page="0" rtime="81" connstart="2014-09-01 00:05:31.653" conntime="30" nbyte="231" nerr="0" nobj="0"/> <CONN connid="2" page="0" rtime="5484" connstart="2014-09-01 00:05:31.740" conntime="30" sslstart="2014-09-01 00:05:31.770" ssltime="40" nbyte="92003" nerr="0" nobj="7"/> <CONN connid="6" page="0" rtime="5919" connstart="2014-09-01 00:05:32.343" conntime="29" sslstart="2014-09-01 00:05:32.373" ssltime="31" nbyte="229304" nerr="0" nobj="13"/> <CONN connid="10" page="0" rtime="60" connstart="2014-09-01 00:05:32.797" conntime="29" sslstart="2014-09-01 00:05:32.827" ssltime="30" nbyte="0" nerr="0" nobj="0"/> </HOST> <HOST hid="2" page="0" dnsstart="2014-09-01 00:05:31.810" dnstime="2" nbyte="1389" nerr="0" nobj="3" nconn="2" ip="2607:f8b0:4004:0802:0000:0000:0000:1003" isipv6="1"> <CONN connid="3" page="0" rtime="756" connstart="2014-09-01 00:05:31.813" conntime="48" nbyte="1389" nerr="0" nobj="3"/> <CONN connid="8" page="0" rtime="56" connstart="2014-09-01 00:05:32.480" conntime="56" nbyte="0" nerr="0" nobj="0"/> </HOST> <HOST hid="3" page="0" dnsstart="2014-09-01 00:05:31.937" dnstime="39" nbyte="1454" nerr="0" nobj="1" nconn="1" ip="199.7.48.72" isipv6="0"> <CONN connid="4" page="0" rtime="63" connstart="2014-09-01 00:05:31.973" conntime="29" nbyte="1454" nerr="0" nobj="1"/> </HOST> <HOST hid="4" page="0" dnsstart="2014-09-01 00:05:32.333" dnstime="1" nbyte="53898" nerr="0" nobj="1" nconn="2" ip="2607:f8b0:4004:0803:0000:0000:0000:1017" isipv6="1"> <CONN connid="5" page="0" rtime="343" connstart="2014-09-01 00:05:32.333" conntime="47" sslstart="2014-09-01 00:05:32.380" ssltime="58" nbyte="53898" nerr="0" nobj="1"/> <CONN connid="7" page="0" rtime="106" connstart="2014-09-01 00:05:32.373" conntime="48" sslstart="2014-09-01 00:05:32.423" ssltime="58" nbyte="0" nerr="0" nobj="0"/> </HOST> <HOST hid="5" page="0" dnsstart="2014-09-01 00:05:32.537" dnstime="1" nbyte="51781" nerr="0" nobj="1" nconn="2" ip="2607:f8b0:4004:0803:0000:0000:0000:1018" isipv6="1"> <CONN connid="9" page="0" rtime="399" connstart="2014-09-01 00:05:32.537" conntime="47" sslstart="2014-09-01 00:05:32.587" ssltime="59" nbyte="51781" nerr="0" nobj="1"/> <CONN connid="11" page="0" rtime="96" connstart="2014-09-01 00:05:32.797" conntime="47" sslstart="2014-09-01 00:05:32.847" ssltime="48" nbyte="0" nerr="0" nobj="0"/> </HOST> <HOST hid="6" page="0" dnsstart="2014-09-01 00:05:33.050" dnstime="1" nbyte="48234" nerr="0" nobj="1" nconn="1" ip="2607:f8b0:4004:0802:0000:0000:0000:1002" isipv6="1"> <CONN connid="12" page="0" rtime="301" connstart="2014-09-01 00:05:33.053" conntime="48" sslstart="2014-09-01 00:05:33.100" ssltime="59" nbyte="48234" nerr="0" nobj="1"/> </HOST> <W3CPAGE rootstepseq="0" w3cseq="0" navstart="2014-09-01 00:05:31.447" fchstart="292" dlkstart="292" dlkend="292" constart="292" conend="292" reqstart="598" rspstart="702" rspend="791" domld="709" domint="841" dcldstart="862" dcldend="885" domcmpl="1964" ldstart="1964" ldend="1967" fchtime="0" dnstime="0" contime="0" reqtime="104" rsptime="89"/> </TTEST> <TTEST mid="331606" sid="887" ttime="2014-09-01 00:11:42.720" sname="tpnts11 - Boston, MA - Savvis" rtime="6237" tpt="2" tps="1" tpf="1" tot="27" tos="27" tof="0" nbyte="480094" browsertype="ff35" sipv6ready="1" testipv6pref="ipv6_preferred"> <PAGE pseq="0" rtime="2381" nobj="15" rc200="15" rc300="2" rc400="0" rc500="0" rcnet="0" rcint="0" nbyte="404890" nhost="7" nconn="9" tostat="0" usstat="0" blstat="0" rtobjseq="2" dnssum="90" ndns="7" connsum="668" nconn1="13" sslsum="452" nssl="8" fbsum="1050" nfb="17" contsum="1355" ncont="17" ptime="951"> <OBJECT oseq="0" hid="0" connid="0" rc="301" rtime="62" nbyte="219" fbstart="2014-09-01 00:11:43.313" fbtime="62" contstart="2014-09-01 00:11:43.377" conttime="0" uhost="http://google.com" upage="/" redirobjid="1" spdy="0"/> <OBJECT oseq="1" hid="1" connid="1" rc="302" rtime="50" nbyte="231" fbstart="2014-09-01 00:11:43.413" fbtime="50" contstart="2014-09-01 00:11:43.463" conttime="0" uhost="http://www.google.com" upage="/" redirobjid="2" spdy="0"/> <OBJECT oseq="2" hid="1" connid="2" rc="200" rtime="182" nbyte="40954" fbstart="2014-09-01 00:11:43.880" fbtime="110" contstart="2014-09-01 00:11:43.990" conttime="72" uhost="https://www.google.com" upage="/" uparam="?gws_rd=ssl" spdy="0"/> <OBJECT oseq="3" hid="2" connid="3" rc="200" rtime="68" nbyte="463" fbstart="2014-09-01 00:11:43.597" fbtime="68" contstart="2014-09-01 00:11:43.667" conttime="0" uhost="http://clients1.google.com" upage="/ocsp" spdy="0"/> <OBJECT oseq="4" hid="3" connid="4" rc="200" rtime="87" nbyte="1454" fbstart="2014-09-01 00:11:43.790" fbtime="87" contstart="2014-09-01 00:11:43.877" conttime="0" uhost="http://gtglobal-ocsp.geotrust.com" upage="/" spdy="0"/> <OBJECT oseq="5" hid="1" connid="2" rc="200" rtime="55" nbyte="14022" fbstart="2014-09-01 00:11:44.200" fbtime="54" contstart="2014-09-01 00:11:44.253" conttime="1" uhost="https://www.google.com" upage="/images/srpr/logo11w.png" spdy="0"/> <OBJECT oseq="6" hid="4" connid="5" rc="200" rtime="234" nbyte="53898" fbstart="2014-09-01 00:11:44.400" fbtime="56" contstart="2014-09-01 00:11:44.457" conttime="178" uhost="https://ssl.gstatic.com" upage="/gb/images/v1_2e543709.png" spdy="0"/> <OBJECT oseq="7" hid="1" connid="6" rc="200" rtime="151" nbyte="127552" fbstart="2014-09-01 00:11:44.283" fbtime="33" contstart="2014-09-01 00:11:44.317" conttime="118" uhost="https://www.google.com" 31
Chapter 2 Data Feed Web Services upage="/xjs/_/js/k=xjs.s.en_us.w-mwpchq9os.o/rs=aitrstngdszj6r4axoenadbs4va" spdy="0"/> <OBJECT oseq="8" hid="2" connid="3" rc="200" rtime="76" nbyte="463" fbstart="2014-09-01 00:11:44.317" fbtime="76" contstart="2014-09-01 00:11:44.393" conttime="0" uhost="http://clients1.google.com" upage="/ocsp" spdy="0"/> <OBJECT oseq="9" hid="2" connid="3" rc="200" rtime="72" nbyte="463" fbstart="2014-09-01 00:11:44.393" fbtime="71" contstart="2014-09-01 00:11:44.463" conttime="1" uhost="http://clients1.google.com" upage="/ocsp" spdy="0"/> <OBJECT oseq="10" hid="5" connid="9" rc="200" rtime="162" nbyte="51781" fbstart="2014-09-01 00:11:44.633" fbtime="51" contstart="2014-09-01 00:11:44.687" conttime="111" uhost="https://www.gstatic.com" upage="/og/_/js/k=og.og.en_us.ss4npnikgpg.o/rs=aitrstoit751si444-phs352npq" spdy="0"/> <OBJECT oseq="11" hid="1" connid="6" rc="200" rtime="74" nbyte="11509" fbstart="2014-09-01 00:11:44.653" fbtime="73" contstart="2014-09-01 00:11:44.727" conttime="1" uhost="https://www.google.com" upage="/extern_chrome/7c7feab62847a459.js" uparam="?bav=on.2,or.r_qf." spdy="0"/> <OBJECT oseq="12" hid="1" connid="2" rc="200" rtime="43" nbyte="387" fbstart="2014-09-01 00:11:44.653" fbtime="43" contstart="2014-09-01 00:11:44.697" conttime="0" uhost="https://www.google.com" upage="/textinputassistant/tia.png" spdy="0"/> <OBJECT oseq="13" hid="1" connid="2" rc="200" rtime="684" nbyte="37046" fbstart="2014-09-01 00:11:44.697" fbtime="40" contstart="2014-09-01 00:11:44.737" conttime="644" uhost="https://www.google.com" upage="/xjs/_/js/k=xjs.s.en_us.w-mwpchq9os.o/rs=aitrstnjxoebn5lhenadbs4va" spdy="0"/> <OBJECT oseq="14" hid="6" connid="12" rc="200" rtime="167" nbyte="48234" fbstart="2014-09-01 00:11:45.053" fbtime="54" contstart="2014-09-01 00:11:45.107" conttime="113" uhost="https://apis.google.com" upage="/_/scs/abc-static/_/js/rs=aitrstnql1vbldpppu6cr-g/cb=gapi.loaded_0" spdy="0"/> <OBJECT oseq="15" hid="1" connid="6" rc="200" rtime="174" nbyte="16214" fbstart="2014-09-01 00:11:45.420" fbtime="58" contstart="2014-09-01 00:11:45.477" conttime="116" uhost="https://www.google.com" upage="/images/nav_logo195.png" spdy="0"/> <OBJECT oseq="16" hid="1" connid="2" rc="204" rtime="64" nbyte="0" fbstart="2014-09-01 00:11:45.420" fbtime="64" contstart="2014-09-01 00:11:45.483" conttime="0" uhost="https://www.google.com" upage="/gen_204" uparam="?v=3&s=webhp&rt=xjsls.100,prt.101,rqst.183,rspt.73" spdy="0"/> </PAGE> <HOST hid="0" page="0" dnsstart="2014-09-01 00:11:43.213" dnstime="52" nbyte="219" nerr="0" nobj="0" nconn="1" ip="2607:f8b0:4004:0800:0000:0000:0000:1003" isipv6="1"> <CONN connid="0" page="0" rtime="111" connstart="2014-09-01 00:11:43.263" conntime="49" nbyte="219" nerr="0" nobj="0"/> </HOST> <HOST hid="1" page="0" dnsstart="2014-09-01 00:11:43.380" dnstime="0" nbyte="323119" nerr="0" nobj="20" nconn="4" ip="2607:f8b0:4009:0801:0000:0000:0000:1010" isipv6="1"> <CONN connid="1" page="0" rtime="81" connstart="2014-09-01 00:11:43.380" conntime="31" nbyte="231" nerr="0" nobj="0"/> <CONN connid="2" page="0" rtime="5763" connstart="2014-09-01 00:11:43.467" conntime="30" sslstart="2014-09-01 00:11:43.497" ssltime="41" nbyte="92977" nerr="0" nobj="7"/> <CONN connid="6" page="0" rtime="6031" connstart="2014-09-01 00:11:44.203" conntime="38" sslstart="2014-09-01 00:11:44.240" ssltime="43" nbyte="229911" nerr="0" nobj="13"/> <CONN connid="11" page="0" rtime="87" connstart="2014-09-01 00:11:44.653" conntime="43" sslstart="2014-09-01 00:11:44.697" ssltime="43" nbyte="0" nerr="0" nobj="0"/> </HOST> <HOST hid="2" page="0" dnsstart="2014-09-01 00:11:43.537" dnstime="1" nbyte="1389" nerr="0" nobj="3" nconn="2" ip="2607:f8b0:4004:0800:0000:0000:0000:1000" isipv6="1"> <CONN connid="3" page="0" rtime="925" connstart="2014-09-01 00:11:43.540" conntime="58" nbyte="1389" nerr="0" nobj="3"/> <CONN connid="8" page="0" rtime="56" connstart="2014-09-01 00:11:44.373" conntime="56" nbyte="0" nerr="0" nobj="0"/> </HOST> <HOST hid="3" page="0" dnsstart="2014-09-01 00:11:43.670" dnstime="33" nbyte="1454" nerr="0" nobj="1" nconn="1" ip="199.7.54.72" isipv6="0"> <CONN connid="4" page="0" rtime="172" connstart="2014-09-01 00:11:43.703" conntime="84" nbyte="1454" nerr="0" nobj="1"/> </HOST> <HOST hid="4" page="0" dnsstart="2014-09-01 00:11:44.197" dnstime="1" nbyte="53898" nerr="0" nobj="1" nconn="2" ip="2607:f8b0:4004:0801:0000:0000:0000:1017" isipv6="1"> <CONN connid="5" page="0" rtime="435" connstart="2014-09-01 00:11:44.200" conntime="55" sslstart="2014-09-01 00:11:44.253" ssltime="62" nbyte="53898" nerr="0" nobj="1"/> <CONN connid="7" page="0" rtime="124" connstart="2014-09-01 00:11:44.240" conntime="55" sslstart="2014-09-01 00:11:44.297" ssltime="68" nbyte="0" nerr="0" nobj="0"/> </HOST> <HOST hid="5" page="0" dnsstart="2014-09-01 00:11:44.397" dnstime="1" nbyte="51781" nerr="0" nobj="1" nconn="2" ip="2607:f8b0:4004:0801:0000:0000:0000:101f" isipv6="1"> <CONN connid="9" page="0" rtime="400" connstart="2014-09-01 00:11:44.397" conntime="54" sslstart="2014-09-01 00:11:44.450" ssltime="62" nbyte="51781" nerr="0" nobj="1"/> <CONN connid="10" page="0" rtime="119" connstart="2014-09-01 00:11:44.430" conntime="55" sslstart="2014-09-01 00:11:44.483" ssltime="64" nbyte="0" nerr="0" nobj="0"/> </HOST> <HOST hid="6" page="0" dnsstart="2014-09-01 00:11:44.857" dnstime="2" nbyte="48234" nerr="0" nobj="1" nconn="1" ip="2607:f8b0:4004:0800:0000:0000:0000:1005" isipv6="1"> <CONN connid="12" page="0" rtime="360" connstart="2014-09-01 00:11:44.860" conntime="60" sslstart="2014-09-01 00:11:44.920" ssltime="69" nbyte="48234" nerr="0" nobj="1"/> </HOST> <W3CPAGE rootstepseq="0" w3cseq="0" navstart="2014-09-01 00:11:43.190" fchstart="275" dlkstart="275" dlkend="275" constart="275" conend="275" reqstart="691" rspstart="801" rspend="874" domld="805" domint="936" dcldstart="979" dcldend="1005" domcmpl="2219" ldstart="2219" ldend="2221" fchtime="0" dnstime="0" contime="0" reqtime="110" rsptime="73"/> </TTEST> </GpnResponseData> </mldocument> </GpnResponseData> </GetResponseDataResponse> 32
Chapter 2 Data Feed Web Services </soap:body> </soap:envelope> Sample GetResponseData for Streaming Data For a streaming data type, a successful call to the GetResponseData web service method returns an ML message similar the following: Sample of a Successful Response Message <soap:envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/mlschema-instance" xmlns:xsd="http://www.w3.org/2001/mlschema"> <soap:body> <GetResponseDataResponse xmlns="http://gomeznetworks.com/webservices/"> <GpnResponseData> <Status> <estatus>status_success</estatus> <serrormessage/> </Status> <NumRecords>177</NumRecords> <Availability> <STREAMAVAILABLITY mid="486209" avail="95.00%" total_count="100" failed_count="5"/> </Availability> <CurrentTime>2014-01-15 17:49:54</CurrentTime> <mldocument> <GpnResponseData xmlns=""> <MonitorDesignator MonitorClassDesignator="STREAM"/> <STREAMTEST mid="486209" sid="862" ttime="2014-01-26t00:00:11.777+00:00" pseq="-1" sseq="0" stime="2014-01-26t00:00:34.327+00:00" errrsyscode="0" errrawcode="0" sproto="rtmp" ip="206.190.57.82" url="rtmp://c-caa12793db.a-condenastvideos.i-ce1ff7e8.rtmp.atlas.cdn. yimg.com/mp4:condenastvideos/lotus/1379426706296_402_21ysryousubf1_6_0?b=7530&m=video% 2fmp4&x=1391299230&s=fbe148f21a8f739bf29846692d9ca24e" durinms="112735" fps="24" endtype="success" bps="786714" stype="fms" sver="4,5,5,4013" dnsoffset="333" dnstime="198" connoffset="531" conntime="102" initbuftime="125" rebuftime="-1" rebufcnt="0" initplytime="112735" spt="990" plycnt="1" initialdatareceivetime="232"> <EVENT sevt_id="0" name="connect_start" offset="531"/> <EVENT sevt_id="1" name="connect_end" offset="633"/> <EVENT sevt_id="2" name="ready" offset="834"/> <EVENT sevt_id="3" name="metadatareceived" offset="865"/> <EVENT sevt_id="4" name="buffer" offset="865"/> <EVENT sevt_id="5" name="play" offset="990"/> <EVENT sevt_id="6" name="complete" offset="113725"/> <EVENT sevt_id="7" name="closed" offset="113725"/> <META metaseq="0" smetakey="mediaformat" smetaval="flash media"/> <META metaseq="1" smetakey="framesize" smetaval="-1"/> <META metaseq="2" smetakey="totalbytes" smetaval="-1"/> <META metaseq="3" smetakey="framerate" smetaval="-1"/> <META metaseq="4" smetakey="recommendedframerate" smetaval="-1"/> <META metaseq="5" smetakey="recommendedbandwidth" smetaval="-1"/> <META metaseq="6" smetakey="recommendedduation" smetaval="113902"/> <META metaseq="7" smetakey="diagnosticheader" smetaval="_result&crlf;fmsver: FMS/4,5,5,4013&crlf;capabilities: 255&crlf;mode: 1&crlf;level: status&crlf;code: NetConnection.Connect.Success&crlf;description: Connection succeeded.&crlf;objectencoding: 3&crlf;"/> <META metaseq="8" smetakey="receivedbytes" smetaval="11115190"/> <META metaseq="9" smetakey="downloadtime" smetaval="113029"/> </STREAMTEST> </GpnResponseData> </mldocument> </GpnResponseData> </GetResponseDataResponse> </soap:body> </soap:envelope> GetErrorCodes Request GetErrorCodes is a web method for exporting raw error codes and definitions. http://gpn.webservice.gomez.com/dataexportservice60/gpndataexportservice.asmx?op=geterrorcodes± Parameters n/a 33
Chapter 2 Data Feed Web Services GetErrorCodes Response GetErrorCodes returns an xml message containing all of the Test Response Error Codes and definitions. Container Element GetErrorCodes Status ErrorCodes Data Element/Attribute estatus serrormessage ErrorNum Contains STATUS_SUCCESS or STATUS_FAILED. Contains an error message if STATUS_FAILED. Contains the error code number. Contains short error description text. CloseDataFeed Request Web method for closing an active data feed session. Calling this method causes expiration of the Virtual Session Token. Parameters ssessiontoken Unique Identifier issued by the initial OpenDataFeed call for the session. CloseDataFeed Response Web method returns an ML message containing the status of operation. Container Element CloseDataFeed Status Data Element/Attribute estatus serrormessage Contains STATUS_SUCCESS or STATUS_FAILED. Contains an error message if STATUS_FAILED. Data Service Security All interactions with the Data Services require authentication by user name and password or via issued session tokens. The credentials used to access the service require: A valid account user. The user is configured with the proper access to the API. 34
CHAPTER 3 FTP Data Feeds The FTP data feed is the preferred method of downloading large amounts of data from the Compuware APMaaS platform for integration with customer applications. Access FTP Data Feed Files Follow this procedure to access the FTP data feed files in your FTP account directory. Before You Begin To start receiving an FTP Data Feed, you need to do two things: Create tests using the APMaaS Portal or GPN Portal. Obtain an FTP data feed login from Customer Support After you obtain your FTP data feed login, you automatically receive test results in your FTP account directory. 1. Open Windows Explorer. 2. In the Address field enter: ftp://ftp.gomez.com/ 3. From the menu, select File Login As. The Log On As dialog box is displayed. 4. Enter your FTP data feed credentials in the User name and Password fields and click Log On. 5. Depending on the tests you have set up in your account, APMaaS Synthetic Monitoring will have deposited one or more FTP data feed files in your FTP account directory. For more information, see FTP Data Feed File Information [p. 35]. FTP Data Feed File Information Each FTP data feed is a.zip file containing one or more files with names in the following format: [t to lm lmo monitor site]-year-month-day_hour-minute.* 35
Chapter 3 FTP Data Feeds Data Feed Type T File Layout [p. 36] TO File Layout [p. 38] LM File Layout [p. 38] LMO File Layout [p. 39] Monitor File Layout [p. 37] Site File Layout [p. 37] Data Source UTA UTA object-level * Last Mile Last Mile object-level * Monitor test data Node (site) test data *Contact Customer Support to use this data feed. All of the.zip files contain at least one text file that contains test result data. The.zip file for the T data feed contains these additional files: T file Contains test result data. Monitor file Contains monitor-specific information. Site file Contains site-specific information. Each text file in the data feed is in pipe-separated ( ) value format. Each value is encased in double quotes since many values contain commas and spaces. T File Layout FTP data feed T files contain UTA test data. Each text file in the data feed is in pipe-separated ( ) value format. Each value is encased in double quotes since many values contain commas and spaces. Field monitor_id testtime site_id mrresponsetime seqno status troresponsetime url Unique test identifier. Test time in GMT. Node where the test ran. Response time in milliseconds. Sum all the troresponsetimes for a given seqno in this file to obtain the mrresponsetime. This field is NULL, if the test fails. Page number of the test. "0" if success; error code, if failure. Response time in milliseconds of the page. Sum all the troresponsetimes for a given seqno in this file to obtain the mrresponsetime. This field is NULL, if the test fails. URL of the page tested. 36
Chapter 3 FTP Data Feeds Field name RealURLFlag Name of the node where the test ran. Always "0". Monitor File Layout This file lists test (monitor) data. Each text file in the data feed is in pipe-separated ( ) value format. Each value is encased in double quotes since many values contain commas and spaces. Field Monitor_id Class URL ComponentFlag Status Frequency CreateDate ModDate Unique test identifier. of the test. TRANSACTION (for UTA Agent). If class=monitor then URL of the test: otherwise, NULL. 1 if page objects are downloaded, 0 otherwise. ACTIVE, INACTIVE, or DELETE. Interval that the test runs in number of milliseconds. For example, frequency=3600 means that the test runs once every hour. Date when the test was created. Date when the test was last changed. Site File Layout This file lists node (site) data. Each text file in the data feed is in pipe-separated ( ) value format. Each value is encased in double quotes since many values contain commas and spaces. Field site_id name Status backbone City State CountryCode ipaddress Unique node identifier. Name of the node. ACTIVE, INACTIVE, or DELETE Internet Service Provider of the data center node. City of the data center node. State of the data center node. Country code of the data center node. IP address of the data center node. 37
Chapter 3 FTP Data Feeds LM File Layout This file contains Last Mile test data. Each text file in the data feed is in pipe-separated ( ) value format. Each value is encased in double quotes since many values contain commas and spaces. Field mgbmonitor_id testtime mrresponsetime seqno status troresponsetime url name IP LMA_id LMA_REGION_NAME LMA_ISP_NAME LMA_IP_ADDRESS avgthruput compbytes PreTestBandwidth PostTestBandwidth ActualBandwidth Unique test identifier. Test time in GMT. Response time in milliseconds; NULL, if test fails. Page number of the test. "0" if success; error code if failure. Response time in milliseconds of the page. Sum all the troresponsetimes for a given seqno in this file to obtain the mrresponsetime. This field is NULL, if the test fails. URL of the page tested. Name of the node where the test ran. IP address of the url. Unique identifier of the Last Mile computer. Region of the Last Mile computer. Internet Service Provider of the Last Mile computer. IP address of the Last Mile computer. Average throughput in bits per second of the Last Mile machine. Total bytes downloaded; "0" if test fails. The available bandwidth before the test run. The available bandwidth after the test run. The actual bandwidth during the test run. TO File Layout The TO file contains Backbone UTA object-level test data. This data feed requires special set up. Contact Customer Support to activate this data feed. Each text file in the data feed is in pipe-separated ( ) value format. Each value is encased in double quotes since many values contain commas and spaces. Field monitor_id testtime Unique test identifier. Test time in GMT. 38
Chapter 3 FTP Data Feeds Field site_id sitename mrresponsetime pageseqnum pagestatus pageresponsetime url compreturncode. compdns compconnect compssl compfirstbyte compcontent compip objseqnum host_id connection_id Unique node identifier of the site where the test ran. Name of the node where the test ran. Response time in milliseconds; NULL, if test fails. Page number of the test. GOOD if success; APMaaS Synthetic Monitoring error code if failure. Response time in milliseconds of the page. Sum all the pageresponsetimes for a given seqno in this file to obtain the mrresponsetime. This field is NULL, if the test fails. URL of an object on the page. HTTP return code of the object. Usually "0", but if the first object, the time in milliseconds to DNS connect. Time in milliseconds to connect to the object. Time in milliseconds to SSL connect to the object. Time in milliseconds to download the first byte of the object. Time in milliseconds to download the object. IP address of the server hosting the object. Sequence number of the object relative to the entire test. Sequence number of the host relative to the entire test. Sequence number of the connection relative to the entire test. LMO File Layout The LMO file contains Last Mile object-level test data. This data feed requires special set up. Contact Customer Support to activate this data feed. Each text file in the data feed is in pipe-separated ( ) value format. Each value is encased in double quotes since many values contain commas and spaces. Field monitor_id testtime site_id mrresponsetime pageseqnum pagestatus Unique test identifier. Test time in GMT. Unique node identifier of the site where the test ran. Response time in milliseconds; NULL, if test fails. Page number of the test. GOOD if success; error code if failure. 39
Chapter 3 FTP Data Feeds Field pageresponsetime url compreturncode compdns compconnect compssl compfirstbyte compcontent compip objseqnum host_id connection_id peer_region_name peer_isp_name peer_ip_address avgthruput numbytes Response time in milliseconds of the page. Sum all the pageresponsetimes for a given seqno in this file to obtain the mrresponsetime. This field is NULL, if the test fails. URL of an object on the page. HTTP return code of the object. Usually "0", but if the first object, the time in milliseconds to DNS connect. Time in milliseconds to connect to the object. Time in milliseconds to SSL connect to the object. Time in milliseconds to download the first byte of the object. Time in milliseconds to download the object. IP address of the server hosting the object. Sequence number of the object relative to the entire test. Sequence number of the host relative to the entire test. Sequence number of the connection relative to the entire test. Name of the region where the peer is located. ISP used by the peer. IP address of the peer. Average throughput in bits per second of the Last Mile machine. Total bytes downloaded for the object. 40
APPENDI A Data Export Web Service Response SD <?xml version="1.0" encoding="utf-8"?> <!-- ******************************************************* : GPN DATA EPORT WEB SERVICE v6.0 Created : 11.11.2009 Revision : 1.1-11.11.2009 - Initial 1.2-11.24.2009 - Mobile Extensions Added ******************************************************** --> <xs:schema xmlns:xs="http://www.w3.org/2001/mlschema" elementformdefault="qualified"> <!-- *************************************************** Top Level Service Response *************************************************** --> <xs:element name="gpnresponsedata" type="cgpnuniversalmldocresponse" nillable="true"/> <xs:complextype name="cgpnuniversalmldocresponse"> <xs:sequence> <!-- Response Status --> <xs:element name="status" type="copstatusdata" minoccurs="0"/> <!-- Number of Data Records Contained in the Response --> <xs:element name="numrecords" type="xs:int"/> <!-- Availability Data Payload --> <xs:element name="availability" type="availabilitytype" minoccurs="0"/> <!-- Server Time Response Generated --> <xs:element name="currenttime" type="xs:string" minoccurs="0"/> <!-- Response Data Payload --> <xs:element name="mldocument" type="mldocumenttype" minoccurs="0"/> </xs:sequence> </xs:complextype> <!-- *************************************************** Top Level Response Data Payload *************************************************** --> <xs:complextype name="mldocumenttype"> <xs:sequence minoccurs="0"> <xs:element name="gpnresponsedata" type="gpnresponsedatatype"/> </xs:sequence> </xs:complextype> <!-- *************************************************** Top Level Availability Data Payload *************************************************** --> <xs:complextype name="availabilitytype"> <xs:sequence minoccurs="0"> <xs:element name="streamavailablity" type="gpnstreamavailabilitydatatype"/> </xs:sequence> </xs:complextype> <!-- *************************************************** Response Data Payload Type *************************************************** --> <xs:complextype name="gpnresponsedatatype"> <xs:sequence> <!-- Monitor Designator - Reflects Requested Type --> <xs:element name="monitordesignator" type="monitorclassdesignatortype"/> <!-- Specific Data Schema Type --> <xs:choice minoccurs="0" maxoccurs="unbounded"> <!-- Transaction Test Data Type --> <xs:element name="ttest" type="txtesttype"/> <!-- Transaction Time Group Data Type --> <xs:element name="ttimegroup" type="txtimegrouptype"/> <!-- Stream Test Data Type --> 41
Appendix A Data Export Web Service Response SD <xs:element name="streamtest" type="streamtesttype"/> <!-- Single Url Test Data Type--> <xs:element name="singleurltest" type="singleurltesttype"/> <!-- Data Cut Data Type --> <xs:element name="datacut" type="datacuttesttype"/> <!-- General Message Data Type --> <xs:element name="message" type="messagetype" minoccurs="0"/> </xs:choice> </xs:sequence> </xs:complextype> <!-- *************************************************** Availability Data Payload Type *************************************************** --> <xs:complextype name="gpnstreamavailabilitydatatype"> <xs:attribute name="mid" type="xs:int"/> <xs:attribute name="avail" type="xs:string"/> <xs:attribute name="total_count" type="xs:int"/> <xs:attribute name="failed_count" type="xs:int"/> </xs:complextype> <!-- *************************************************** Transaction Timegroup Response Type Applies to Backbone Transactions Only *************************************************** --> <xs:complextype name="txtimegrouptype"> <xs:attribute name="monitor_id" type="xs:int" use="required"/> <xs:attribute name="avail" type="xs:float" use="required"/> <xs:attribute name="avgresp" type="xs:float" use="required"/> <xs:attribute name="avgdns" type="xs:float" use="required"/> <xs:attribute name="avgconnect" type="xs:float" use="required"/> <xs:attribute name="avgfirstbyte" type="xs:float" use="required"/> <xs:attribute name="avgcontent" type="xs:float" use="required"/> </xs:complextype> <!-- ************************************** Transaction Response Type ************************************* --> <xs:complextype name="txtesttype"> <xs:sequence> <!-- Mobile Extension Element --> <xs:element name="mobileet" minoccurs="0" maxoccurs="1"> <xs:complextype> <xs:attribute name="carrier"> <xs:maxlength value="200"/> <xs:attribute name="location"> <xs:maxlength value="200"/> <xs:attribute name="connspeed"> <xs:maxlength value="30"/> <xs:attribute name="conntype"> <xs:maxlength value="30"/> <xs:attribute name="signalstrength" type="xs:int"/> <xs:attribute name="popid" type="xs:int"/> </xs:complextype> </xs:element> <!-- LM Peer Machine Info --> <xs:element name="machineinfo" type="machineinfo" minoccurs="0" maxoccurs="1"/> <!-- Transaction Page Element --> <xs:element name="page" minoccurs="0" maxoccurs="unbounded"> <xs:complextype> <xs:sequence> <!-- Transaction Object Element --> <xs:element name="object" minoccurs="0" maxoccurs="unbounded"> <xs:complextype> <!-- LM Object Header --> <xs:sequence> <!-- Request Header --> <xs:element name="objectreqheader" type="objectheader" minoccurs="0" maxoccurs="unbounded"/> <!-- Response Header --> <xs:element name="objectrespeader" type="objectheader" minoccurs="0" maxoccurs="unbounded"/> </xs:sequence> <!-- Site Id, For LastMile only --> <xs:attribute name="siteid" type="xs:int" use="optional"/> <!-- Unique Object Sequence Id --> <xs:attribute name="oseq" type="xs:int" use="required"/> <!-- Host Id (Reference to HOST.hid)--> <xs:attribute name="hid" type="xs:int"/> <!-- Connection Id (Reference to CONN.connid) --> <xs:attribute name="connid" type="xs:int"/> <!-- Return Status Code for Object --> <xs:attribute name="rc" type="xs:int"/> 42
Appendix A Data Export Web Service Response SD <!-- MIME Content Type of the Object (when rc < 300) --> <xs:attribute name="ctype"> <xs:maxlength value="32"/> <!-- Response Time of the Object in Milliseconds --> <xs:attribute name="rtime" type="xs:int"/> <!-- Total Number of Object Bytes Downloaded --> <xs:attribute name="nbyte" type="xs:int"/> <!-- Start Timestamp when first "byte" (packet) was received for the object in GMT {yyyy-mm-dd hh:mm:ss.fff}--> <xs:attribute name="fbstart"> <xs:maxlength value="32"/> <!-- Time to download the first "byte" (packet) for the object in milliseconds --> <xs:attribute name="fbtime" type="xs:int"/> <!-- Start Timestamp when second "byte" (packet) was received for the object in GMT {yyyy-mm-dd hh:mm:ss.fff} --> <xs:attribute name="contstart"> <xs:maxlength value="32"/> <!-- Time to download the second "byte" (packet) for the object in milliseconds--> <xs:attribute name="conttime" type="xs:int"/> <!-- Root Url of the Host from which the object was downloaded (scheme + host)--> <xs:attribute name="uhost"> <xs:maxlength value="256"/> <!-- Url of the object --> <xs:attribute name="upage"> <xs:maxlength value="2048"/> <!-- URL Object request parameters --> <xs:attribute name="uparam"> <xs:maxlength value="2048"/> <!-- If a redirect, the object ID of the redirection (References OBJECT.oseq) --> <xs:attribute name="redirobjid" type="xs:int"/> <xs:attribute name="csum" type="xs:int"/> <xs:attribute name="spdy" type="xs:int"/> <!-- LM Population id --> <xs:attribute name="popid" type="xs:int"/> </xs:complextype> </xs:element> </xs:sequence> <!-- Unique Page Sequence Id --> <xs:attribute name="pseq" type="xs:int" use="required"/> <!-- Page description --> <xs:attribute name="pname" use="optional"> <xs:maxlength value="600" /> <!-- Response time of the page in milliseconds --> <xs:attribute name="rtime" type="xs:int"/> <!-- Count of objects downloaded on the page --> <xs:attribute name="nobj" type="xs:int"/> <!-- Count of object with a return code in the range between 200 and 299 (inclusive) --> <xs:attribute name="rc200" type="xs:int"/> <!-- Count of object with a return code in the range between 300 and 399 (inclusive) --> <xs:attribute name="rc300" type="xs:int"/> <!-- Count of object with a return code in the range between 400 and 499 (inclusive) --> <xs:attribute name="rc400" type="xs:int"/> <!-- Count of object with a return code in the range between 500 and 599 (inclusive) --> <xs:attribute name="rc500" type="xs:int"/> <!-- Binary flag to indicate network related errors. Default is 0 --> <xs:attribute name="rcnet" type="xs:int"/> <!-- Binary flag to indicate (internal) site related errors. Default is 0 --> <xs:attribute name="rcint" type="xs:int"/> <!-- Count of bytes downloaded for the page --> <xs:attribute name="nbyte" type="xs:int"/> <!-- Count of unique hosts referenced on the page --> <xs:attribute name="nhost" type="xs:int"/> <!-- Count of unique connections referenced on the page --> <xs:attribute name="nconn" type="xs:int"/> <!-- Content Match Text (where applicable). Contains match source text --> <xs:attribute name="cmtext"> <xs:maxlength value="512"/> <!-- Binary Content Match Status Indicator (where applicable). 0 = Not Matched, 1 = Matched --> <xs:attribute name="cmstat" type="xs:int"/> 43
Appendix A Data Export Web Service Response SD <!-- Binary flag to indicate a socket time-out error --> <xs:attribute name="tostat" type="xs:int"/> <!-- Binary flag to indicate a User Script error --> <xs:attribute name="usstat" type="xs:int"/> <!-- Binary flag to indicate a byte limit exceeded error --> <xs:attribute name="blstat" type="xs:int"/> <!-- Root object sequence number of the first object with a 200 return code. This id can be used to determine which object caused the page to fail (References OBJECT.oseq) --> <xs:attribute name="rtobjseq" type="xs:int"/> <!-- Sum of all DNS lookup times (HOST.dnstime) for all the connections associated with this page in milliseconds --> <xs:attribute name="dnssum" type="xs:int"/> <!-- Count of all hosts for all the connections associated with this page --> <xs:attribute name="ndns" type="xs:int"/> <!-- Sum of all vonnection times (CONN.conntime) for all the connections associated with this page in milliseconds --> <xs:attribute name="connsum" type="xs:int"/> <!-- Count of all vonnections associated with this page --> <xs:attribute name="nconn1" type="xs:int"/> <!-- Sum of all SSL times (CONN.ssltime) for all the secure connections associated with this page in milliseconds --> <xs:attribute name="sslsum" type="xs:int"/> <!-- Count of all secure connections associated with this page --> <xs:attribute name="nssl" type="xs:int"/> <!-- Sum of all first "byte" (packet) for all the objects associated with this page in milliseconds --> <xs:attribute name="fbsum" type="xs:int"/> <!-- Count of all first "byte" (packet) objects associated with this page --> <xs:attribute name="nfb" type="xs:int"/> <!-- Sum of all second "byte" (packet) + subseqent for all the objects associated with this page in milliseconds --> <xs:attribute name="contsum" type="xs:int"/> <!-- Count of all second "byte" (packet) + subsequenct objects associated with this page --> <xs:attribute name="ncont" type="xs:int"/> <!-- Processing / Client Time Time in Milliseconds --> <xs:attribute name="ptime" type="xs:int"/> <!-- LM Population id --> <xs:attribute name="popid" type="xs:int"/> </xs:complextype> </xs:element> <!-- Transaction W3C Page Element --> <xs:element name="w3cpage" minoccurs="0" maxoccurs="unbounded"> <xs:complextype> <!-- Sequence number of first step associated with the w3c page --> <xs:attribute name="rootstepseq" type="xs:int"/> <!-- Sequence number of the w3c page --> <xs:attribute name="w3cseq" type="xs:int"/> <!-- Sequence numbers of all steps associated with the w3c page --> <xs:attribute name="stepseqs"> <xs:maxlength value="2000"/> <!-- window.performance.timing.navigationstart --> <xs:attribute name="navstart"> <xs:maxlength value="32"/> <!-- Offset of window.performance.timing.unloadeventstart --> <xs:attribute name="uldstart" type="xs:int"/> <!-- Offset of window.performance.timing.unloadeventend --> <xs:attribute name="uldend" type="xs:int"/> <!-- Offset of window.performance.timing.redirectstart --> <xs:attribute name="rdstart" type="xs:int"/> <!-- Offset of window.performance.timing.redirectend --> <xs:attribute name="rdend" type="xs:int"/> <!-- Offset of window.performance.timing.fetchstart --> <xs:attribute name="fchstart" type="xs:int"/> <!-- Offset of window.performance.timing.domainlookupstart --> <xs:attribute name="dlkstart" type="xs:int"/> <!-- Offset of window.performance.timing.domainlookupend --> <xs:attribute name="dlkend" type="xs:int"/> <!-- Offset of window.performance.timing.connectstart --> <xs:attribute name="constart" type="xs:int"/> <!-- Offset of window.performance.timing.connectend --> <xs:attribute name="conend" type="xs:int"/> <!-- Offset of window.performance.timing.secureconnectionstart --> <xs:attribute name="sconstart" type="xs:int"/> <!-- Offset of window.performance.timing.requeststart --> <xs:attribute name="reqstart" type="xs:int"/> <!-- Offset of window.performance.timing.responsestart --> <xs:attribute name="rspstart" type="xs:int"/> <!-- Offset of window.performance.timing.responseend --> <xs:attribute name="rspend" type="xs:int"/> <!-- Offset of window.performance.timing.domloading --> <xs:attribute name="domld" type="xs:int"/> <!-- Offset of window.performance.timing.dominteractive --> <xs:attribute name="domint" type="xs:int"/> <!-- Offset of window.performance.timing.domcontentloadedeventstart --> <xs:attribute name="dcldstart" type="xs:int"/> <!-- Offset of window.performance.timing.domcontentloadedeventend --> <xs:attribute name="dcldend" type="xs:int"/> <!-- Offset of window.performance.timing.domcomplete --> <xs:attribute name="domcmpl" type="xs:int"/> <!-- Offset of window.performance.timing.loadeventstart --> <xs:attribute name="ldstart" type="xs:int"/> <!-- Offset of window.performance.timing.loadeventend --> <xs:attribute name="ldend" type="xs:int"/> <!-- unload time = unloadeventend - unloadeventstart --> <xs:attribute name="uldtime" type="xs:int"/> <!-- fetch time = domainlookupstart - fetchstart --> <xs:attribute name="fchtime" type="xs:int"/> <!-- DNS time of the w3c page --> <xs:attribute name="dnstime" type="xs:int"/> <!-- connect time = connectend - connectstart --> <xs:attribute name="contime" type="xs:int"/> 44
Appendix A Data Export Web Service Response SD <!-- request time = responsestart - requeststart --> <xs:attribute name="reqtime" type="xs:int"/> <!-- request time = responseend - responsestart --> <xs:attribute name="rsptime" type="xs:int"/> <!-- SSL time of the w3c page --> <xs:attribute name="ssltime" type="xs:int"/> <!-- Offset of the first paint event of the w3c page --> <xs:attribute name="firtpaint" type="xs:int"/> </xs:complextype> </xs:element> <!-- Transaction Host Element --> <xs:element name="host" minoccurs="0" maxoccurs="unbounded"> <xs:complextype> <xs:sequence> <!-- Transaction Connection Element --> <xs:element name="conn" minoccurs="0" maxoccurs="unbounded"> <xs:complextype> <!-- Unique Connection Id (Referenced from OBJECT.connid) --> <xs:attribute name="connid" type="xs:int" use="required"/> <!-- Unique Page Sequence Id (References PAGE.pseq) --> <xs:attribute name="page" type="xs:int"/> <!-- Response time to download all objects on this connection in milliseconds --> <xs:attribute name="rtime" type="xs:int"/> <!-- Start Timestamp when connection was established in GMT {yyyy-mm-dd hh:mm:ss.fff}--> <xs:attribute name="connstart"> <xs:maxlength value="32"/> <!-- Time to establish the connection in milliseconds --> <xs:attribute name="conntime" type="xs:int"/> <!-- Start Timestamp when SSL handshake was established in GMT {yyyy-mm-dd hh:mm:ss.fff}--> <xs:attribute name="sslstart"> <xs:maxlength value="32"/> <!-- Time to complete the SSL handshake phase of the connection in milliseconds --> <xs:attribute name="ssltime" type="xs:int"/> <!-- Total number of bytes downloaded on this connection --> <xs:attribute name="nbyte" type="xs:int"/> <!-- Total number of errors occurring on this connection --> <xs:attribute name="nerr" type="xs:int"/> <!-- Total number of objects downloaded on this connection --> <xs:attribute name="nobj" type="xs:int"/> <xs:attribute name="popid" type="xs:int"/> </xs:complextype> </xs:element> </xs:sequence> <!-- Unique Host Id (Referenced from OBJECT.hid) --> <xs:attribute name="hid" type="xs:int" use="required"/> <!-- Unique Page Sequence Id (References PAGE.pseq) --> <xs:attribute name="page" type="xs:int"/> <!-- Start Timestamp when DNS lookup was completed in GMT {yyyy-mm-dd hh:mm:ss.fff}--> <xs:attribute name="dnsstart"> <xs:maxlength value="32"/> <!-- Time to complete the DNS lookup in milliseconds --> <xs:attribute name="dnstime" type="xs:int"/> <!-- Total number of bytes downloaded from this host --> <xs:attribute name="nbyte" type="xs:int"/> <!-- Total number of errors detected from this host --> <xs:attribute name="nerr" type="xs:int"/> <!-- Total number of errors downloaded from this host --> <xs:attribute name="nobj" type="xs:int"/> <!-- Total number of connections established to this host --> <xs:attribute name="nconn" type="xs:int"/> <!-- IP Address of this host --> <xs:attribute name="ip"> <xs:maxlength value="50"/> <xs:attribute name="isipv6" type="xs:boolean" /> <xs:attribute name="popid" type="xs:int"/> </xs:complextype> </xs:element> </xs:sequence> <!-- Test Id : Monitor Id (Backbone), Monitor Instance Id (Last Mile / Private Peer / Mobile) --> <xs:attribute name="mid" type="xs:int" use="required"/> <xs:attribute name="tname" use="optional"> <xs:maxlength value="600"/> <!-- Location Id : Site Id (Backbone), Population Id (Last Mile / Private Peer / Mobile) --> <xs:attribute name="sid" type="xs:int" use="required"/> <!-- Test Timestamp in GMT. {yyyy-mm-dd hh:mm:ss.fff}--> <xs:attribute name="ttime"> <xs:maxlength value="32"/> 45
Appendix A Data Export Web Service Response SD <!-- Backbone Site Name --> <xs:attribute name="sname" use="optional"> <xs:maxlength value="600"/> <!-- Last Mile / Private Peer / Mobile Population Name --> <xs:attribute name="popname" use="optional"> <xs:maxlength value="600"/> <!-- Population country --> <xs:attribute name="popcountry" use="optional"> <xs:maxlength value="4000"/> <!-- End-To-End Response Time in Milliseconds --> <xs:attribute name="rtime" type="xs:int"/> <!-- Count of Total Pages Tested --> <xs:attribute name="tpt" type="xs:int"/> <!-- Count of Total Pages Successful --> <xs:attribute name="tps" type="xs:int"/> <!-- Ciybt if Total Pages Failed --> <xs:attribute name="tpf" type="xs:int"/> <!-- Count of Total Object Tested --> <xs:attribute name="tot" type="xs:int"/> <!-- Count of Total Objects Successful --> <xs:attribute name="tos" type="xs:int"/> <!-- Count of Total Objects Failed --> <xs:attribute name="tof" type="xs:int"/> <!-- Total Number of Bytes Downloaded --> <xs:attribute name="nbyte" type="xs:int"/> <!-- Collection Agent Type Discriminator --> <xs:attribute name="browsertype"> <xs:maxlength value="50"/> <xs:pattern value="uta IE7 FF35 CH23"/> <!-- Is site capable of ipv6 --> <xs:attribute name="sipv6ready" type="xs:boolean" /> <!-- IPV6 preference --> <xs:attribute name="testipv6pref" type="ipversiontype" use="optional"/> <!-- Population id --> <xs:attribute name="popid" type="xs:int"/> <!-- pre Test Bandwidth--> <xs:attribute name="prebw" type="xs:int"/> <!-- Post Test Bandwidth --> <xs:attribute name="postbw" type="xs:int"/> <!-- Actual Bandwidth --> <xs:attribute name="actualbw" type="xs:int"/> <!-- Unique Peer id --> <xs:attribute name="prid" type="xs:int"/> <!-- Peer region --> <xs:attribute name="prreg" type="xs:string"/> <!-- Peer ISP --> <xs:attribute name="prisp" type="xs:string"/> <!-- Peer IP --> <xs:attribute name="prip"> <xs:maxlength value="50"/> </xs:complextype> <!-- *********************************** Data Cut Response Type *********************************** --> <xs:complextype name="datacuttesttype"> <xs:sequence> <!-- LM Peer Machine Info --> <xs:element name="machineinfo" type="machineinfo" minoccurs="0" maxoccurs="1"/> </xs:sequence> <!-- Test Cut Event Timestamp in GMT. {yyyy-mm-dd hh:mm:ss.fff}--> <xs:attribute name="cutdate"> <xs:maxlength value="32"/> <!-- Test Id : Monitor Id (Backbone), Monitor Instance Id (Last Mile / Private Peer / Mobile) --> <xs:attribute name="mid" type="xs:int" use="required"/> <!-- Location Id : Site Id (Backbone), Population Id (Last Mile / Private Peer / Mobile) --> <xs:attribute name="sid" type="xs:int" use="required"/> <!-- Test Timestamp in GMT. {yyyy-mm-dd hh:mm:ss.fff}--> <xs:attribute name="ttime"> <xs:maxlength value="32"/> 46
Appendix A Data Export Web Service Response SD </xs:complextype> <!-- *********************************** Message Response Type *********************************** --> <xs:complextype name="messagetype"> <!-- Test Id : Monitor Id (Backbone), Monitor Instance Id (Last Mile / Private Peer / Mobile) --> <xs:attribute name="mid" type="xs:int" use="required"/> <!-- General Message Text --> <xs:attribute name="msg" type="xs:string" use="required"/> </xs:complextype> <!-- *********************************** Monitor Class Designator Type Common element in all responses. *********************************** --> <xs:complextype name="monitorclassdesignatortype"> <xs:attribute name="monitorclassdesignator"> <xs:maxlength value="20"/> </xs:complextype> <!-- *********************************** Streaming Response Type *********************************** --> <xs:complextype name="streamtesttype"> <xs:sequence> <!-- Event Element --> <xs:element name="event" minoccurs="0" maxoccurs="unbounded"> <xs:complextype> <!-- Unique event id --> <xs:attribute name="sevt_id" type="xs:int" use="required"/> <!-- Event name --> <xs:attribute name="name"> <xs:maxlength value="100"/> <!-- Offset of event occurrence from start of test in milliseconds --> <xs:attribute name="offset" type="xs:int"/> </xs:complextype> </xs:element> <!-- Metadata Element --> <xs:element name="meta" minoccurs="0" maxoccurs="unbounded"> <xs:complextype> <!-- Unique sequence id of metadata element --> <xs:attribute name="metaseq" type="xs:int" use="required"/> <!-- Unique metadata key name for metadata element Common key values: 'mediaformat' 'framesize' 'totalbytes' 'framerate' 'recommendedframerate' 'recommendedbandwidth' 'recommendedduration' --> <xs:attribute name="smetakey"> <xs:maxlength value="255"/> <!-- Metadata value for metadata element. Type depends on metadata key 'mediaformat' - Data type is string(255) 'framesize' - Data type is unsigned long 'totalbytes' - Data type is unsigned long 'framerate' - Data type is unsigned long 'recommendedframerate' - Data type is unsigned long 'recommendedbandwidth' - Data type is unsigned long 'recommendedduration' - Data type is unsigned long --> <xs:attribute name="smetaval"> <xs:maxlength value="255"/> </xs:complextype> </xs:element> <!-- Trace Route Element --> <xs:element name="trace" minoccurs="0" maxoccurs="unbounded"> <xs:complextype> <!-- Unique trace sequence / hop id--> <xs:attribute name="hopnum" type="xs:int" use="required"/> <!-- IP address of destination --> <xs:attribute name="ip"> <xs:maxlength value="50"/> 47
Appendix A Data Export Web Service Response SD <!-- Host name of destination --> <xs:attribute name="host"> <xs:maxlength value="100"/> <!-- Time delay in milliseconds --> <xs:attribute name="delay" type="xs:int"/> </xs:complextype> </xs:element> </xs:sequence> <!-- Test Id : Monitor Id (Backbone), Monitor Instance Id (Last Mile / Private Peer / Mobile) --> <xs:attribute name="mid" type="xs:int" use="required"/> <!-- Backbone Site Id --> <xs:attribute name="sid" type="xs:int" use="required"/> <!-- Test Timestamp in GMT. {yyyy-mm-dd hh:mm:ss.fff}--> <xs:attribute name="ttime" type="xs:datetime" use="required"/> <!-- Page sequence id for transaction integrated streaming tests. -1 for standalone tests. --> <xs:attribute name="pseq" type="xs:int" use="required"/> <!-- Unique stream sequence id --> <xs:attribute name="sseq" type="xs:int" use="required"/> <!-- Start Timestamp in GMT. {yyyy-mm-dd hh:mm:ss.fff}--> <xs:attribute name="stime" type="xs:datetime" use="required"/> <!-- System (high-level) error code --> <xs:attribute name="errrsyscode" type="xs:int" use="required"/> <!-- System error description --> <xs:attribute name="errdesc"> <xs:maxlength value="1000"/> <!-- Raw (low-level) System error description --> <xs:attribute name="errrawcode" type="xs:int"/> <!-- Stream protocol. Sample values include (but not limited to): {'http' 'rtmp' 'rtspt' 'rtspu'} --> <xs:attribute name="sproto"> <xs:maxlength value="100"/> <!-- IP Address of target host --> <xs:attribute name="ip"> <xs:maxlength value="50"/> <!-- Url of tested stream --> <xs:attribute name="url"> <xs:maxlength value="4365"/> <!-- Duration of stream test in milliseconds --> <xs:attribute name="durinms" type="xs:int"/> <!-- Frames per second --> <xs:attribute name="fps" type="xs:int"/> <!-- Stream End Type Designator SUCCESS - Test completed successfully EPIRED - Stream expired before end of test was reached FAILED - Test Failed --> <xs:attribute name="endtype"> <xs:maxlength value="7"/> <xs:pattern value="success EPIRED FAILED"/> <!-- Bites per second --> <xs:attribute name="bps" type="xs:int"/> <!-- Media Server Type --> <xs:attribute name="stype"> <xs:maxlength value="100"/> <!-- Server Platform --> <xs:attribute name="splat"> <xs:maxlength value="100"/> <!-- Server Version --> <xs:attribute name="sver"> <xs:maxlength value="100"/> 48
Appendix A Data Export Web Service Response SD <!-- DNS Offset Time from start of test in milliseconds --> <xs:attribute name="dnsoffset" type="xs:int"/> <!-- Total DNS time in milliseconds --> <xs:attribute name="dnstime" type="xs:int"/> <!-- Connection Offset Time from start of test in milliseconds --> <xs:attribute name="connoffset" type="xs:int"/> <!-- Total connection time in milliseconds --> <xs:attribute name="conntime" type="xs:int"/> <!-- Initial buffer time in milliseconds --> <xs:attribute name="initbuftime" type="xs:int"/> <!-- Total re-buffer time in milliseconds --> <xs:attribute name="rebuftime" type="xs:int"/> <!-- Count of rebuffer events --> <xs:attribute name="rebufcnt" type="xs:int"/> <!-- Initial play time in milliseconds --> <xs:attribute name="initplytime" type="xs:int"/> <!-- Start play time in milliseconds --> <xs:attribute name="spt" type="xs:int"/> <!-- Initial re-buffer time in milliseconds --> <xs:attribute name="initrebuftime" type="xs:int"/> <!-- Count of PLAY events --> <xs:attribute name="plycnt" type="xs:int"/> <xs:attribute name="initialdatareceivetime" type="xs:int"/> </xs:complextype> <!-- ************************************* Single Url Response Type ************************************** --> <xs:complextype name="singleurltesttype"> <xs:sequence> <!-- Object element --> <xs:element name="object" minoccurs="0" maxoccurs="unbounded"> <xs:complextype> <!-- Object Url --> <xs:attribute name="url"> <xs:maxlength value="800"/> <!-- Return Code --> <xs:attribute name="rc" type="xs:int"/> <!-- MIME Content Type of the Object (when rc < 300) --> <xs:attribute name="ctype"> <xs:maxlength value="32"/> <!-- Referencing URL for this object --> <xs:attribute name="refurl"> <xs:maxlength value="3000"/> <!-- Redirect URL for this object --> <xs:attribute name="redirurl"> <xs:maxlength value="3000"/> <!-- Number of bytes downloaded for this object --> <xs:attribute name="nbytes" type="xs:int"/> <!-- Start Timestamp when DNS lookup was completed in GMT {yyyy-mm-dd hh:mm:ss.fff}--> <xs:attribute name="dnsstart"> <xs:maxlength value="32"/> <!-- Time to complete the DNS lookup in milliseconds --> <xs:attribute name="dnstime" type="xs:int"/> <!-- Start Timestamp when connection was established in GMT {yyyy-mm-dd hh:mm:ss.fff}--> <xs:attribute name="connstart"> <xs:maxlength value="32"/> <!-- Time to establish the connection in milliseconds --> <xs:attribute name="conntime" type="xs:int"/> <!-- Start Timestamp when first "byte" (packet) was received for the object in GMT {yyyy-mm-dd hh:mm:ss.fff}--> <xs:attribute name="fbstart"> <xs:maxlength value="32"/> <!-- Time to download the first "byte" (packet) for the object in milliseconds --> <xs:attribute name="fbtime" type="xs:int"/> <!-- Start Timestamp when second "byte" (packet) was received for the object in GMT {yyyy-mm-dd hh:mm:ss.fff} --> <xs:attribute name="contstart"> <xs:maxlength value="32"/> 49
Appendix A Data Export Web Service Response SD <!-- Time to download the second "byte" (packet) for the object in milliseconds--> <xs:attribute name="conttime" type="xs:int"/> <!-- Start Timestamp when redirect was started for the object in GMT {yyyy-mm-dd hh:mm:ss.fff} --> <xs:attribute name="relocstart"> <xs:maxlength value="32"/> <!-- Time to execute all redirects in milliseconds--> <xs:attribute name="reloctime" type="xs:int"/> <!-- IP Address of targeted object --> <xs:attribute name="ip"> <xs:maxlength value="100"/> </xs:complextype> </xs:element> </xs:sequence> <!-- Test Id : Monitor Id (Backbone), Monitor Instance Id (Last Mile / Private Peer / Mobile) --> <xs:attribute name="mid" type="xs:int" use="required"/> <!-- Location Id : Site Id (Backbone) --> <xs:attribute name="sid" type="xs:int" use="required"/> <!-- Test Timestamp in GMT. {yyyy-mm-dd hh:mm:ss.fff}--> <xs:attribute name="ttime"> <xs:maxlength value="32"/> <!-- Backbone Site Name --> <xs:attribute name="sname" use="required"> <xs:maxlength value="600"/> <!-- Response time of the page in milliseconds --> <xs:attribute name="rtime" type="xs:int"/> <!-- Total objects tested --> <xs:attribute name="tot" type="xs:int"/> <!-- Total objects successful --> <xs:attribute name="tos" type="xs:int"/> <!-- Binary Content Match Status Indicator (where applicable). 0 = Not Matched, 1 = Matched --> <xs:attribute name="cmstat"> <xs:maxlength value="1"/> <!-- Content Match Text (where applicable). Contains match source text --> <xs:attribute name="cmtext"> <xs:maxlength value="255"/> </xs:complextype> <!-- ************************************** Status Response Type ************************************** --> <xs:complextype name="copstatusdata"> <xs:sequence> <!-- Status Type Indicator --> <xs:element name="estatus" type="statustype"/> <!-- Error message when estatus == "STATUS_FAILED" --> <xs:element name="serrormessage" type="xs:string" minoccurs="0"/> </xs:sequence> </xs:complextype> <xs:simpletype name="statustype"> <!-- Operation Successful --> <xs:enumeration value="status_success"/> <!-- Operation Failed - see ErrorMessage for details --> <xs:enumeration value="status_failed"/> <!-- *********** LastMile DNSINFO Type based on Machine level *********** --> <xs:complextype name="dnsinfo"> <!-- Sequence number--> <xs:attribute name="dseq" type="xs:int" use="required"/> <!-- DNS IP Address --> <xs:attribute name="dip"> <xs:maxlength value="30"/> 50
Appendix A Data Export Web Service Response SD </xs:complextype> <!-- *********** LastMile Object HEADER Type based on Object level *********** --> <xs:complextype name="objectheader"> <xs:attribute name="hseq" type="xs:int" use="required"/> <xs:attribute name="hname"> <xs:maxlength value="512"/> <xs:attribute name="hvalue"> <xs:maxlength value="1024"/> </xs:complextype> <!-- ******** LastMile/Private/Mobile PEER MachineInfo Type ******** --> <xs:complextype name="machineinfo"> <xs:sequence> <!-- LM Peer side DNS Info, based on MachineInfo --> <xs:element name="dnsinfo" type="dnsinfo" minoccurs="0" maxoccurs="unbounded"/> </xs:sequence> <xs:attribute name="siteid" type="xs:int" use="optional" /> <!--(Public / Private/ Mobile) Peer Machine Id --> <xs:attribute name="machineid" type="xs:int" use="required" /> <!--(Public / Private/ Mobile) Peer Machine Name --> <xs:attribute name="machinename" use="required"> <xs:maxlength value="30"/> <!-- (Public / Private/ Mobile) Peer Machine IP Address --> <xs:attribute name="mipaddress" use="optional"> <xs:maxlength value="30"/> <!-- (Public / Private/ Mobile) Peer Machine country --> <xs:attribute name="mcountry" use="optional"> <xs:maxlength value="50"/> <!-- (Public / Private/ Mobile) Peer Machine region --> <xs:attribute name="mregion" use="optional"> <xs:maxlength value="50"/> <!-- (Public / Private/ Mobile) Peer Machine ISP name --> <xs:attribute name="misp" use="optional"> <xs:maxlength value="128"/> <!-- (Public / Private/ Mobile) Peer Machine available Bandwidth category --> <xs:attribute name="mbandwidthcategory" use="optional"> <xs:maxlength value="50"/> <!-- (Public / Private/ Mobile) Peer Machine ConnectionType --> <xs:attribute name="mconnectiontype" use="optional"> <xs:maxlength value="30"/> <!-- (Private/ Mobile) Peer Machine USYS_USERDEF1 --> <xs:attribute name="muserdef1" use="optional"> <xs:maxlength value="50"/> <!-- (Private/ Mobile) Peer Machine USYS_USERDEF2 --> <xs:attribute name="muserdef2" use="optional"> <xs:maxlength value="50"/> 51
Appendix A Data Export Web Service Response SD <!-- (Private/ Mobile) Peer Machine USYS_USERDEF3 --> <xs:attribute name="muserdef3" use="optional"> <xs:maxlength value="50"/> </xs:complextype> <xs:simpletype name="ipversiontype"> <xs:enumeration value="ipv4_only"/> <xs:enumeration value="ipv6_only"/> <xs:enumeration value="ipv6_preferred"/> </xs:schema> 52
Index Index A alerts 9 B backward compatibility 5 C CloseDataFeed 34 request message 34 response message 34 contact information 7 Customer Support 7 D data feed 9 11 FTP 9 obtaining 11 selecting 10 selection 11 web service 9 ML 9 DataExport Services 15 E emailed reports 9 F features 5 FTP data feed 35 access 35 file information 35 FTP Data Feed 36 39 LM file layout 38 monitor file layout 37 site file layout 37 T file layout 36, 39 TO file layout 38 G GetErrorCodes 33 34 request message 33 response message 34 GetResponseData 27 29, 33 backbone 29 response 29 request 27 response 28 streaming 33 response 33 L LM file layout 38 M monitor file layout 37 O online support site 7 OpenDataFeed 16, 20 request message 16 response 20 53
Index OpenDataFeed (continued) session 16 OpenDataFeed2 22 request 22 OpenDataFeed3 24 request 24 options 9 overview 5 S security 34 site file layout 37 T T file layout 36, 39 TO file layout 38 U URL 15 W WSDL 15 SD 15, 41 54