要使用 Prometheus API 获取主机名,您可以使用以下步骤:
连接到 Prometheus 实例,并使用标签查询获取所有实例的
__meta_kubernetes_node_name标签值。例如,使用 PromQL 查询语句:{__name__=~".+"} __meta_kubernetes_node_name。将查询结果转换为 Python 对象(如字典或 Pandas 数据框),以便进行后续处理和导出操作。
提取主机名列表并进行进一步处理或导出。例如,在 Pandas 中,可以使用以下代码提取唯一的主机名列表并将其导出到 CSV 文件中:
import pandas as pd
# 使用 prometheus-api-client 库连接到 Prometheus 实例
from prometheus_api_client import PrometheusConnect
prom = PrometheusConnect()
# 使用 PromQL 查询获取所有实例的 __meta_kubernetes_node_name 标签值
query_result = prom.custom_query('{__name__=~".+"} __meta_kubernetes_node_name')
# 将查询结果转换为 Pandas 数据框
df = pd.DataFrame(query_result)
# 提取主机名列表并去重
hosts = df['__meta_kubernetes_node_name'].unique()
# 导出主机名列表到 CSV 文件
pd.DataFrame(hosts, columns=['node_name']).to_csv('hosts.csv', index=False)
以上是一个简单的示例,具体实现可能需要根据您的环境和需求进行调整。




