Лямбда-функция помещает только одну точку данных в InfluxDB - PullRequest
0 голосов
/ 11 июля 2020

У меня есть лямбда-функция, которая предназначена для получения сообщения из очереди SQS, а затем ввода значения с именем perf_value, которое является просто целым числом. Журналы CloudWatch показывают, что он срабатывает каждый раз и регистрирует Done, как показано в блоке .then() моей точки записи. С его запуском каждый раз, когда я все еще вижу только одну точку данных в InfluxDB Cloud. Я не могу понять, почему он вводит только одно значение, а после этого ничего. Я не вижу отставания в SQS и сообщений об ошибках в CloudWatch. Я предполагаю, что это проблема кода или настройки InfluxDB Cloud, хотя я использовал значения по умолчанию, которые, как вы ожидаете, действительно будут работать для нескольких точек данных

'use strict';

const {InfluxDB, Point, HttpError} = require('@influxdata/influxdb-client')

const InfluxURL = 'https://us-west-2-1.aws.cloud2.influxdata.com'
const token = '<my token>=='
const org = '<my org>'
const bucket= '<bucket name>'

const writeApi = new InfluxDB({url: InfluxURL, token}).getWriteApi(org, bucket, 'ms')

module.exports.perf = function (event, context, callback) {
  context.callbackWaitsForEmptyEventLoop = false;

  let input = JSON.parse(event.Records[0].body);
  console.log(input)

  const point = new Point('elapsedTime')
    .tag(input.monitorID, 'monitorID')
    .floatField('elapsedTime', input.perf_value)
    // .timestamp(input.time)
  writeApi.writePoint(point)
  writeApi
  .close()
  .then(() => {
    console.log('Done')
  })
  .catch(e => {
    console.error(e)
    if (e instanceof HttpError && e.statusCode === 401) {
      console.log('Unauthorized request')
    }
    console.log('\nFinished ERROR')
  })

  return true
};

EDIT ** Все еще не удалось решить проблему. Я могу получить одну точку данных для go в Influxdb, и тогда ничего не появится.

...