Promethues Metrics

Metrics

Metrics可分为三部分:
在这里插入图片描述

在这里插入图片描述

  • HELP 描述metric作用
  • TYPE metric类别

TYEP

Counter

  • 某个事件发生的次数
  • 数字只能增长
Total reuqests
Total Exceptions

Gauge

  • 描述当前值
  • 可以上升或下降
CurrentCPU Utilization
Available  System Memory
Number of concurrent requests

Histogram

  • 持续时间或增长值
  • 根据配置的bucket sizes进行分组
Response Time
Request Size

Summary

  • histograms的简化
  • 低于某个值的百分比进行分组
Response Time
Request Size

所有metric默认分配两个labels(instance/job)
在这里插入图片描述

Monitoring Containers

  • Metrics可以从容器化环境抓取
  • Docker Engine Metrics
  • 容器Metrics使用cAdvisor

Ubuntu安装Docker

# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl -y
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

# Add the repository to Apt sources:
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
# 暴露9323端口
sudo vi /etc/docker/daemon.json

cat /etc/docker/daemon.json 
{ 
  "metrics-addr": "127.0.0.1:9323",
  "experimental": true 
} 

sudo systemctl restart docker


在这里插入图片描述

bob@ubuntu-host ~ ➜  sudo vi /etc/prometheus/prometheus.yml 

# 新增job去抓取metric

bob@ubuntu-host ~ ➜  tail -n 4 /etc/prometheus/prometheus.yml 
  - job_name: 'docker'
    scrape_interval: 5s
    static_configs:
      - targets: ['localhost:9323']

bob@ubuntu-host ~ ➜  sudo systemctl restart prometheus.service 

进入UI查看
在这里插入图片描述
Run cAdvisor

VERSION=v0.49.1 # use the latest release version from https://github.com/google/cadvisor/releases
sudo docker run \
  --volume=/:/rootfs:ro \
  --volume=/var/run:/var/run:ro \
  --volume=/sys:/sys:ro \
  --volume=/var/lib/docker/:/var/lib/docker:ro \
  --volume=/dev/disk/:/dev/disk:ro \
  --publish=8888:8080 \
  --detach=true \
  --name=cadvisor \
  --privileged \
  --device=/dev/kmsg \
  gcr.io/cadvisor/cadvisor:$VERSION

curl localhost:8888/metrics


# 配置文件
bob@ubuntu-host ~ ✖ sudo vi /etc/prometheus/prometheus.yml

bob@ubuntu-host ~ ➜  tail -n 4 /etc/prometheus/prometheus.yml
  - job_name: 'cAvisor'
    scrape_interval: 5s
    static_configs:
      - targets: ['localhost:8888']


bob@ubuntu-host ~ ➜ sudo systemctl restart prometheus.service 

在这里插入图片描述

指标类型Docker Engine MetricscAdvisor Metrics
Docker 使用的 CPU 量监控 Docker 守护进程本身消耗的 CPU 资源不提供
失败的镜像构建次数记录失败的镜像构建次数不提供
处理容器操作的时间监控 Docker 执行容器操作(如启动、停止)所需的时间不提供
针对单个容器的指标没有针对单个容器的详细指标提供详细的容器级别指标,包括 CPU、内存、磁盘 I/O、网络等
每个容器的 CPU 和内存使用情况不提供监控每个容器消耗的 CPU 和内存资源
容器内部进程运行情况不提供提供每个容器内正在运行的进程信息
容器数量不提供显示当前运行的容器数量
容器的运行时间不提供监控每个容器自启动以来的运行时间
按容器分配的详细指标不提供提供每个容器的详细资源使用指标,包括 CPU、内存、磁盘 I/O、网络流量等
  • Docker Engine Metrics:侧重于全局监控和 Docker 守护进程的性能。
  • cAdvisor Metrics:侧重于详细的每个容器的资源使用和运行情况,适合细粒度的容器监控。

PromQL

Data Types

PromQL(Prometheus Query Language)的查询语句可以评估为四种不同的类型,分别是:

  • String 字符串值,通常在 Prometheus 的表达式中很少使用。

  • Scalar 简单的数值(浮点型),代表一个特定的数值,比如一个计算结果或常量。

  • Instant Vector 时间序列的集合,每个时间序列只包含一个样本,这些样本都共享相同的时间戳。通常用于查询特定时间点的度量值。
    在这里插入图片描述

  • Range Vector 时间序列的集合,每个时间序列包含一段时间内的数据点。用于查询一段时间范围内的度量值,如计算平均值或峰值等。
    在这里插入图片描述

Labels

在这里插入图片描述

  • = 精确匹配

在这里插入图片描述

  • != 精确不等匹配
    在这里插入图片描述
  • =~正则匹配
    在这里插入图片描述
  • !~正则不相等匹配
    在这里插入图片描述
  • 多条件匹配
    在这里插入图片描述
  • 区间向量
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值