Grafana показывает только минутную шкалу

Я новичок в Grafana и начну с простого приложения, которое каждую секунду записывает данные:

    internal class Program
{
    private static Logger Logger { get; } = LogManager.GetCurrentClassLogger();

    private static void Main(string[] args)
    {            
        Logger.Info("Starting");
        Do1();

        Logger.Info("Press enter to exit");
        Console.ReadKey();
    }


    private static void Do1()
    {
        Metrics.Configure(new MetricsConfig
        {                
            StatsdServerName = "metrics.globogames.local",                
            Prefix = "dev.MetricsTest"
        });

        var rand = new Random();
        for (var i = 0; i < 100000; i++)
        {
            var val = rand.Next(10000);

            Logger.Info(val);

            Metrics.GaugeAbsoluteValue("gauge-absolute6", val);

            Thread.Sleep(1000);
        }
    }
}

Я использую Statsd C# Client для отправки данных. Поэтому я ожидаю увидеть в своей метрике значения "gauge-absolute6" для каждой секунды. Но я вижу это: введите здесь описание изображения

Диаграмма содержит значения только для каждой минуты! Если я использую экспорт в CSV, я вижу ту же картину:

sep=;
Series;Time;Value
stats.gauges.dev.MetricsTest.gauge-absolute6;2018-01-31T07:40:00.000Z;5482
stats.gauges.dev.MetricsTest.gauge-absolute6;2018-01-31T07:41:00.000Z;4344
stats.gauges.dev.MetricsTest.gauge-absolute6;2018-01-31T07:42:00.000Z;7286
stats.gauges.dev.MetricsTest.gauge-absolute6;2018-01-31T07:43:00.000Z;2527
stats.gauges.dev.MetricsTest.gauge-absolute6;2018-01-31T07:44:00.000Z;1744

Проблема в моем коде, Grafana или моих показателях?

Как посмотреть диаграмму с значениями для каждой секунды?

UPD:

после того, как я изменю свой carbon/storage-schemas.conf с

[default_1min_for_1day]
pattern = .*
retentions = 60s:1d

[statsd]
pattern = ^stats.*
retentions = 10s:1d,1m:7d,10m:1y

to

[statsd]
pattern = ^stats.*
retentions = 10s:1d,1m:7d,10m:1y

[default_1min_for_1day]
pattern = .*
retentions = 60s:1d

он начинает показывать каждые 10 секунд. Но мне все еще нужна каждая 1 секунда, поэтому я пытаюсь сделать так

[statsd]
pattern = ^stats.*
retentions = 1s:1d,1m:7d,10m:1y

а диаграмма исчезнет вообще!

UPD2: я также пытаюсь добавить StatsD flushInterval: 1000 в statsd/localConfig.js:

{
  graphitePort: 2003
, graphiteHost: "localhost"
, port: 8125
, graphite: {
    legacyNamespace: false
  }
, flushInterval: 1000
}

Можно ли установить период 1 с?


person Timur Lemeshko    schedule 31.01.2018    source источник


Ответы (1)


Хорошо, есть мое решение.

Прежде всего, очень хороший ответ здесь

Коротко: Да, вы можете установить период 1 секунду:

введите здесь описание изображения

Для этого вам нужно изменить 2 config.

  1. storage-schemas.conf

1.1. добавить правило

[statsd]
pattern = ^stats.*
retentions = 1s:1d,1m:7d,10m:1y

1.2. это правило ДОЛЖНО быть перед правилом для всех:

[carbon]
pattern = ^carbon\.
retentions = 60:90d

[statsd]
pattern = ^stats.*
retentions = 1s:1d,1m:7d,10m:1y

[default_1min_for_1day]
pattern = .*
retentions = 60s:1d

2.statsd/localConf.js

2.1. Добавить (или изменить) интервал мигания

, flushInterval: 1000

так:

{
  graphitePort: 2003
, graphiteHost: "localhost"
, port: 8125
, graphite: {
    legacyNamespace: false
  }
, flushInterval: 1000
}  

3. flushInterval ДОЛЖЕН быть РАВНЫМ удержаниям минимального значения в разделе statsd

person Timur Lemeshko    schedule 01.02.2018