调用Grafana API导出CSV时遇KeyError,请求排查解决
解决Grafana导出脚本的KeyError问题
问题根源
错误提示找不到my-api-key环境变量,但你的代码里实际读取的是grafana_api_key,变量名不匹配;另外就算变量名一致,环境变量也可能未正确设置到脚本运行的环境中。
分步解决
1. 统一环境变量名
先确保代码里的环境变量名和你实际设置的完全一致:
- 如果你想保留代码里的
grafana_api_key,就不要设置my-api-key,后续所有操作都用grafana_api_key作为环境变量名; - 如果你已经设置了
my-api-key,就把代码里的os.environ["grafana_api_key"]改成os.environ["my-api-key"]。
2. 正确设置环境变量
根据脚本运行的位置选择对应方式:
- 本地主机运行脚本(因为Grafana端口已映射到本地3000):
- Linux/macOS终端:
export grafana_api_key="你的Grafana API密钥" python grafana-exporter.py - Windows命令提示符:
set grafana_api_key=你的Grafana API密钥 python grafana-exporter.py - Windows PowerShell:
$env:grafana_api_key="你的Grafana API密钥" python grafana-exporter.py
- Linux/macOS终端:
- 容器内运行脚本:
如果脚本和Grafana在同一个容器,或者单独的容器,运行容器时通过-e参数传入环境变量:
或者在docker run -e grafana_api_key="你的Grafana API密钥" 镜像名 python grafana-exporter.pydocker-compose.yml中添加环境变量配置:services: your-service: environment: - grafana_api_key=你的Grafana API密钥
3. 可选:添加容错处理
为了让脚本在环境变量未设置时给出更友好的提示,修改代码里的API_KEY读取部分:
API_KEY = os.environ.get("grafana_api_key") if not API_KEY: raise ValueError("请先设置grafana_api_key环境变量")
内容的提问来源于stack exchange,提问作者Alireza
相关产品推荐
相关产品推荐

