Microsoft.AI.PerfCounterCollector Service client for QPS service. Represents performance data for a performance object (category). Initializes a new instance of the class. Instantiates a class. Performance data. Category name index. Counter name index. Performance library. Represents performance data for an individual counter. Initializes a new instance of the class. Performance counter data. Instance name. Sets the value for an instance. Index value. Data reference. Gets the value for an instance. The index of the instance. The instance value. Represents a library that works with performance data through a low-level pseudo-registry interface. Gets the performance library instance. The performance library instance. Gets the category sample. Index of the category. Index of the counter. The category sample. Initializes the library. Closes the library. Gets performance data for the given category index. Index of the category. Performance data. Top CPU collector. Initializes a new instance of the class. Time provider. Process provider. Gets a value indicating whether the initialization has failed. Gets a value indicating whether the Access Denied error has taken place. Gets top N processes by CPU consumption. Top N processes. List of top processes by CPU consumption. Initializes the top CPU collector. Closes the top CPU collector. Enum for all the performance counters collected for quick pulse. Committed bytes counter. Processor time counter. Dictionary of performance counters to collect for standard framework. Dictionary of performance counters to collect for WEB APP framework. Mapping between the counters collected in WEB APP to the counters collected in Standard Framework. Quota tracker to support throttling telemetry item collection. Checks if there's quota left. true if there's still quota left, false otherwise. Represents the state of a thread. Indicates if thread has been requested to abort. Gets a reference to the accumulator that is currently under construction. Locks in the current data accumulator and moves it into the Complete slot. Resets the Current slot to a new zeroed-out accumulator. The collection configuration to be used for the next accumulator. The newly completed accumulator. Gets the QPS URI. Pings QPS to check if it expects data right now. InstrumentationKey for which to submit data samples. Timestamp to pass to the server. Current configuration ETag that the client has. Authentication API key. When available, the deserialized response data received from the server. true if data is expected, otherwise false. Submits a data samples to QPS. Data samples. InstrumentationKey for which to submit data samples. Current configuration ETag that the client has. Authentication API key. When available, the deserialized response data received from the server. Errors to be reported back to the server. true if the client is expected to keep sending data samples, false otherwise. Interface for the Performance library. Gets the category sample. Category index. Counter index. The category sample. Initializes the performance library. Closes the performance library. Provider interface for Windows processes. Initializes the process provider. Closes the process provider. Gets a collection of objects - each corresponding to a system process and containing information about the amount of time the process has occupied CPU cores. If available, contains the value of the _Total instance of the counter, which indicates the overall amount of time spent by CPU cores executing system processes. Interface for top CPU collector. Gets a value indicating whether the initialization has failed. Gets a value indicating whether the Access Denied error has taken place. Gets top N processes by CPU consumption. Top N processes. List of top processes by CPU consumption. Initializes the top CPU collector. Closes the top CPU collector. Top CPU collector. Initializes a new instance of the class. Process name. Total processor time. Gets the process name. Gets the total processor time. Top CPU process provider. Initializes a new instance of the class. Performance library. Initializes the process provider. Closes the process provider. Gets a collection of objects - each corresponding to a system process and containing information about the amount of time the process has occupied CPU cores. If available, contains the value of the _Total instance of the counter, which indicates the overall amount of time spent by CPU cores executing system processes. Constants related to quick pulse service. Subscribed header. Transmission time header. Configuration ETag header. Instance name header. Stream id header. Machine name header. Invariant version header. Authentication API key. The following authentication headers must be received and submitted back to the service with no modification. DTO containing data we collect from AI. Modified in real time. This is performance-critical DTO that needs to be quickly accessed in a thread-safe manner. 2^19 - 1 2^44 - 1 Accumulator manager for QuickPulse data. DTO containing data that we send to QPS. Gets a collection of registered performance counters. Performs collection for all registered counters. Invoked when an individual counter fails to be read. Refreshes counters. Registers a counter using the counter name and reportAs value to the total list of counters. Name of the performance counter. Report as name for the performance counter. Boolean to check if the performance counter is custom defined. Captures the error logged. Boolean that controls the registry of the counter based on the availability of instance place holder. Removes a counter. Name of the performance counter to remove. ReportAs value of the performance counter to remove. Gets a collection of registered performance counters. Performs collection for all registered counters. Invoked when an individual counter fails to be read. Refreshes counters. Registers a counter using the counter name and reportAs value to the total list of counters. Name of the performance counter. Report as name for the performance counter. Boolean to check if the performance counter is custom defined. Captures the error logged. Boolean that controls the registry of the counter based on the availability of instance place holder. Removes a counter. Name of the performance counter to remove. ReportAs value of the performance counter to remove. Rebinds performance counters to Windows resources. Gets a collection of counters that are currently registered with the collector. Performs collection for all registered counters. Invoked when an individual counter fails to be read. Refreshes and rebinds all the set of counters that are intended to be collected. Registers a counter using the counter name and reportAs value to the total list of counters. Name of the performance counter. Report as name for the performance counter. Boolean to check if the performance counter is custom defined. Captures the error logged. Boolean that controls the registry of the counter based on the availability of instance place holder. Removes a counter. Name of the performance counter to remove. ReportAs value of the counter to remove. Represents basic performance counter structure. Initializes a new instance of the PerformanceCounterStructure class. Initializes a new instance of the PerformanceCounterStructure class. The counter category name. The counter name. The counter instance name. Gets or sets the counter category name. Gets or sets the counter name. Gets or sets the counter instance. Utility functionality for performance counter collection. Formats a counter into a readable string. Performance counter structure. Searches for the environment variable specific to Azure web applications and confirms if the current application is a web application or not. Boolean, which is true if the current application is an Azure web application. Gets the processor count from the appropriate environment variable depending on whether the app is a WebApp or not. Indicates whether the application is a WebApp or not. The number of processors in the system or null if failed to determine. Differentiates the SDK version prefix for azure web applications with standard applications. Returns the SDK version prefix based on the platform. Formats a counter into a readable string. Validates the counter by parsing. Performance counter name to validate. Windows 32 instances. CLR instances. Boolean to check if it is using an instance name place holder. Error message. Performance counter. Parses a performance counter canonical string into a PerformanceCounter object. This method also performs placeholder expansion. Invalidates placeholder cache. Matches an instance name against the placeholder regex. Instance name to match. Regex match. Telemetry module for collecting QuickPulse data. Initializes a new instance of the class. Initializes a new instance of the class. Internal constructor for unit tests only. Collection time slot manager. Data hub to sink QuickPulse data to. QPS service client. Performance counter collector. Top N CPU collector. Timings for the module. Gets the QuickPulse service endpoint to send to. Loaded from configuration. Gets the flag indicating whether full telemetry items collection is disabled. Loaded from configuration. Gets the flag indicating whether top CPU processes collection is disabled. Loaded from configuration. Gets the authentication API key. Authentication API key is created in the Azure Portal for an application and ensures secure distribution of the collection configuration when using QuickPulse. Loaded from configuration. Disposes resources allocated by this type. Initialize method is called after all configuration properties have been loaded from the configuration. TelemetryConfiguration passed to the module. Registers an instance of type with this module. This call is only necessary when the module is created in code and not in configuration. QuickPulseTelemetryProcessor instance to be registered with the module. Dispose implementation. Extracts QuickPulse data from the telemetry stream. 1.0 - initial release 1.1 - added DocumentStreamId, EventTelemetryDocument, TraceTelemetryDocument An overall, cross-stream quota tracker Initializes a new instance of the class. The next TelemetryProcessor in the chain. Thrown if next is null. Initializes a new instance of the class. Internal constructor for unit tests only. The next TelemetryProcessor in the chain. Time provider. Max overall telemetry quota. Initial overall telemetry quota. Thrown if next is null. Initialize method is called after all configuration properties have been loaded from the configuration. Intercepts telemetry items and updates QuickPulse data when needed. Telemetry item being tracked by AI. This method is performance critical since every AI telemetry item goes through it. Accumulator for calculated metrics. Represents a single configured metric that needs to be calculated and reported on top of the telemetry items that pass through the pipeline. Includes a set of filters that define which telemetry items to consider, a projection which defines which field to use as a value, and an aggregation which dictates the algorithm of arriving at a single reportable value within a second. OR-connected collection of AND-connected filter groups. Represents the collection configuration - a set of calculated metrics, performance counters, and full telemetry documents to be collected by the SDK. This class is a hub for all pieces of configurable collection configuration. Upon initialization - it creates collection-time instances of and maintains them in separate collections by telemetry type. These are used to filter and calculated calculated metrics configured by the service. - it creates collection-time instances of which are used to filter and send out full telemetry documents. - it creates certain metadata collections which are used by other collection-time components to learn more about what is being collected at any given time. Telemetry types only. Used by QuickPulseTelemetryProcessor. Document streams. Telemetry items are provided by QuickPulseTelemetryProcessor. Gets a list of performance counters. Performance counter name is stored in CalculatedMetricInfo.Projection. Represents the part of the QuickPulse accumulator which holds calculated metric data. As telemetry item pass through the pipeline, they are being filtered, projected, and the resulting values are stored here - both for calculated metrics and full telemetry document streams. Unlike the main accumulator, this one might not have finished being processed at swap time, so the consumer should keep the reference to it post-swap and make the best effort not to send prematurely. indicates that the accumulator is still being processed when non-zero. Used by writers to indicate that a processing operation is still in progress. Gets a dictionary of metricId => AccumulatedValues. Represents a concept of a uniquely identifiable set of full telemetry documents that are being reported by the SDK. The notion of a stream is needed since multiple UX sessions might be querying for full telemetry documents with different filtering criteria simultaneously. Filter determines whether a telemetry document matches the criterion. The filter's configuration (condition) is specified in a DTO. Type of telemetry documents. Defines an AND group of filters. Gets or sets an OR-connected collection of FilterConjunctionGroupInfo objects. DTO that represents the collection configuration - a customizable description of performance counters, metrics, and full telemetry documents to be collected by the SDK. Processed and encapsulated by at the time of actual collection. Gets or sets an AND-connected group of filters. Gets or sets an OR-connected collection of filter groups. Each DocumentFilterConjunctionGroupInfo has a TelemetryType. Telemetry types that are not mentioned in this array will NOT be included in the stream. Telemetry types that are mentioned in this array once or more will be included if any of the mentioning DocumentFilterConjunctionGroupInfo's pass. Represents an error while parsing and applying an instance of . An AND-connected group of FilterInfo objects.