// Token: 0x060004A8 RID: 1192 RVA: 0x0001B1D7 File Offset: 0x000193D7 public static void UpdateDirectoryADRawCachePropertiesMismatchRate(bool mismatch) { ADProviderPerf.directoryADRawEntryPropertiesMisMatchCounter.Value.AddDenominator(1L); if (mismatch) { ADProviderPerf.directoryADRawEntryPropertiesMisMatchCounter.Value.AddNumerator(1L); } ADProviderPerf.InitializeTimerIfRequired(); }
// Token: 0x060004A9 RID: 1193 RVA: 0x0001B208 File Offset: 0x00019408 public static void UpdateADDriverCacheHitRate(bool cacheHit) { ADProviderPerf.adDriverCacheHitCounter.Value.AddDenominator(1L); if (cacheHit) { ADProviderPerf.adDriverCacheHitCounter.Value.AddNumerator(1L); } MSExchangeADAccessCacheCountersInstance value = ADProviderPerf.processADDriverCacheCounters.Value; if (value != null) { value.NumberOfCacheRequests.Increment(); } ADProviderPerf.InitializeTimerIfRequired(); }
// Token: 0x060004A3 RID: 1187 RVA: 0x0001AA18 File Offset: 0x00018C18 public static void UpdateGlsCallLatency(string apiName, bool isRead, int latencyMsec, bool success) { GlsProcessPerformanceCountersInstance value = ADProviderPerf.processGlsCounters.Value; GlsPerformanceCounters.AverageOverallLatency.IncrementBy((long)latencyMsec); GlsPerformanceCounters.AverageOverallLatencyBase.Increment(); if (isRead) { GlsPerformanceCounters.AverageReadLatency.IncrementBy((long)latencyMsec); GlsPerformanceCounters.AverageReadLatencyBase.Increment(); if (value != null) { value.AverageReadLatency.IncrementBy((long)latencyMsec); value.AverageReadLatencyBase.Increment(); } } else { GlsPerformanceCounters.AverageWriteLatency.IncrementBy((long)latencyMsec); GlsPerformanceCounters.AverageWriteLatencyBase.Increment(); if (value != null) { value.AverageWriteLatency.IncrementBy((long)latencyMsec); value.AverageWriteLatencyBase.Increment(); } } if (value != null) { value.AverageOverallLatency.IncrementBy((long)latencyMsec); value.AverageOverallLatencyBase.Increment(); ADProviderPerf.perProcessPercentileGlsLatency.AddValue((long)latencyMsec); uint num = (uint)ADProviderPerf.perProcessPercentileGlsLatency.PercentileQuery(95.0); value.NinetyFifthPercentileLatency.IncrementBy((long)((ulong)num)); value.NinetyFifthPercentileLatencyBase.Increment(); num = (uint)ADProviderPerf.perProcessPercentileGlsLatency.PercentileQuery(99.0); value.NinetyNinthPercentileLatency.IncrementBy((long)((ulong)num)); value.NinetyNinthPercentileLatencyBase.Increment(); lock (ADProviderPerf.slidingTotalLockRoot) { if (success) { ADProviderPerf.successesPerMinute.AddValue(1L); } else { ADProviderPerf.failuresPerMinute.AddValue(1L); } } ADProviderPerf.InitializeTimerIfRequired(); } switch (apiName) { case "FindTenant": GlsApiPerformanceCounters.FindTenantAverageOverallLatency.IncrementBy((long)latencyMsec); GlsApiPerformanceCounters.FindTenantAverageOverallLatencyBase.Increment(); return; case "FindDomain": case "FindDomains": GlsApiPerformanceCounters.FindDomainAverageOverallLatency.IncrementBy((long)latencyMsec); GlsApiPerformanceCounters.FindDomainAverageOverallLatencyBase.Increment(); return; case "FindUser": GlsApiPerformanceCounters.FindUserAverageOverallLatency.IncrementBy((long)latencyMsec); GlsApiPerformanceCounters.FindUserAverageOverallLatencyBase.Increment(); return; case "SaveTenant": GlsApiPerformanceCounters.SaveTenantAverageOverallLatency.IncrementBy((long)latencyMsec); GlsApiPerformanceCounters.SaveTenantAverageOverallLatencyBase.Increment(); return; case "SaveDomain": GlsApiPerformanceCounters.SaveDomainAverageOverallLatency.IncrementBy((long)latencyMsec); GlsApiPerformanceCounters.SaveDomainAverageOverallLatencyBase.Increment(); return; case "SaveUser": GlsApiPerformanceCounters.SaveUserAverageOverallLatency.IncrementBy((long)latencyMsec); GlsApiPerformanceCounters.SaveUserAverageOverallLatencyBase.Increment(); return; case "DeleteTenant": GlsApiPerformanceCounters.DeleteTenantAverageOverallLatency.IncrementBy((long)latencyMsec); GlsApiPerformanceCounters.DeleteTenantAverageOverallLatencyBase.Increment(); return; case "DeleteDomain": GlsApiPerformanceCounters.DeleteDomainAverageOverallLatency.IncrementBy((long)latencyMsec); GlsApiPerformanceCounters.DeleteDomainAverageOverallLatencyBase.Increment(); return; case "DeleteUser": GlsApiPerformanceCounters.DeleteUserAverageOverallLatency.IncrementBy((long)latencyMsec); GlsApiPerformanceCounters.DeleteUserAverageOverallLatencyBase.Increment(); return; } throw new ArgumentException("Unknown API " + apiName); }
// Token: 0x060004A7 RID: 1191 RVA: 0x0001B068 File Offset: 0x00019268 public static void UpdateDirectoryCacheHitRatio(bool cacheHit, ObjectType objectType) { ADProviderPerf.directoryCacheHitCounter.Value.AddDenominator(1L); if (cacheHit) { ADProviderPerf.directoryCacheHitCounter.Value.AddNumerator(1L); } if (objectType <= ObjectType.ActiveSyncMiniRecipient) { if (objectType <= ObjectType.MiniRecipient) { switch (objectType) { case ObjectType.ExchangeConfigurationUnit: ADProviderPerf.directoryConfigUnitCacheHitCounter.Value.AddDenominator(1L); if (cacheHit) { ADProviderPerf.directoryConfigUnitCacheHitCounter.Value.AddNumerator(1L); goto IL_15D; } goto IL_15D; case ObjectType.Recipient: break; case ObjectType.ExchangeConfigurationUnit | ObjectType.Recipient: goto IL_15D; case ObjectType.AcceptedDomain: ADProviderPerf.directoryAcceptedDomainCacheHitCounter.Value.AddDenominator(1L); if (cacheHit) { ADProviderPerf.directoryAcceptedDomainCacheHitCounter.Value.AddNumerator(1L); goto IL_15D; } goto IL_15D; default: if (objectType != ObjectType.MiniRecipient) { goto IL_15D; } break; } } else if (objectType != ObjectType.TransportMiniRecipient && objectType != ObjectType.OWAMiniRecipient && objectType != ObjectType.ActiveSyncMiniRecipient) { goto IL_15D; } } else if (objectType <= ObjectType.StorageMiniRecipient) { if (objectType != ObjectType.ADRawEntry) { if (objectType != ObjectType.StorageMiniRecipient) { goto IL_15D; } } else { ADProviderPerf.directoryADRawEntryCacheHitCounter.Value.AddDenominator(1L); if (cacheHit) { ADProviderPerf.directoryADRawEntryCacheHitCounter.Value.AddNumerator(1L); goto IL_15D; } goto IL_15D; } } else if (objectType != ObjectType.LoadBalancingMiniRecipient && objectType != ObjectType.MiniRecipientWithTokenGroups && objectType != ObjectType.FrontEndMiniRecipient) { goto IL_15D; } ADProviderPerf.directoryRecipientCacheHitCounter.Value.AddDenominator(1L); if (cacheHit) { ADProviderPerf.directoryRecipientCacheHitCounter.Value.AddNumerator(1L); } IL_15D: ADProviderPerf.InitializeTimerIfRequired(); }