美文网首页运维
promethues的初识

promethues的初识

作者: 麟之趾a | 来源:发表于2020-04-02 15:51 被阅读0次

promethues的介绍

promethues的特点

  • 多维数据模型,由度量名和键值对标识的时间序数据
  • promSQL 一种灵活的查询语言,利用多维数据完成复杂查询
  • 不依赖分布式存储,单个服务器节点可直接工作
  • 基于HTTP的pull方式采集时间序列数据(主要方式)
  • 推送时间序列数据,通过pushgateway组件支持
  • 通过服务发现或静态配置发现目标多种图形模型,及表盘支持

promethues的数据模型

promethues将所有数据存储在时间序列数据库中,具有相同度量名称以及标签属于同一指标
每个指标的其度量名称和键值对(也称为标签)是其唯一的标识

promethues的指标类型

  • counter: 递增的计数器
  • gauge: 可以任意变化的数值
  • histogram: 对一段时间内的数据进行采样,并对所有数值求和并统计数量
  • summary: 于histogram类型

指标类型只发生在自己要写被监控端采集信息时,用到。于服务端没有关系

promethues的作业和实例

  • 实例: 可以抓取的目标成为实例(instance)targets 中的目标即为一个实例
  • 作业:具有相同目标实例的集合,称为作业(job)一个job_name,即为作业
- job_name: 'nacos'
    metrics_path: '/nacos/actuator/prometheus' #nacos暴露的metrics的地址
    static_configs:
    - targets: ['172.19.15.121:8848']

promethues的配置文件介绍

全局配置文件

global
# 被监控端,监控数据采集的时间间隔
[scrape_interval: <duration>  | default= 1m]
# 被监控端,超时时间
[ scrape_timeout : <duration> | default = 10s ]
# 报警间隔的最小周期
[ evaluation_interval: <duration>  | default = 1m]
# 外部标签
external_lables:
  [ <lablename>: <lablevalue> ]
# 配置告警规则
rule_files:
  [ - <filepath_glob> ...]
# 配置被监控端监控指标
scrape_configs:
   [ - <scrape_config> ... ]
# 配置告警部分
## 对告警部分重新打标签
altering:
  alter_relablel_configs:
     [ - <relable_config> ...]
## 告警组件连接地址
altermanagers:
   [ - <altermanager_config> ...]
# 远程存储(时间序列数据库)
remote_write:
  [ - <remote_write> ...]
remove_read:
  [ - <reomte_read> ...]

被采集端配置

scrape_configs:
 job_name: <job_name>
# 被监控端采集数据的时间间隔
[scrape_interval: <duration> | defaule=<global_config.scrape_interval>]
# 连接被监控端的超时时间
[scrape_interval: <duration> | default=<global_config.scrape_timeout>]
# 被监控端采集数据的路径
[ metrics_path: <path> | default = /metrics]
# 是否覆盖自定义标签
[ honor_lables:  <boolean> | defaul=false]
# 采集方式默认http
[ shema: <schema> | default = http ]
# 参数
params:
  [<string> : <string>,...]
# basic 认证
basic_auth:
   [ username: <sting> ]
   [ password: <secret>]
   [ password_file: <sting>]
# 令牌认证
[ bearer_token:  <secret>]
[bearer_token_file: /path/to/bearer/token/file]
# ssh
tls_config:
  [<tls_config>]
# 代理
[proxy_url: <string> ]
# consul服务发现
consul_sd_configs:
 s [ - <cpmsul_sd_config> ]
# dns服务发现
dns_sd_configs:
  [ - <dns_sd_config>]
# 文件服务发现
file_sd_configs:
  [ - <file_sd_config> ...]
# k8s服务发现
kubernetes_sd_configs:
 [ -<kubernetes_sd_config>]
# 静态服务发现
static_configs:
  [ -<static_config>]
# 数据采集之前重新打标签
relabel_configs:
  [ -<relabel_config>]
# 数据采集后打标签
metric_relabel_configs:
  [ -<relabel_config>]
#采集样本的数量,如果超过了就失败了
[sample_limit: <int> | default = 0]

relabel_configs 重新打标签

重新打标签的意义

  • 命名标签名
  • 删除标签
  • 过滤目标
#重新打标签,允许对任何目标及标签进行修改
relabel_configs:
#源标签
  [source_labels: '['<labelname>'],[...]']
# 多个源标签连接时的分隔符
[ separator: <string> | default = ;]
# 重新标记的标签名
[ target_label: <labelname>]
# 正则表达式匹配的标签值
[regex: <regex> | default = (.*)]
[modules: <unit64>]
# 替换正则表达式的分组,分组引用$1 $2
[replacement: <string> | default =1]
# 基于正则表达式匹配执行的操作,默认替换动作
[action: <relabel_action> | default = replace]

action 动作

replace:默认,通过replace匹配source_label的值,使用replacement来引用表达式匹配的分组
keep: 删除regex与连接不匹配的source_labels。保留匹配的目标
drop: 删除regex于连接匹配的目标source_label。保留不匹配的目标
#keep 和 drop 根据匹配的source_label来决定采不采集信息
labeldrop: 删除regex匹配的标签
labelkeep:删除于regex不匹配的标签
# labeldrop和labelkeep于标签有关系
hashmod: 设置target_label为modules连接的哈希值source_labels
labelmap:匹配regex所有的标签名称,然后复制匹配标签的值进行分组,replacement分组来引用($1 ,$2 ,$3) 替代

支持服务发现

azure_sd_configs
dns_sd_configs
file_sd_configs
file_sd_configs
gce_sd_configs
kubernetes_sd_configs

相关文章

网友评论

    本文标题:promethues的初识

    本文链接:https://www.haomeiwen.com/subject/reptphtx.html