The C++ framework for developing highly scalable, high performance servers on Windows platforms.

JetByteTools::PerfMon Namespace Reference


Classes

class  CCounterStorageAllocator
class  CDebugLog
class  CHeapMemoryPerformanceDataBlock
class  CHeapMemoryPerformanceDataBlockFactory
class  CHeapMemoryPerformanceMonitorCounters
 An object which represents an installed set of performance counters in memory in an application that wishes to export those counters. This object is created from a CPerformanceDataSchema and provides methods for an application which exports counters to create and manipulate a set of counters. These counters can then be consumed by an instance of CPerformanceDataCollector which has been created with the same schema. The object supports the JetByteTools::Win32::ICriticalSection interface so that you can lock the entire set of counters if you need to during updates to ensure that updates are atomic, however, this is very rarely required. Each individual counter update can be guaranteed to be atomic without the need for external locking. More...
class  IAllocateCounterStorage
class  ICollectPerformanceData
 An interface to an object that manages a set of performance counter data that can be exposed via a dll that conforms to the API required for perfmon performance extension dll data collection dlls. More...
class  IInstallPerformanceMonitorCounters
 An interface to an object that can install performance counters on a system. See here for more details. More...
class  ILoggablePerformanceMonitorCounters
class  IPerformanceDataBlock
class  IPerformanceDataBlockFactory
class  CPerformanceCounterInstaller
 An object which implements IInstallPerformanceMonitorCounters and which can be used to install performance counters into a system. More...
class  CPerformanceCounterLogger
class  CPerformanceDataBlock
class  CPerformanceDataCollector
 An object which implements ICollectPerformanceData and represents an installed set of performance counters in memory in a perfmon performance extension dll that wishes to monitor those counters. This object is created from a CPerformanceDataSchema and provides methods for an dll which conforms to the requirements for a performance data collection dll to integrate with perfmon. More...
class  CPerformanceDataSchema
 An object which can be used to create a schema for a set of performance counters. A performance counter schema is created to define the counters that are required and is used in the process which is exporting the counters and in the DLL which is loaded into perfmon to collect the performance data. More...
class  CPerformanceDataSchemaFileExporter
 A class which exports CPerformanceDataSchema in the form required by the LoadPerfCounterTextStrings API. More...
class  CPerformanceMonitorCountersBase
 An object which represents an installed set of performance counters in memory in an application that wishes to export those counters. This object is created from a CPerformanceDataSchema and provides methods for an application which exports counters to create and manipulate a set of counters. These counters can then be consumed by an instance of CPerformanceDataCollector which has been created with the same schema. Each individual counter update can be guaranteed to be atomic without the need for external locking. More...
class  CRawImage
class  CSharedMemoryMutexPerformanceDataBlock
class  CSharedMemoryMutexPerformanceMonitorCounters
class  CSharedMemoryPerformanceDataBlock
class  CSharedMemoryPerformanceMonitorCounters
class  TSharedMemoryPerformanceDataBlockFactory

Typedefs

typedef
TSharedMemoryPerformanceDataBlockFactory
< CSharedMemoryMutexPerformanceDataBlock
CSharedMemoryMutexPerformanceDataBlockFactory

Enumerations

enum  CounterTypes {
  CounterTypeLinkedCounter = 0, CounterTypeCounter32 = 1, CounterTypeCounter64 = 2, CounterTypePerSec32 = 3,
  CounterTypePerSec64 = 4, CounterTypeCounter32LinkedPerSec = 5, CounterTypeCounter64LinkedPerSec = 6, CounterTypeAverage32 = 7,
  CounterTypeAverageBase = 8
}
enum  DetailLevel { DetailLevelNovice = PERF_DETAIL_NOVICE, DetailLevelAdvanced = PERF_DETAIL_ADVANCED, DetailLevelExpert = PERF_DETAIL_EXPERT, DetailLevelWizard = PERF_DETAIL_WIZARD }
enum  ImageType { ImageType32Bit, ImageType64Bit }

Functions

