Ejemplo n.º 1
0
 /// <summary>
 /// Update data for the metrics. Called immediately before the metrics are scraped.
 /// </summary>
 public void UpdateMetrics()
 {
     foreach (var(name, value) in MemInfoParser.Parse())
     {
         if (_metrics.TryGetValue(name, out var gauge))
         {
             gauge.Set(value);
         }
     }
 }
Ejemplo n.º 2
0
        /// <summary>
        /// Creates the Prometheus metric.
        /// </summary>
        /// <param name="factory">Factory to create metric using</param>
        public void CreateMetrics(MetricFactory factory)
        {
            var metrics = new Dictionary <string, Gauge>();

            foreach (var(name, _) in MemInfoParser.Parse())
            {
                var cleanName = name.Replace('(', '_').Replace(")", "");
                cleanName     = $"node_memory_{cleanName}_bytes";
                metrics[name] = factory.CreateGauge(cleanName, $"Memory information field {name}");
            }
            _metrics = metrics;
        }
        public void ParsesMemInfo()
        {
            const string input  = @"
MemTotal:       16470140 kB
MemFree:         3690788 kB
Buffers:           34032 kB
Cached:           188576 kB
Active(anon):     103104 kB
Inactive(anon):    17440 kB
Active(file):      64452 kB
Dirty:                 0 kB
HugePages_Total:       0
";
            var          result = MemInfoParser.Parse(input);

            result.Should().BeEquivalentTo(new[]