如何解决Prometheus配置错误:文件服务发现配置必须至少包含一个路径名
我一直在努力解决这个问题。我正试图在prometheus.yml文件中配置一个file\u sd\u configs节。以下是相关部分:如何解决Prometheus配置错误:文件服务发现配置必须至少包含一个路径名,prometheus,Prometheus,我一直在努力解决这个问题。我正试图在prometheus.yml文件中配置一个file\u sd\u configs节。以下是相关部分: scrape_configs: - job_name: ct_agents file_sd_configs: - files: - agent_configs/agents.json 在启动时,我遇到以下错误: time="2019-02-07T16:15:21Z" level=error msg="Couldn't
scrape_configs:
- job_name: ct_agents
file_sd_configs:
- files:
- agent_configs/agents.json
在启动时,我遇到以下错误:
time="2019-02-07T16:15:21Z" level=error msg="Couldn't load configuration (-config.file=/etc/prometheus/prometheus.yml): file service discovery config must contain at least one path name" source="main.go:208"
根据我在别处找到的例子,我尝试了各种各样的方法。我试着用单引号引用路径,比如一个例子。我尝试了完整的路径。我最初有一个通配符和一个空目录,希望普罗米修斯能找到可能的动态文件列表
我已经检查了好几次了。文件中没有选项卡(编辑.yml文件时最常见的问题)
文件本身存在,尽管当前只是一个空数组(JSON格式)
我敢肯定这是件愚蠢的事情。错误消息中对错误进行了详细描述: 文件服务发现配置必须至少包含一个路径名 因此,这意味着您的json文件应该至少有一个目标
[
{
"targets":
"example.com"
],
}
]
好的,多亏了奥利弗的问题,我们确定我运行的是一个旧版本的普罗米修斯(用apt-get-install-Prometheus安装)。安装一个现代版本是一件痛苦的事,但一旦我重新配置它,它就解决了问题
因此,如果有人在使用相同的错误时遇到问题,请检查日志,查看您的普罗米修斯二进制文件有多旧。截至2019年2月,如果您在Docker Ubuntu实例上使用apt get进行安装,您将获得一个非常非常旧的普罗米修斯副本。[{“targets”:[“somegarbage.com”]}--相同的错误消息相同的错误,如果我还添加了“labels”部分:[{“targets”:[“somegarbage.com”],“标签”:{“作业”:“myprogramname”}]这不是问题所在。这是版本控制问题。请参阅上面与Oliver的对话。当您将浏览器导航到-时,它会显示agents.json的全名,包括路径。这是您所期望的以及文件所在的位置吗?普罗米修斯不会熬夜。我现在正在查看代码。不幸的是,我不是go程序员。有事实上,只有一次引用了该消息。这是在文件\u sd\u配置代码的解组过程中,错误发生了:如果len(c.files)==0。我认为这只是一个愚蠢的YAML问题。空格。破折号。冒号。引号。大括号。诸如此类。要使其复杂化,文档建议说“files:”,而我找到的所有示例都是“-files:“。但是如果我不包括破折号,我会得到一个YAML解析错误。你的YAML是100%正确的,我试过了,它对我有效。你在运行什么版本的普罗米修斯?