Пример #1
0
    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);
    }
Пример #2
0
    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
                });
            }
        }
    }
Пример #3
0
 static public ScopeArray <T> ScopeClone <T>(this ScopeArray <T> value, ReferenceHashTable <object> seenObject)
 {
     return((ScopeArray <T>) new ArrayColumnData <T>(value).Clone().Value);
 }
Пример #4
0
 static public void Read <T>(BinaryValueReader reader, out ScopeArray <T> v)
 {
     reader.Read(out v);
 }
Пример #5
0
 static public void Write <T>(BinaryValueWriter writer, ScopeArray <T> v)
 {
     writer.Write(v);
 }