db2 query-exporter未连接到数据库-抛出“未找到模块”

pprl5pva  于 2022-11-07  发布在  DB2
关注(0)|答案(1)|浏览(159)

我在IBM DB2数据库中有一些数据集需要作为度量所需的东西来使用。为了实现这一点,我尝试使用python的export prometheus metrics from SQL -参考此处:https://pypi.org/project/query-exporter/
我已经尝试使用pip3 install ibm_db内联安装ibm_db模块
当我在命令行中列出我拥有的模块时,我看到它可用:

下面是我的config.yaml,它将建立连接,从数据库中轮询数据,以获得要导出到Prometheus的指标。

在上面对于dsn的说明中,我也试过用:
db2://user:pass@host[:port]/databasedb2+ibm_db://user:pass@host[:port]/database
但最终得到的结果与下面所示的相同。
现在,我尝试使用以下命令执行query-exporter模块:
query-exporter ~/py-query-exporter/config.yaml
但最终出现以下错误:

有人能帮我解释一下为什么ibm_db模块没有被识别出来吗?-我不知道这个问题在不同的db模块中是否更广泛另外,我的python版本是:

vijayleom@Vijays-MacBook-Pro ~ % python -V
Python 3.8.11

xsuvu9jc

xsuvu9jc1#

始终向问题添加相关事实,而不是作为注解,因为注解不可搜索,很容易被遗漏。
如果您不能成功运行import ibm_db,那么任何工具(例如SQLAlchemy或像查询导出器那样使用SQLAlchemy的包)都将无法工作-因为ibm_db支持它们。
如果这是一个conda环境,您应该使用conda来安装ibm_db,因为conda比pip更全面地检查依赖关系。有时候,还需要升级pip版本(不管conda如何)。
除此之外,MacOS上的ibm_db还有一些已知的问题,但大多数问题现在都有了解决办法。
其中两个可能特别相关,涉及到与c库的兼容性(conda install ibm_db应该找到),有时需要在运行python之前导出环境变量DYLD_LIBRARY_PATH的特定值。
找到包含clidriver的目录,默认情况下,它与ibm_db模块一起安装。默认情况下,它将位于python环境的site-packages目录中(您可以使用pip3 show ibm_db来查看目录名)。获取clidriver的完全限定目录名,并将/lib附加到它后面,然后使用该值(例如,your_clidriver_path/lib,即:
export DYLD_LIBRARY_PATH=your_clidriver_path/lib:$DYLD_LIBRARY_PATH,然后再运行python代码。
如果您无法找到解决方法,请尝试在python ibm_db的github-issues页面上搜索匹配的问题和解决方案,然后在https://github.com/ibmdb/python-ibmdb/issues上为开发人员打开一个票证

相关问题