3.1.1.5 Query Monitoring Information

msdn link

The following diagram shows the hierarchy of objects representing information about query monitoring data. Properties followed by "[0..n]" are collections of items of the same kind, whereas those followed by [1] are single properties. The protocol server stores the query monitoring data in the hierarchy of objects in the following figure. The query monitoring data is available to assist the administrators of the protocol server to collect information about query performance as well as errors encountered in the protocol client.

Query monitoring information

Figure 3: Query monitoring information

DataBuffer: This is the base object used by all the different types of DataBuffer objects. This object defines a common set of properties for all types of DataBuffer object. The protocol server maintains one object for each type of DataBuffer.

  • ApplicationId: The unique identifier of the search service application.

  • EventTime: The date and time, in UTC format, at which the event occurred.

  • MachineName: The name of the computer on which the event occurred.

UIQueryLatencyDataBuffer: This is the top-level object that represents information about time spent in rendering search results in the search results page in the protocol client.

This object extends the DataBuffer object. The protocol sever maintains one object of this type per-search service application. It contains aggregated latency information for all search queries as well as information for each query, if verbose query monitoring is turned on. The object has the following properties:

  • AggregatedQueryTiming: The aggregated latency information for all search queries. It contains:

    • ApplicationType: The ClientType of the search queries.

    • CustomTags: Any specific tags that identify the search queries.

    • ExclusiveWebpartTimeMs: The total time, in milliseconds, consumed exclusively by search Web Parts to process all the search queries.

    • ImsFlow: The name of the main query and result processing flow used to process the search queries.

    • InclusiveWebpartTimeMs: The total time, in milliseconds, consumed by all Web Parts during the processing of all the search queries.

    • NumQueries: The total number of search queries processed by the protocol client.

    • ResultPageUrl: The URI of the result page from which the search queries originate.

    • TenantId: The unique identifier of the tenant from which the search queries were issued.

    • TotalQueryTimeMs: The total time, in milliseconds, consumed by the search results page to process all the search queries.

  • VerboseQueryTimings: The collection of the latency information for each search query. It will be maintained by the protocol server only if SearchServiceApplication.VerboseQueryMonitoring is set to "true". Each item in the collection holds:

    • CorrelationId: The unique identifier used to identify all the query monitoring data for the search query.

    • ExclusiveWebpartTimeMs: The time in milliseconds consumed exclusively by search Web Parts to process the search query.

    • InclusiveWebpartTimeMs: The time in milliseconds consumed by all Web Parts during the processing of the search query.

    • QueryTerms: The query terms of the search query.

    • TotalQueryTimeMs: The latency in milliseconds consumed by search results page to execute the search query.

    • Url: The URI of the page that issued the search query.

OMQueryLatencyDataBuffer: This is the top-level object that represents information about time spent in processing of search queries in the protocol server.

This object extends the DataBuffer object. The protocol sever maintains one object of this type per search service application. It contains aggregated latency information for processing all search queries in the protocol server. If verbose query monitoring is turned on, it also contains latency information for processing every single search query in the protocol server. It has the following properties:

  • BucketedQueryTimings: The aggregated latency information for all search queries, approximated to a value determined by the protocol server.

    • ApplicationType: The ClientType of the search queries.

    • CustomTags: Any specific tags that identify the search queries.

    • ImsFlow: The name of the main query and result processing flow used to process the search queries.

    • IMSProxyTimeMs: The total time in milliseconds taken by intermediate processing of all search queries in the protocol sever, approximated to a value determined by the protocol server. The value stored here is specific to the implementation of the protocol server.

    • NumQueries: The total number of search queries processed.

    • QPTimeMs: The total time in milliseconds taken by any intermediate processing of all search queries in the protocol server, approximated to a value determined by the protocol server. The value stored here is specific to the implementation of the protocol server.

    • ResultPageUrl: The URI of the result page from which the search queries originate.

    • TenantId: The unique identifier of the tenant that issued the search queries.

    • TotalQueryTimeMs: The total time, in milliseconds, taken by the protocol server to process all the search queries, approximated to a value determined by the protocol server

  • AggregatedQueryTiming: The aggregated latency information for all search queries. It contains:

    • ApplicationType: The ClientType of the search queries.

    • CustomTags: Any specific tags that identify the search queries.

    • ImsFlow: The name of the main query and result processing flow used to process the search queries.

    • IMSProxyTimeMs: The total time in milliseconds taken by intermediate processing of all search queries in the protocol sever. The value stored here is specific to the implementation of the protocol server.

    • NumQueries: The total number of search queries processed.

    • QPTimeMs: The total time in milliseconds taken by any intermediate processing of all search queries in the protocol server. The value stored here is specific to the implementation of the protocol server.

    • ResultPageUrl: The URI of the result page from which the search queries originate.

    • TenantId: The unique identifier of the tenant that issued the search queries.

    • TotalQueryTimeMs: The total time, in milliseconds, taken by the protocol server to process all the search queries.

  • VerboseQueryTimings: The collection of the latency information for each search query. It will be maintained by the protocol server only if SearchServiceApplication.VerboseQueryMonitoring is set to "true". Each item in the collection holds:

    • CorrelationId: The unique identifier used to identify all the query monitoring data for the search query.

    • IMSProxyTimeMs: The total time in milliseconds taken by intermediate processing of the search query in the protocol sever. The value stored here is specific to the implementation of the protocol server.

    • QPMachine: The name of the computer that processed the search query in the protocol server.

    • QPTimeMs: The time in milliseconds taken by intermediate processing of the search query in the protocol server. The value stored here is specific to the implementation of the protocol server.

    • QueryTerms: The query terms of the search query.

    • TotalQueryTimeMs: The total latency, in milliseconds, taken by the protocol server to process the search query.

WebPartQueryLatencyDataBuffer: This is the top level object that represents information about time spent to render each search Web Part on the search results page on every query executed. This object extends the DataBuffer object. If verbose query monitoring is turned on, the protocol server maintains one object of this type per search service application. Its properties are:

  • VerboseQueryTimings: The collection of the rendering time information for each search query and search Web Part. Each item in the collection has these properties:

    • CorrelationId: The unique identifier used to identify all the query monitoring data for the search query.

    • ExclusiveWebpartTimeMs: The time spent in milliseconds to render the search Web Part with the specified WebPartId.

    • InclusiveWebpartTimeMs: The time spent in milliseconds to render all the search Web Parts on the search results page.

    • WebPartId: The unique identifier of the search Web Part for which the latency information is represented.

    • WebPartTitle: The title of the search Web Part.

QueryErrorDataBuffer: This is the top level object that represents information about errors occurred during processing of search queries in the protocol client. This object extends the DataBuffer object. The protocol sever maintains one object of this type, that contains query error information if verbose query monitoring is turned on. This object has the following properties:

  • VerboseQueryTimings: The list of errors occurred during the processing of all the search queries in the protocol client. It is maintained by the protocol server only if SearchServiceApplication.VerboseQueryMonitoring is set to "true". Each item in the collection represents an error and has the following properties:

    • CorrelationId: The unique identifier used to identify all the query monitoring data for the search query.

    • Exception: The details of the exception that is specific to the implementation of the protocol client.

    • Operation: The details of the operation that caused the exception of the search query in the protocol client.