如何使用时间字段将指标数据添加到 influxdb?

How to use time field in adding metrics data to the influx db?

我正在使用以下代码行在 influxDB 中添加指标数据。

    def add_job_influx_db_metrics(tags_dict={}, values_dict={}, measurement='test'):
       influxdb_client = InfluxDB.get_connection()
       db_name = "mydb"
       influxdb_client.switch_database(database=db_name)
       current_time = time.strftime('%Y-%m-%dT%H:%M:%SZ',time.localtime(time.time()))
       json_body = [
        {
          "measurement": measurement,
          "tags": tags_dict,
          "time": current_time,
          "fields": values_dict
         }
       ]
      response = influxdb_client.write_points(points=json_body)
      print "write_operation response", response

当我将它与 Grafana 集成时,数据没有出现但是当我在 127.0.0.1:8083 上检查它时,它显示时间是 1970-01-01T00:00:00Z。可能,它默认采用起始纪元时间。 我想采取 "2015-8-19T07:15:00Z" 形式的时间。 如何获取influxdb(python client)中的时间字段,timePrecision是什么?

您需要 UNIX 时间戳,所以它应该是:

"time": int(time.time())

编辑:

纳秒时间精度的时间:

"time": int(time.time() * 1000000000)

最终,可以使用秒精度 "time": int(time.time()) 并明确指定:

 write_points(points, time_precision='s')
 from datetime import datetime
 current_time = datetime.utcnow().strftime('%Y-%m-%dT%H:%M:%SZ')

并在 json_body-

中像这样使用 "time"
"time": current_time

有效。