пакетный запрос не может запрашивать данные из "" "". - PullRequest
0 голосов
/ 06 мая 2020

Я начинаю работать с Kapacitor и пытаюсь запустить первое руководство в документации Kapacitor, но с данными, которые у меня уже есть. Мне удалось определить задачу, но я не могу ни включить ее, ни запустить обратную засыпку. Я наткнулся на этот вопрос , который похож на мою проблему, но ответ на него не помог. В отличие от сообщения об ошибке здесь я получаю пустые строки для базы данных, политики хранения и / или измерения.

В конфигурации Kapacitor я установил соединение InfluxDB с экземпляром локального хоста с именем localhost (который имеет базу данных mydb и измерения weather.current.clouds и weather.current.visibility с политикой хранения по умолчанию autogen) и создал следующий weathertest.tick скрипт:

dbrp "mydb"."autogen"

var clouds = batch
  |query('select mean(value) / 100.0 as val from "mydb"."autogen"."weather.current.clouds"')
    .period(1h)
    .every(1h)
    .groupBy(time(1m), *)
    .fill(0)

var vis = batch
  |query('select mean(value) / 10000.0 as val from "mydb"."autogen"."weather.current.visibility"')
    .period(1h)
    .every(1h)
    .groupBy(time(1m), *)
    .fill(0)

clouds
  |join(vis)
    .as('c', 'v')
  |eval(lambda: 100 * (1 - "c.val") * "v.val")
    .as('pcent')
  |influxDBOut()
    .cluster('localhost')
    .database('mydb')
    .retentionPolicy('autogen')
    .measurement('testmetric')
    .tag('host', 'myhost.local')
    .tag('key', 'weather.current.lightidx')

Это то, что я придумал в нерабочее время методом проб и (особенно) ошибок. Как указано в заголовке, когда я пытаюсь включить свою задачу с помощью kapacitor enable weathertest, я получаю сообщение об ошибке enabling task weathertest: batch query is not allowed to request data from ""."". То же самое, когда я пытаюсь записать, как в примере «Backfill» . Кроме того, в этом примере есть дата начала и дата окончания для ограничения временного интервала. Указанный там формат времени неверен и не понимается Kapacitor. Вместо, например, 2015-10-01 я должен ввести 2015-10-01T00:00Z, чтобы он, по крайней мере, передавал сообщение об ошибке, касающееся ошибки формата времени.

В журналах Kapacitor нет ни одной строки об этих ошибках, только когда Я пытаюсь удалить запись, получаю что-то вроде remove /var/lib/kapacitor/replay/1f5...750.brpl: no such file or directory, и это можно найти в журналах. В журналах много info строк, показывающих успешные POST-запросы в / из InfluxDB для базы данных _internal с результатом HTTP-ответа 204.

Есть ли у кого-нибудь идея, что я делаю неправильно?

1 Ответ

0 голосов
/ 15 мая 2020

Хорошо, после выходных попробовал еще раз. Без каких-либо изменений он принял мой сценарий сейчас на неудачных этапах, однако теперь я смог найти сообщения об ошибках в журнале. Упомянутый там узел был узлом eval и указывал на несоответствие типов. Когда я изменил строку

|eval(lambda: 100 * (1 - "c.val") * "v.val")

на

|eval(lambda: 100.0 * (1.0 - "c.val") * "v.val")

, сообщения об ошибках исчезли, а команда kapacitor show weathertest теперь показывала довольно нормальное содержимое.

Кроме того, Я переопределял, записывал, воспроизводил и удалял задачи и записи во время моих тестов снова и снова, и, возможно, я забыл переопределить задачи после внесения изменений в сценарий тиков (не совсем уверен). После изменения вышеуказанного, переопределения задачи и ее повторного воспроизведения я наконец нашел ожидаемые данные в экземпляре InfluxDB.

...