76 lines
2.2 KiB
Python
76 lines
2.2 KiB
Python
|
|
#!/usr/bin/env python
|
|||
|
|
# -*- coding: utf-8 -*-
|
|||
|
|
"""诊断指定时间区间的InfluxDB数据"""
|
|||
|
|
|
|||
|
|
import json
|
|||
|
|
import sys
|
|||
|
|
from datetime import datetime, timezone, timedelta
|
|||
|
|
|
|||
|
|
def main():
|
|||
|
|
# 写死配置
|
|||
|
|
influx_config = {
|
|||
|
|
"url": "http://10.0.5.232:8086",
|
|||
|
|
"org": "MEASCON",
|
|||
|
|
"token": "JPZMq2UP5ORhLq8CfsPbawl6k0MSDlJmEwMJ2uvR_TXqW5bUOWIYBQOSXkGNzDqOU3rnuGpIxGxrB_mlAF-EEw=="
|
|||
|
|
}
|
|||
|
|
bucket = "PCM"
|
|||
|
|
measurement = "PCM_Measurement"
|
|||
|
|
|
|||
|
|
# 时间区间(UTC+8转UTC)
|
|||
|
|
start_local = "2026-03-12T17:39:10"
|
|||
|
|
end_local = "2026-03-12T21:09:17"
|
|||
|
|
|
|||
|
|
# 本地时间转UTC(本地时间-8小时=UTC)
|
|||
|
|
start_time = datetime.strptime(start_local, "%Y-%m-%dT%H:%M:%S")
|
|||
|
|
start_time = start_time - timedelta(hours=8)
|
|||
|
|
start_time = start_time.replace(tzinfo=timezone.utc)
|
|||
|
|
|
|||
|
|
end_time = datetime.strptime(end_local, "%Y-%m-%dT%H:%M:%S")
|
|||
|
|
end_time = end_time - timedelta(hours=8)
|
|||
|
|
end_time = end_time.replace(tzinfo=timezone.utc)
|
|||
|
|
|
|||
|
|
print(f"查询时间: {start_time} → {end_time}")
|
|||
|
|
|
|||
|
|
try:
|
|||
|
|
from influxdb_client import InfluxDBClient
|
|||
|
|
|
|||
|
|
client = InfluxDBClient(
|
|||
|
|
url=influx_config['url'],
|
|||
|
|
org=influx_config['org'],
|
|||
|
|
token=influx_config['token']
|
|||
|
|
)
|
|||
|
|
query_api = client.query_api()
|
|||
|
|
|
|||
|
|
# 查询主轴承#1数据
|
|||
|
|
flux = f'''
|
|||
|
|
from(bucket: "{bucket}")
|
|||
|
|
|> range(start: {start_time.strftime('%Y-%m-%dT%H:%M:%SZ')}, stop: {end_time.strftime('%Y-%m-%dT%H:%M:%SZ')})
|
|||
|
|
|> filter(fn: (r) => r["_measurement"] == "{measurement}")
|
|||
|
|
|> filter(fn: (r) => r["data_type"] == "LSDAQ")
|
|||
|
|
|> filter(fn: (r) => r["_field"] == "主轴承#1")
|
|||
|
|
|> limit(n: 10)
|
|||
|
|
'''
|
|||
|
|
|
|||
|
|
print(f"\nFlux查询:\n{flux}\n")
|
|||
|
|
|
|||
|
|
tables = query_api.query(flux)
|
|||
|
|
|
|||
|
|
count = 0
|
|||
|
|
for table in tables:
|
|||
|
|
for record in table.records:
|
|||
|
|
count += 1
|
|||
|
|
print(f"时间: {record.get_time()}, 值: {record.get_value()}")
|
|||
|
|
|
|||
|
|
print(f"\n共找到 {count} 条数据")
|
|||
|
|
|
|||
|
|
client.close()
|
|||
|
|
|
|||
|
|
except Exception as e:
|
|||
|
|
print(f"错误: {e}", file=sys.stderr)
|
|||
|
|
return 1
|
|||
|
|
|
|||
|
|
return 0
|
|||
|
|
|
|||
|
|
if __name__ == "__main__":
|
|||
|
|
sys.exit(main())
|