public static double GetTotalDisk(ScopeArray <double?> values, ScopeArray <string> diskNames) { var distinctNames = new HashSet <string>(); double result = 0; for (int i = 0; i < Math.Min(values.Count, diskNames.Count); i++) { if (distinctNames.Add(diskNames[i])) { result += values[i] ?? 0; } } return(result); }
public static IEnumerable <Metric> GenerateSeries(DateTime startDay, ScopeArray <string> deviceIds, int numScrapes = 240) { startDay = startDay.Date; for (int i = 0; i < deviceIds.Count; i++) { string deviceId = deviceIds[i]; double avaliability = i / (double)deviceIds.Count; Dictionary <string, string> baseTags = new Dictionary <string, string> { { "instance", "1" }, { "device_id", deviceId }, }; for (int j = 0; j < numScrapes; j++) { DateTime currTime = startDay.AddDays(j / (double)numScrapes); Dictionary <string, string> tags = new Dictionary <string, string>(baseTags); tags.Add("module", "$edgeAgent"); yield return(new Metric { TimeGeneratedUtc = currTime, Name = "edgeagent_total_time_expected_running_seconds", Tags = JsonConvert.SerializeObject(tags), DeviceId = deviceId, Value = 500 * j }); yield return(new Metric { TimeGeneratedUtc = currTime, Name = "edgeagent_total_time_running_correctly_seconds", Tags = JsonConvert.SerializeObject(tags), DeviceId = deviceId, Value = 500 * j * avaliability }); tags = new Dictionary <string, string>(baseTags); tags.Add("module", "$edgeHub"); yield return(new Metric { TimeGeneratedUtc = currTime, Name = "edgeagent_total_time_expected_running_seconds", Tags = JsonConvert.SerializeObject(tags), DeviceId = deviceId, Value = 500 * j }); yield return(new Metric { TimeGeneratedUtc = currTime, Name = "edgeagent_total_time_running_correctly_seconds", Tags = JsonConvert.SerializeObject(tags), DeviceId = deviceId, Value = 500 * j * avaliability }); } } }
static public ScopeArray <T> ScopeClone <T>(this ScopeArray <T> value, ReferenceHashTable <object> seenObject) { return((ScopeArray <T>) new ArrayColumnData <T>(value).Clone().Value); }
static public void Read <T>(BinaryValueReader reader, out ScopeArray <T> v) { reader.Read(out v); }
static public void Write <T>(BinaryValueWriter writer, ScopeArray <T> v) { writer.Write(v); }