Refine
This commit is contained in:
@@ -1342,14 +1342,27 @@ def query_buckets(client: InfluxDBClient=client) -> list[str]:
|
|||||||
|
|
||||||
return buckets_list
|
return buckets_list
|
||||||
|
|
||||||
def query_tags(bucket: str, client: InfluxDBClient=client) -> list[str]:
|
def query_measurements(bucket: str, client: InfluxDBClient=client) -> list[str]:
|
||||||
|
query = f'''
|
||||||
|
import "influxdata/influxdb/schema"
|
||||||
|
schema.measurements(bucket: "{bucket}")
|
||||||
|
'''
|
||||||
|
|
||||||
|
result = client.query_api().query(query)
|
||||||
|
|
||||||
|
# 提取测量名称
|
||||||
|
measurements = [row.values["_value"] for table in result for row in table.records]
|
||||||
|
return measurements
|
||||||
|
|
||||||
|
|
||||||
|
def query_tags(bucket: str, measurement: str, client: InfluxDBClient=client) -> list[str]:
|
||||||
query_api = client.query_api()
|
query_api = client.query_api()
|
||||||
|
|
||||||
# 定义 Flux 查询
|
# 定义 Flux 查询
|
||||||
query = f'''
|
query = f'''
|
||||||
from(bucket: "your-bucket")
|
from(bucket: "{bucket}")
|
||||||
|> range(start: -1y) # 时间范围(可根据需要调整)
|
|> range(start: -1y) # 时间范围(可根据需要调整)
|
||||||
|> filter(fn: (r) => r._measurement == "{bucket}")
|
|> filter(fn: (r) => r._measurement == "{measurement}")
|
||||||
|> tagKeys() # 直接获取所有 Tag 键名
|
|> tagKeys() # 直接获取所有 Tag 键名
|
||||||
'''
|
'''
|
||||||
|
|
||||||
|
|||||||
8
main.py
8
main.py
@@ -2134,9 +2134,13 @@ async def query_scada_data_by_device_id_and_time(ids: str, querytime: str):
|
|||||||
async def fastapi_query_influxdb_buckets():
|
async def fastapi_query_influxdb_buckets():
|
||||||
return influxdb_api.query_buckets()
|
return influxdb_api.query_buckets()
|
||||||
|
|
||||||
|
@app.get("/queryinfluxdbbucketmeasurements/")
|
||||||
|
async def fastapi_query_influxdb_bucket_measurements(bucket: str):
|
||||||
|
return influxdb_api.query_measurements(bucket=bucket)
|
||||||
|
|
||||||
@app.get("/queryinfluxdbbuckettags/")
|
@app.get("/queryinfluxdbbuckettags/")
|
||||||
async def fastapi_query_influxdb_bucket_tags(bucket: str):
|
async def fastapi_query_influxdb_bucket_tags(bucket: str, measurement: str):
|
||||||
return influxdb_api.query_tags(bucket=bucket)
|
return influxdb_api.query_tags(bucket=bucket, measurement=measurement)
|
||||||
|
|
||||||
|
|
||||||
# DingZQ, 2024-12-31, generate openapi.json
|
# DingZQ, 2024-12-31, generate openapi.json
|
||||||
|
|||||||
Reference in New Issue
Block a user