首页 > 解决方案 > Prometheus 目标指标抓取记录时间与配置的间隔时间不匹配

问题描述

普罗米修斯配置

- job_name: monitor/monitor-kubelet/1
  honor_labels: true
  honor_timestamps: true
  scrape_interval: 30s
  scrape_timeout: 10s
  metrics_path: /metrics/cadvisor
  scheme: https
  bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
  tls_config:
    ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
    insecure_skip_verify: true
  ...

实际状态

容器的 cpu 使用指标

value            time            interval 
564010.259718631 @1634796181.961 35.13
564038.239253667 @1634796207.239 25.28
564061.535707756 @1634796234.983 27.74
564089.671915667 @1634796259.893 24.91
564120.98571483  @1634796292.126 32.23
564151.00582766  @1634796325.768 33.64
564180.591742732 @1634796358.304 32.54
564222.871858907 @1634796394.18 35.88
564250.313854137 @1634796424.652 30.47
564265.597564892 @1634796440.941 16.29
564288.788884994 @1634796471.012 30.07
564314.519065257 @1634796500.054 29.04
564340.769640412 @1634796533.434 33.38
564375.470987326 @1634796568.181 34.75
564392.951227567 @1634796587.909 19.73
564428.292375175 @1634796623.551 35.64
564465.554481447 @1634796660.313 36.76
564498.230676101 @1634796687.866 27.55
564533.118751601 @1634796720.387 32.52

这将在愤怒(指标)时导致图表中的断点。

这种情况如何优化?</p>

标签: prometheus

解决方案


scrape_interval不是绝对的东西。这只是意味着在您的情况下,您大约每 30 秒就会刮一次。
因此,在 25 到 35 秒的时间段内发生刮擦是完全正常的。我同意,带有 16 和 19 的线条“令人惊讶”,但这不是错误。

现在对于您的图表,假设您使用正确的范围进行范围查询,您应该不会遇到任何中断。什么是正确的范围?它应该至少是您的刮擦间隔的四倍,在您的情况下它将是 2 分钟。这是为什么 ?避免因漏刮、慢刮、慢摄取等造成的断点。

您可以在此处找到更多信息


推荐阅读