我正试图让promotheus通过一个定制的spring引导端点获取公开的度量。我在文件里有指标
# HELP cpu_usage_total The total amount of CPU.
# TYPE cpu_usage_total gauge.
cpu_usage_total 0.24950100481510162
# HELP memory_usage_total The total amount of MEMORY.
# TYPE memory_usage_total gauge.
memory_usage_total 30.0
我创建了一个restful端点来读取这个文件并在端口8080上公开它的内容。以下是我迄今为止尝试的:
@GetMapping(value = "/metrics")
public void metrics(HttpServletResponse response) throws IOException {
File file = new File("/var/log/logparsing");
InputStreamResource resource = new InputStreamResource(new FileInputStream(file));
MediaType mediaType = new MediaType("text", "plain", StandardCharsets.UTF_8);
InputStream myStream = new FileInputStream(file);
// Set the content type and attachment header.
response.setContentType("text/plain; version=0.0.4;charset=utf-8");
response.setCharacterEncoding("utf-8");
// Copy the stream to the response's output stream.
IOUtils.copy(myStream, response.getOutputStream());
response.flushBuffer();
我的promotheus.yaml配置文件:
global:
scrape_interval: 15s # By default, scrape targets every 15 seconds.
external_labels:
monitor: 'codelab-monitor'
scrape_configs:
- job_name: 'prometheus'
scrape_interval: 5s
metrics_path: '/metrics'
static_configs:
- targets: ['logparsing:8080']
我从prometheus文档中了解到,服务器需要这种格式的数据。我尽我所能地尊重它,但普罗莫斯不接受。
任何帮助都将不胜感激,谢谢。ps:我不能使用prometheus的java客户端,它需要这样做。
1条答案
按热度按时间sigwle7e1#
我复制了你的环境,似乎你的指标是无效的,因为
\r
行尾的字符。我先得到这个:
然后我删除了评论:
没有评论
我已经把所有的
\r
文件中的字符,这是有效的。附言:一些编辑补充道
\r
自动地,我用notepad++来编辑文件。