public void AddSample(ResourceLoadState healthState, int currentCapacity) { this.avg5min.AddSample(healthState, currentCapacity); this.avg1hour.AddSample(healthState, currentCapacity); this.avg1day.AddSample(healthState, currentCapacity); this.avgCustom.AddSample(healthState, currentCapacity); }
public static ResourceLoad operator +(ResourceLoad load, double delta) { ResourceLoadState state = load.State; if (state == ResourceLoadState.Unknown || state == ResourceLoadState.Critical) { return(load); } return(new ResourceLoad(load.LoadRatio + delta, load.Metric, load.Info)); }
public override string ToString() { ResourceLoadState state = this.State; if (state != ResourceLoadState.Critical && state != ResourceLoadState.Unknown) { return(string.Format("{0}/{1:#0.00}/{2}", state, this.LoadRatio, this.Metric)); } return(string.Format("{0}//{1}", state, this.Metric)); }
public Bucketizer(TimeSpan windowWidth) { ushort numberOfBuckets = (ushort)windowWidth.TotalMinutes; this.healthValues = new Dictionary <ResourceLoadState, FixedTimeSum>(); foreach (object obj in Enum.GetValues(typeof(ResourceLoadState))) { ResourceLoadState key = (ResourceLoadState)obj; this.healthValues[key] = new FixedTimeSum(60000, numberOfBuckets); } this.averageCapacity = new FixedTimeAverage(60000, numberOfBuckets, Environment.TickCount); }
// Token: 0x060009DD RID: 2525 RVA: 0x0002C5C8 File Offset: 0x0002A7C8 private void LogRow(string processName, int processId, int threadId, string targetForest, ResourceLoadState resourceLoadState, int metricValue, string topDomainControllersIncomingDebt) { LogRowFormatter logRowFormatter = new LogRowFormatter(this.logSchema); logRowFormatter[1] = processName; logRowFormatter[2] = processId; logRowFormatter[3] = threadId; logRowFormatter[4] = targetForest; logRowFormatter[5] = resourceLoadState; logRowFormatter[6] = metricValue; logRowFormatter[7] = topDomainControllersIncomingDebt; this.AppendLogRow(logRowFormatter); }
private bool TryReadRegistryHealthOverride(out ResourceLoadState healthValue) { uint num; bool int32ValueFromRegistryValue = TenantRelocationSyncCoordinator.GetInt32ValueFromRegistryValue("ADHealthOverrideForTenantRelocation", out num); if (int32ValueFromRegistryValue) { healthValue = (ResourceLoadState)num; } else { healthValue = ResourceLoadState.Unknown; } return(int32ValueFromRegistryValue); }
public static double operator -(ResourceLoad load1, ResourceLoad load2) { ResourceLoadState state = load1.State; if (state == ResourceLoadState.Unknown || state == ResourceLoadState.Critical) { return(double.NaN); } ResourceLoadState state2 = load2.State; if (state2 == ResourceLoadState.Unknown || state2 == ResourceLoadState.Critical) { return(double.NaN); } return(load1.LoadRatio - load2.LoadRatio); }
// Token: 0x060009DA RID: 2522 RVA: 0x0002C4F4 File Offset: 0x0002A6F4 public void Log(string targetForest, ResourceLoadState resourceLoadState, int metricValue, Dictionary <string, ADServerMetrics> topDCsToLog) { if (DirectoryThrottlingLog.LoggingEnabled) { int count = topDCsToLog.Count; StringBuilder stringBuilder = new StringBuilder(); foreach (KeyValuePair <string, ADServerMetrics> keyValuePair in topDCsToLog) { stringBuilder.AppendFormat("{0},{1},", keyValuePair.Key, keyValuePair.Value.IncomingDebt); } string topDomainControllersIncomingDebt = stringBuilder.ToString().Trim(new char[] { ',' }); this.LogRow(Globals.ProcessName, Globals.ProcessId, Thread.CurrentThread.ManagedThreadId, targetForest, resourceLoadState, metricValue, topDomainControllersIncomingDebt); } }
private long Convert(ResourceLoad load) { ResourceLoadState state = load.State; if (state == ResourceLoadState.Unknown) { return(0L); } if (state == ResourceLoadState.Critical) { return(long.MaxValue); } if (load.LoadRatio >= 92233720368547760.0) { return(long.MaxValue); } return((long)(load.LoadRatio * 100.0)); }
public int GetHealthAndCalculateDelay(out ResourceLoadState health) { if (this.TryReadRegistryHealthOverride(out health)) { ExTraceGlobals.TenantRelocationTracer.TraceDebug <ResourceLoadState, string>((long)this.GetHashCode(), "TenantRelocationThrottlingManager.Throttle() - override detected, override value:{0}. Current forest: {1}", health, this.partitionFqdn); } else { health = this.GetWlmADHealthMetric(); ExTraceGlobals.TenantRelocationTracer.TraceDebug <ResourceLoadState, string>((long)this.GetHashCode(), "TenantRelocationThrottlingManager.Throttle() - AD Health monitor returned value:{0}. Current forest: {1}", health, this.partitionFqdn); } int num; switch (health) { case ResourceLoadState.Unknown: case ResourceLoadState.Underloaded: num = TenantRelocationConfigImpl.GetConfig <int>("LoadStateNoDelayMs"); break; case ResourceLoadState.Full: num = TenantRelocationConfigImpl.GetConfig <int>("LoadStateDefaultDelayMs"); break; case ResourceLoadState.Overloaded: num = TenantRelocationConfigImpl.GetConfig <int>("LoadStateOverloadedDelayMs"); break; case ResourceLoadState.Critical: num = TenantRelocationConfigImpl.GetConfig <int>("LoadStateCriticalDelayMs"); break; default: throw new NotImplementedException(); } if (num < 100) { num = 100; } return(num); }
public void AddSample(ResourceLoadState healthState, int currentCapacity) { this.healthValues[healthState].Add(1U); this.averageCapacity.Add((uint)currentCapacity); }