5

我正在使用以下代码行在 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 客户端)中获取时间字段以及 timePrecision 是什么?

4

2 回答 2

22
 from datetime import datetime
 current_time = datetime.utcnow().strftime('%Y-%m-%dT%H:%M:%SZ')

并在 json_body- 中像这样使用“时间”

"time": current_time

有用。

于 2015-08-20T09:37:10.103 回答
6

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

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

编辑:

具有纳秒时间精度的时间:

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

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

 write_points(points, time_precision='s')
于 2015-08-20T07:59:54.663 回答