static BYTEAllocateMemory (DWORD size)
static void ValidateParameters (const _tstring &applicationName, const _tstring &symbolHeaderFile, const _tstring &iniFile, const _tstring &contextStrings, Milliseconds openTimeout, Milliseconds collectTimeout)
static void ValidateDLL (const _tstring &dllPath, ImageType requiredImageType, const _tstring &openFunctionName, const _tstring &collectFunctionName, const _tstring &closeFunctionName)
static void ValidateImageExportsFunction (const CRawImage &image, const _tstring &function, const _tstring &dllPath, const _tstring &functionDescription)
static _tstring CopyFileToSystemDirectoryIfRequired (bool copyToSystemDirectory, const _tstring &sourceFilePath, const IInstallPerformanceMonitorCounters::CopyToSystemDirectoryRenameAndRetryHandler &retryHandler)
static _tstring CopyFileToSystemDirectory (const _tstring &sourceFilePath, const _tstring &counterDllName, const IInstallPerformanceMonitorCounters::CopyToSystemDirectoryRenameAndRetryHandler &retryHandler)
static _tstring CopyFileTo64BitSystemDirectory (const _tstring &sourceFilePath, const _tstring &counterDllName, const IInstallPerformanceMonitorCounters::CopyToSystemDirectoryRenameAndRetryHandler &retryHandler)
static void CopyFileToSysWOW64 (const _tstring &sourceFilePath, const _tstring &counterDllName, const IInstallPerformanceMonitorCounters::CopyToSystemDirectoryRenameAndRetryHandler &retryHandler)
static _tstring GetFileInSystemDirectory (const _tstring &fileName)
static _tstring GetFileInSysWOW64 (const _tstring &fileName)
static void CreateRegistryKeys (const _tstring &applicationName, const _tstring &counterDllPath, const _tstring &openFunctionName, const _tstring &collectFunctionName, const _tstring &closeFunctionName, const _tstring &contextStrings, Milliseconds openTimeout, Milliseconds collectTimeout, const _tstring &schemaChecksum)
static CRegistryKey OpenOrCreatePerformanceKey (const _tstring &applicationName)
static CRegistryKey OpenOrCreateApplicationLinkageKey (const _tstring &applicationName)
static void RemovePerformanceKey (const _tstring &applicationName)
static _tstring ValidateName (_tstring name)
static BYTECollectTheseCounters (BYTE *pData, const BYTE *const pCounters, const DWORD counterLength)
static _tstring ProcessObjectNumbers (const _tstring &objectNumbers)
static
CPerformanceDataSchema::DataLength 
CalculateAlignedInstanceNameBufferSize (CPerformanceDataSchema::DataLength maxInstanceNameLength)
static const _tstring s_instanceNameSep (_T("###"))
static const _tstring s_parentNameSep (_T("/"))
static _tstring StripParentFromInstanceName (const _tstring &instanceName)
static _tstring GetInstanceFromObjectName (const _tstring &objectName)
static _tstring GetParentFromObjectName (const _tstring &objectName)
static _tstring BuildParentNameIfNecessary (const _tstring &parentName, const _tstring &instanceName)
void SetInstance (ICollectPerformanceData *pInstance)
template<class T>
PIMAGE_SECTION_HEADER GetEnclosingSectionHeader (DWORD rva, const T *pNTHeader)
template<class T>
LPVOID GetPtrFromRVA (DWORD rva, T *pNTHeader, PBYTE imageBase)
template<class T>
bool HasCLRDirectory (T *pNTHeader, BYTE *pImageBase)

Variables

static const _tstring s_emptyString
static const _tstring s_lineEnd = _T("\r\n")
static const _tstring s_lineEnd = _T("\r\n")
static const ULONG_PTR s_counterOffsetMask = 0x0FFFFFFF
static const ULONG_PTR s_counterFlagMask = ~s_counterOffsetMask
static const ULONG_PTR s_counterFlag32Bit = 0x00000000
static const ULONG_PTR s_counterFlag64Bit = 0x10000000
static const _tstring s_emptyString


Typedef Documentation


Enumeration Type Documentation

Enumerator:
CounterTypeLinkedCounter 
CounterTypeCounter32 
CounterTypeCounter64 
CounterTypePerSec32 
CounterTypePerSec64 
CounterTypeCounter32LinkedPerSec 
CounterTypeCounter64LinkedPerSec 
CounterTypeAverage32 
CounterTypeAverageBase 

Enumerator:
DetailLevelNovice 
DetailLevelAdvanced 
DetailLevelExpert 
DetailLevelWizard 

enum ImageType

Enumerator:
ImageType32Bit 
ImageType64Bit 


Function Documentation

static BYTE * AllocateMemory ( DWORD  size  )  [static]

static _tstring BuildParentNameIfNecessary ( const _tstring &  parentName,
const _tstring &  instanceName 
) [static]

static CPerformanceDataSchema::DataLength CalculateAlignedInstanceNameBufferSize ( CPerformanceDataSchema::DataLength  maxInstanceNameLength  )  [static]

static BYTE* JetByteTools::PerfMon::CollectTheseCounters ( BYTE pData,
const BYTE *const   pCounters,
const DWORD  counterLength 
) [static]

