Политика хранения statsd InfxDB не найдена

при отправке данных в statsd:

echo "foo:1|c" | nc -u -w0 127.0.0.1 8125

statsd выведет результат после обновления и вставит данные в InfxDB:

{ counters: 
   { 'statsd.bad_lines_seen': 0,
     'statsd.packets_received': 1,
     'statsd.metrics_received': 1,
     foo: 1 },
  timers: {},
  gauges: { 'statsd.timestamp_lag': 0 },
  timer_data: {},
  counter_rates: 
   { 'statsd.bad_lines_seen': 0,
     'statsd.packets_received': 0.03333333333333333,
     'statsd.metrics_received': 0.03333333333333333,
     foo: 0.03333333333333333 },
  sets: {},
  pctThreshold: [ 90 ] }

запустите команду, чтобы отобразить информацию о InfxDB:

$curl -G 'http://localhost:8086/query?pretty=true' --data-urlencode "db=mydb" --data-urlencode "q=SHOW MEASUREMENTS"

даст ответ успешно:

{
    "results": [
        {
            "series": [
                {
                    "name": "measurements",
                    "columns": [
                        "name"
                    ],
                    "values": [
                        [
                            "cpu_load_short"
                        ],
                        [
                            "foo.counter"
                        ]
                    ]
                }
            ]
        }
    ]
}

то я хочу запросить данные из InfxDB:

$curl -G 'http://localhost:8086/query?pretty=true' --data-urlencode "db=mydb" --data-urlencode "q=SELECT value FROM foo.counter"

Я получаю сообщение об ошибке:

{
    "results": [
        {
            "error": "retention policy not found"
        }
    ]
}

Любые идеи? infxDB: 0.9.3


person fudy    schedule 10.09.2015    source источник


Ответы (2)


Вы нашли правильное разрешение, а именно: любые идентификаторы, содержащие точку, должны быть заключены в двойные кавычки. Исходный запрос анализируется как select * from the measurement "counter" from the retention policy "foo", поэтому возникает ошибка foo not found.

person beckettsean    schedule 10.09.2015

извините, запрос должен быть

$curl -G 'http://localhost:8086/query?pretty=true' --data-urlencode "db=mydb" --data-urlencode 'q=SELECT * FROM "foo.counter"'

заключите "foo.counter" в двойные кавычки, сообщение об ошибке не поможет.

person fudy    schedule 10.09.2015