Application Instrumentation Using Performance Counters
Understand how and why to add custom performance counter instrumentation to your managed and native Windows applications.
What you'll learn
Many applications are black holes - information is processed but not broadcast. It can be difficult to monitor the state of these applications without having the proper instrumentation channels in place. Performance counters offer an effective instrumentation strategy that combines the tractability of numbers with the liberty of automation frameworks. In this course, you will learn what counter types are available to your application, how the counters are managed by the operating system, and how to create custom performance counters in both native and managed code.
Table of contents
- Classifying Counter Types 3m
- Types of Values Consumed From Counters 4m
- Types of Values Published to Counters 2m
- Our Survey Approach 4m
- NumberOfItems Counters 5m
- ElapsedTime Counters 4m
- CounterDelta Counters 5m
- AverageCount Counters 6m
- RawFraction Counters 4m
- SampleFraction Counters 5m
- RateOfCountePerSecond Counters 4m
- CountPerTimeInterval Counters 4m
- CounterTimer and Inverse Timer Counters 7m
- AverageTimer Counters 5m
- MultiTimer Counters 7m
- Module Summary 2m
- Managing and Publishing Overview 2m
- Managing Performance Counters 4m
- Managing Counters From Code 5m
- Configuring Individual Counters 4m
- Demo - Installing and Deleting Counters From Code 3m
- Demo - Installing and Configuring Composite Counters 2m
- Installing Counters Using Windows Installer 3m
- Publishing Performance Counter Values 1m
- Addressing Single vs. Multi-Instance Counters 2m
- Creating Single Instance Counters 2m
- Creating Multi-Instance Counters 2m
- Creating Composite Counters 1m
- Four Methods of Publishing Incremental Values 1m
- Assigning Incremental Values to a Performance Counter 2m
- Incrementing and Decrementing the Current Counter Value 3m
- Changing the Current Counter Value by a Relative Amount 2m
- Publishing Composite Counter Values 1m
- Two Types of Elapsed Time Measurements 2m
- Publishing Timestamps 2m
- Publishing Stopwatch Timespans 3m
- Publishing 100NS Timespans 2m
- Module Summary 2m
- Introduction 2m
- PerfLib 2.0 vs. PerfLib 1.0 4m
- Module Public Service Announcement 2m
- PerfLib 2.0 Overview 2m
- The Instrumentation Manifest 10m
- Using the CTRPP.EXE Utility 2m
- Mapping the Provider Code to the Manifest 4m
- Using the Provider Code 3m
- Publishing Counter Values 5m
- Installing Performance Counters Using LODCTR.EXE 4m
- LODCTR.EXE Registry Manipulations 2m
- Creating Multi-Instance Counters 4m
- Multi-Instance Provider Changes 3m
- Publishing Multi-Instance Counter Values 4m
- Demo: Querying the Multi-Instance Performance Counters 1m
- Summary 2m
- Introduction 1m
- Extension DLL Structure 3m
- The Offset Header File 1m
- Installing the Counters 4m
- The Performance INI File 2m
- The [lang] INI Section 2m
- The [text] INI Section 3m
- The [objects] INI Section 1m
- Installing Localized Provider Strings 4m
- Publishing Counter Values 3m
- Single-Instance Counter Memory Layout 5m
- Implementing the Open Function pt 1 5m
- Implementing the Open Function pt 2 6m
- Implementing the Collect Function 5m
- Implementing the Close Function 1m
- Single-Instance Counter Demonstration 1m
- Multi-Instance Counters in PerfLib 1.0 3m
- Inter-Process Communication 3m
- Multi-Instance Counter Memory Layout 4m
- Changes to the Open Function for Multi-Instance Support 4m
- Changes to the Collect Function for Multi-Instance Support 4m
- Multi-Instance Counter Demonstration 1m
- PerfLib 1.0 Common Issues Checklist 2m
- Summary 1m