prometheus监控初体验

2远 · · 3928 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

一、部署环境

mac

二、下载prometheus的mac版

进入下载页,操作系统选择darwin

https://prometheus.io/download/

download.png

三、解压,进入目录运行

./prometheus --config.file=prometheus.yml

四、浏览监控页面,查看对自身监控的一些信息

图表页: http://localhost:9090/graph
metrics页面: http://localhost:9090/metrics

1)查看控制台日志输出
切换到Console尝试输入表达式,并点击execute,查看结果

prometheus_target_interval_length_seconds

image.png

count(prometheus_target_interval_length_seconds)

image.png

更多表达式参考:expression language documentation

2)查看图表输出

切换到Graph尝试输入表达式,并点击execute,查看结果

rate(prometheus_tsdb_head_chunks_created_total[1m])

image.png

五、做点实验

1)确保已经安装了go的开发环境,并配置了环境变量,golang的protobuf依赖是最新的

# Fetch the client library code and compile example.
git clone https://github.com/prometheus/client_golang.git
cd client_golang/examples/random
go get -d
go build

# Start 3 example targets in separate terminals:
./random -listen-address=:8080
./random -listen-address=:8081
./random -listen-address=:8082

接下来分别打开以下网址查看metrics

http://localhost:8080/metrics
http://localhost:8081/metrics
http://localhost:8082/metrics

2)修改prometheus.yml

scrape_configs:
  - job_name:       'example-random'

    # Override the global default and scrape targets from this job every 5 seconds.
    scrape_interval: 5s

    static_configs:
      - targets: ['localhost:8080', 'localhost:8081']
        labels:
          group: 'production'

      - targets: ['localhost:8082']
        labels:
          group: 'canary'

打开网址 http://localhost:9090/
输入以下条件过滤,查看console

rpc_durations_seconds

image.png

3)根据给定规则输出监控内容
新增prometheus.rules.yml

groups:
- name: example
  rules:
  - record: job_service:rpc_durations_seconds_count:avg_rate5m
    expr: avg(rate(rpc_durations_seconds_count[5m])) by (job, service)

修改prometheus.yml指定prometheus.rules.yml

global:
  scrape_interval:     15s # By default, scrape targets every 15 seconds.
  evaluation_interval: 15s # Evaluate rules every 15 seconds.

  # Attach these extra labels to all timeseries collected by this Prometheus instance.
  external_labels:
    monitor: 'codelab-monitor'

rule_files:
  - 'prometheus.rules.yml'

scrape_configs:
  - job_name: 'prometheus'

    # Override the global default and scrape targets from this job every 5 seconds.
    scrape_interval: 5s

    static_configs:
      - targets: ['localhost:9090']

  - job_name:       'example-random'

    # Override the global default and scrape targets from this job every 5 seconds.
    scrape_interval: 5s

    static_configs:
      - targets: ['localhost:8080', 'localhost:8081']
        labels:
          group: 'production'

      - targets: ['localhost:8082']
        labels:
          group: 'canary'

在localhost:9090的console查看新规则的聚合数据

job_service:rpc_durations_seconds_count:avg_rate5m

image.png

参考:https://prometheus.io/docs/prometheus/latest/getting_started/


有疑问加站长微信联系(非本文作者)

本文来自:简书

感谢作者:2远

查看原文:prometheus监控初体验

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

3928 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传