This commit is contained in:
DingZQ
2025-02-15 15:24:36 +08:00
parent 8c16a090ec
commit 6847b35813
2 changed files with 22 additions and 5 deletions

View File

@@ -1342,14 +1342,27 @@ def query_buckets(client: InfluxDBClient=client) -> list[str]:
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()
# 定义 Flux 查询
query = f'''
from(bucket: "your-bucket")
from(bucket: "{bucket}")
|> range(start: -1y) # 时间范围(可根据需要调整)
|> filter(fn: (r) => r._measurement == "{bucket}")
|> filter(fn: (r) => r._measurement == "{measurement}")
|> tagKeys() # 直接获取所有 Tag 键名
'''

View File

@@ -2134,9 +2134,13 @@ async def query_scada_data_by_device_id_and_time(ids: str, querytime: str):
async def fastapi_query_influxdb_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/")
async def fastapi_query_influxdb_bucket_tags(bucket: str):
return influxdb_api.query_tags(bucket=bucket)
async def fastapi_query_influxdb_bucket_tags(bucket: str, measurement: str):
return influxdb_api.query_tags(bucket=bucket, measurement=measurement)
# DingZQ, 2024-12-31, generate openapi.json