前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Prometheus 入门

Prometheus 入门

原创
作者头像
谢正伟
修改2021-10-09 17:08:14
9100
修改2021-10-09 17:08:14
举报

此入门文档是依据官网文档参考而来。没有理论,没有架构,直接实战。

小试牛刀

创建一个目录,写一个配置 (config/prom.yaml):

global:
  scrape_interval: 15s 
  external_labels:
    monitor: 'codelab-monitor'
scrape_configs:
  - job_name: 'prometheus'
    scrape_interval: 5s
    static_configs:
      - targets: ['localhost:9090']

然后启动普罗米修斯:

docker run --rm \
    -p 9090:9090 \
    -v $(pwd)/config/prom.yaml:/etc/prometheus/prometheus.yml \
    prom/prometheus

搞定!现在检验一下:

在浏览器里看看这俩 url:

数据:http://localhost:9090/metrics

UI:http://localhost:9090/graph

在 metrics 这个地址里,第一个指标是 go_gc_duration_seconds

我们把在 UI 里查询一下这个指标,可以显示如下的图表。

Prom UI
Prom UI

万里长征开始迈出了第一步了。

增加 exporter

这里直接使用官方的 node exporter 来输出指标。

分别启动 3 个 node exporter:

docker run --rm -d -p 9100:9100 prom/node-exporter
docker run --rm -d -p 9101:9100 prom/node-exporter
docker run --rm -d -p 9102:9100 prom/node-exporter

这些 exporter 暴露了metrics 信息,可以访问试试:http://localhost:9100/metrics

编写 config 配置(config/nodes.yaml):

global:
  scrape_interval: 15s
  external_labels:
    monitor: 'nodes-monitor'
scrape_configs:
  - job_name: 'prometheus'
    scrape_interval: 5s
    static_configs:
      - targets: ['localhost:9090']
  - job_name: 'nodes'
    scrape_interval: 5s
    static_configs:
      - targets:
        - host.docker.internal:9100
        - host.docker.internal:9101
        labels:
          group: 'prod'
      - targets:
        - host.docker.internal:9102
        labels:
          group: 'dev'
  • host.docker.internal 这个是宿主机的地址。这里是从容器内访问,所以使用了这个域名。

启动普罗米修斯:

docker run --rm \
    -p 9090:9090 \
    -v $(pwd)/config/nodes.yaml:/etc/prometheus/prometheus.yml \
    prom/prometheus

现在 普罗米修斯的 UI 中查询 node_cpu_seconds_total 试试。

聚合指标

现在加入一个聚合规则(config/nodes-rule.yaml):

groups:
- name: cpu-node
  rules:
  - record: job_instance_mode:node_cpu_seconds:avg_rate5m
    expr: avg by (job, instance, mode) (rate(node_cpu_seconds_total[5m]))
  • 定义了一个记录,名字是 job_instance_mode:node_cpu_seconds:avg_rate5m
  • prom 表达式是:avg by (job, instance, mode) (rate(node_cpu_seconds_total[5m]))

重新写一个启动配置,加入这个聚合规则(config/prometheus.yml):

global:
  scrape_interval: 15s
  external_labels:
    monitor: 'nodes-monitor'
rule_files:
  - 'nodes-rule.yaml'
scrape_configs:
  - job_name: 'prometheus'
    scrape_interval: 5s
    static_configs:
      - targets: ['localhost:9090']
  - job_name: 'nodes'
    scrape_interval: 5s
    static_configs:
      - targets:
        - host.docker.internal:9100
        - host.docker.internal:9101
        labels:
          group: 'prod'
      - targets:
        - host.docker.internal:9102
        labels:
          group: 'dev'

启动普罗米修斯:

docker run --rm \
    -p 9090:9090 \
    -v $(pwd)/config:/etc/prometheus \
    prom/prometheus

启动后,在 UI 里查一下 job_instance_mode:node_cpu_seconds:avg_rate5m

现在,咱们的监控之路迈出了第一步!


系列文章:

第一篇:Prometheus 入门

第二篇:Prometheus 自定义数据源

第三篇:Prometheus 的美化 - Grafana

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 小试牛刀
  • 增加 exporter
  • 聚合指标
相关产品与服务
前端性能监控
前端性能监控(Real User Monitoring,RUM)是一站式前端监控解决方案,专注于 Web、小程序等场景监控。前端性能监控聚焦用户页面性能(页面测速,接口测速,CDN 测速等)和质量(JS 错误,Ajax 错误等),并且联动腾讯云应用性能监控实现前后端一体化监控。用户只需要安装 SDK 到自己的项目中,通过简单配置化,即可实现对用户页面质量的全方位守护,真正做到低成本使用和无侵入监控。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档