Grafana只显示分钟刻度

时间:2018-01-31 07:49:17

标签: c# grafana statsd

我是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”中看到。但我明白这一点: enter image description here

图表仅包含每分钟的值!如果我使用导出到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

和diagramm完全消失了!

UPD2 : 我还尝试将StatsD flushInterval:1000 添加到statsd / localConfig.js:

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

是否可以设置期间1

1 个答案:

答案 0 :(得分:2)

好的,有我的解决方案。

首先,非常好的回答here

很快:是的,你可以设置1秒钟的时间:

enter image description here

为此,你必须改变2个配置。

  1. 存储schemas.conf
  2. 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部分中 EQUAL 保留最小值