Datadog Agent检查找不到指定的路径

我已按照此页面上的说明在Python中编写了Datadog Agent检查:https ://docs.datadoghq.com/developers/agent_checks/ 。


代理检查应该读取指定网络文件夹中的所有文件,然后将某些指标发送到Datadog。


要读取的文件夹在Yaml文件中指定如下:


init_config:

taskResultLocation: "Z:/TaskResults"

这是用于读取文件夹的代码,它是Python 2.7,因为Datadog要求


task_result_location = self.init_config.get('taskResultLocation')

# Loop through all the XML files in the specified folder

for file in os.listdir(task_result_location):

如果仅在IDE中运行Python脚本,则一切正常。当将检查添加到与IDE处于同一台计算机上的Datadog Agent Manager并运行检查时,Datadog Agent Manager日志中将引发错误,提示:


2018-08-14 14:33:26东部时间| 错误| (runner.go:277在工作)| 运行检查TaskTaskErrorErrorReader时出错:[{“ message”:“ [错误3]系统找不到指定的路径:'Z:/ TaskResults / 。 '”,“ traceback”:“跟踪(最近一次调用):\ n文件\“ C:\ Program Files \ Datadog \ Datadog Agent \ embedded \ lib \ site-packages \ datadog_checks \ checks \ base.py \”,行294,运行\ n self.check(copy.deepcopy(self.instances [ 0])))\ n文件\“ c:\ programdata \ datadog \ checks.d \ TaskResultErrorReader.py \”,第42行,位于os.listdir(task_result_location)中的文件的check \ n中:\ nWindowsError:[错误3]系统找不到指定的路径:'Z:/ TaskResults / 。 '\ n“}]


我尝试用单引号和双引号,正斜杠和反斜杠以及双斜杠以多种方式指定文件夹位置,但是会引发相同的错误。


有谁知道这是Yaml语法错误还是Datadog或Python出现某种问题?


白衣染霜花
浏览 195回答 2
2回答

白衣非少年

即使datadog是在同一台计算机上运行的,它也在您的计算机上设置了单独的服务器。因此,听起来好像datadog代理无法访问您的z:/驱动程序。尝试将“ TaskResults”文件夹放在根目录中(从datadog运行时-mycheck.yaml文件所在的位置),并相应地更改路径。如果这行得通,并且您仍然希望有一个公用驱动器来将文件从计算机共享到datadog的代理,则必须找到一种将驱动器\文件夹安装到代理的方法。他们可能有办法在文档中做到这一点

慕森王

解决方案是在网络驱动器上创建文件共享,并使用该路径而不是完整的网络驱动器路径。对于某些人来说可能是显而易见的,但是对我而言,它并没有立即发生,因为正常的Python代码在Datadog之外没有出现任何问题。因此,而不是:init_config: taskResultLocation: "Z:/TaskResults"用init_config: taskResultLocation: '//FileShareName/d/TaskResults'
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python