我已按照此页面上的说明在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 folderfor 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出现某种问题?
2 回答
慕森王
TA贡献1777条经验 获得超3个赞
解决方案是在网络驱动器上创建文件共享,并使用该路径而不是完整的网络驱动器路径。对于某些人来说可能是显而易见的,但是对我而言,它并没有立即发生,因为正常的Python代码在Datadog之外没有出现任何问题。
因此,而不是:
init_config: taskResultLocation: "Z:/TaskResults"
用
init_config: taskResultLocation: '//FileShareName/d/TaskResults'
添加回答
举报
0/150
提交
取消