【发布时间】:2018-01-31 07:49:16
【问题描述】:
我是 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
到
[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
}
是否可以设置周期1s?
【问题讨论】: