Я новичок в 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 с?