static _tstring CopyFileTo64BitSystemDirectory ( const _tstring &  sourceFilePath,
const _tstring &  counterDllName,
const IInstallPerformanceMonitorCounters::CopyToSystemDirectoryRenameAndRetryHandler &  retryHandler 
) [static]

static _tstring CopyFileToSystemDirectory ( const _tstring &  sourceFilePath,
const _tstring &  counterDllName,
const IInstallPerformanceMonitorCounters::CopyToSystemDirectoryRenameAndRetryHandler &  retryHandler 
) [static]

static _tstring CopyFileToSystemDirectoryIfRequired ( bool  copyToSystemDirectory,
const _tstring &  sourceFilePath,
const IInstallPerformanceMonitorCounters::CopyToSystemDirectoryRenameAndRetryHandler &  retryHandler 
) [static]

static void CopyFileToSysWOW64 ( const _tstring &  sourceFilePath,
const _tstring &  counterDllName,
const IInstallPerformanceMonitorCounters::CopyToSystemDirectoryRenameAndRetryHandler &  retryHandler 
) [static]

static void JetByteTools::PerfMon::CreateRegistryKeys ( const _tstring &  applicationName,
const _tstring &  counterDllPath,
const _tstring &  openFunctionName,
const _tstring &  collectFunctionName,
const _tstring &  closeFunctionName,
const _tstring &  contextStrings,
Milliseconds  openTimeout,
Milliseconds  collectTimeout,
const _tstring &  schemaChecksum 
) [static]

PIMAGE_SECTION_HEADER JetByteTools::PerfMon::GetEnclosingSectionHeader ( DWORD  rva,
const T *  pNTHeader 
) [inline]

static _tstring GetFileInSystemDirectory ( const _tstring &  fileName  )  [static]

static _tstring GetFileInSysWOW64 ( const _tstring &  fileName  )  [static]

static _tstring GetInstanceFromObjectName ( const _tstring &  objectName  )  [static]

static _tstring GetParentFromObjectName ( const _tstring &  objectName  )  [static]

LPVOID JetByteTools::PerfMon::GetPtrFromRVA ( DWORD  rva,
T *  pNTHeader,
PBYTE  imageBase 
) [inline]

bool JetByteTools::PerfMon::HasCLRDirectory ( T *  pNTHeader,
BYTE pImageBase 
) [inline]

static CRegistryKey OpenOrCreateApplicationLinkageKey ( const _tstring &  applicationName  )  [static]

static CRegistryKey OpenOrCreatePerformanceKey ( const _tstring &  applicationName  )  [static]

static _tstring JetByteTools::PerfMon::ProcessObjectNumbers ( const _tstring &  objectNumbers  )  [static]

static void RemovePerformanceKey ( const _tstring &  applicationName  )  [static]

static const _tstring JetByteTools::PerfMon::s_instanceNameSep ( _T("###")   )  [static]

static const _tstring JetByteTools::PerfMon::s_parentNameSep ( _T("/")   )  [static]

void SetInstance ( ICollectPerformanceData pInstance  ) 

static _tstring StripParentFromInstanceName ( const _tstring &  instanceName  )  [static]

static void ValidateDLL ( const _tstring &  dllPath,
ImageType  requiredImageType,
const _tstring &  openFunctionName,
const _tstring &  collectFunctionName,
const _tstring &  closeFunctionName 
) [static]

static void ValidateImageExportsFunction ( const CRawImage &  image,
const _tstring &  function,
const _tstring &  dllPath,
const _tstring &  functionDescription 
) [static]

static _tstring ValidateName ( _tstring  name  )  [static]

static void JetByteTools::PerfMon::ValidateParameters ( const _tstring &  applicationName,
const _tstring &  symbolHeaderFile,
const _tstring &  iniFile,
const _tstring &  contextStrings,
Milliseconds  openTimeout,
Milliseconds  collectTimeout 
) [static]


Variable Documentation

const ULONG_PTR s_counterFlag32Bit = 0x00000000 [static]

const ULONG_PTR s_counterFlag64Bit = 0x10000000 [static]

const ULONG_PTR s_counterOffsetMask = 0x0FFFFFFF [static]

const _tstring s_emptyString [static]

const _tstring s_emptyString [static]

const _tstring s_lineEnd = _T("\r\n") [static]

const _tstring s_lineEnd = _T("\r\n") [static]


Generated on Sun Sep 12 19:09:48 2021 for The Server Framework - v7.4 by doxygen 1.5.3