Add API to query influxdb info
This commit is contained in:
@@ -1328,6 +1328,42 @@ def query_curve_by_ID_property_daterange(ID: str, type: str, property: str, star
|
|||||||
return results
|
return results
|
||||||
|
|
||||||
|
|
||||||
|
def query_buckets(client: InfluxDBClient=client) -> list[str]:
|
||||||
|
# 获取 Buckets API 实例
|
||||||
|
buckets_api = client.buckets_api()
|
||||||
|
|
||||||
|
# 查询所有 Buckets
|
||||||
|
buckets = buckets_api.find_buckets().buckets
|
||||||
|
|
||||||
|
print("All Buckets:")
|
||||||
|
buckets_list = []
|
||||||
|
for bucket in buckets:
|
||||||
|
buckets.append(bucket.name)
|
||||||
|
|
||||||
|
return buckets_list
|
||||||
|
|
||||||
|
def query_tags(bucket: str, client: InfluxDBClient=client) -> list[str]:
|
||||||
|
query_api = client.query_api()
|
||||||
|
|
||||||
|
# 定义 Flux 查询
|
||||||
|
query = f'''
|
||||||
|
from(bucket: "your-bucket")
|
||||||
|
|> range(start: -1y) # 时间范围(可根据需要调整)
|
||||||
|
|> filter(fn: (r) => r._measurement == "{bucket}")
|
||||||
|
|> tagKeys() # 直接获取所有 Tag 键名
|
||||||
|
'''
|
||||||
|
|
||||||
|
# 执行查询
|
||||||
|
result = query_api.query(query)
|
||||||
|
|
||||||
|
# 提取 Tag 列表
|
||||||
|
tag_keys = []
|
||||||
|
for table in result:
|
||||||
|
for record in table.records:
|
||||||
|
tag_keys.append(record.get_value())
|
||||||
|
|
||||||
|
tag_keys
|
||||||
|
|
||||||
# 示例调用
|
# 示例调用
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
url = influxdb_info.url
|
url = influxdb_info.url
|
||||||
|
|||||||
8
main.py
8
main.py
@@ -2130,6 +2130,14 @@ async def query_scada_data_by_device_id_and_time(ids: str, querytime: str):
|
|||||||
return influxdb_api.query_SCADA_data_by_device_ID_and_time(query_ids_list=query_ids, query_time=querytime, client=influx_client)
|
return influxdb_api.query_SCADA_data_by_device_ID_and_time(query_ids_list=query_ids, query_time=querytime, client=influx_client)
|
||||||
|
|
||||||
|
|
||||||
|
@app.get("/queryinfluxdbbuckets/")
|
||||||
|
async def fastapi_query_influxdb_buckets():
|
||||||
|
return influxdb_api.query_buckets()
|
||||||
|
|
||||||
|
@app.get("/queryinfluxdbbuckettags/")
|
||||||
|
async def fastapi_query_influxdb_bucket_tags(bucket: str):
|
||||||
|
return influxdb_api.query_tags(bucket=bucket)
|
||||||
|
|
||||||
|
|
||||||
# DingZQ, 2024-12-31, generate openapi.json
|
# DingZQ, 2024-12-31, generate openapi.json
|
||||||
def generate_openapi_json():
|
def generate_openapi_json():
|
||||||
|
|||||||
Reference in New Issue
Block a user