Может кто-нибудь объяснить MySeriesHelper в influenxdb, не так много информации, и я новичок в этом - PullRequest
0 голосов
/ 11 июля 2019

В настоящее время я пишу точки данных, используя client.write_points, но я хочу записывать точки данных партиями. Как мне поступить? Вот мой код.

def send_measurement_to_influx(influx_measurement_payload, client):
  try:

    client.write_points(influx_measurement_payload)
    pass
except Exception as e:
    logging.exception("Error while sending measurement {} to influx host", format(str(influx_measurement_payload)),
                      e, exc_info=True)

def timeit(**kwargs):
 def timeit_helper(method):
    def timed(*args, **kw):
        ts = time.time()
        result = method(*args, **kw)
        te = time.time()

        if('metric_name' in kwargs):
            metric_name = kwargs['metric_name']
            client = get_influx_client()
            if(client is not None):
              influx_measurement_payload = [(generate_influx_payload(metric_name, method.__name__,
                                                                   method.__module__, (te-ts) * 1000))]

              send_measurement_to_influx(influx_measurement_payload, client)



        if 'log_time' in kwargs:
            name = kwargs.get('log_name', method.__name__.upper())
            kwargs['log_time'][name] = int((te - ts) * 1000)
        else:
            logging.info('%r  %2.2f ms' % \
                         (method.__name__, (te - ts) * 1000))
        return result
    return timed
return timeit_helper

1 Ответ

0 голосов
/ 11 июля 2019

Вы передаете размер партии с помощью вызова write_points.

client.write_points(influx_measurement_payload, batch_size=1000)

Документы https://influxdb -python.readthedocs.io / ен / последний / апи-documentation.html? Выделить = партии # influxdb.InfluxDBClient.write_points

Здесь они предлагают, чтобы, если полезная нагрузка содержала более 5000 точек данных, вы могли бы начать использовать пакетную опцию. Так что batch_size = 5000 - это что-то вроде верхнего предела, но это будет зависеть от варианта использования, и лучше получить хороший batch_size путем его сравнения.

https://docs.influxdata.com/influxdb/v1.7/guides/writing_data/#writing-points-from-a-file

...