Prometheus是什么

Prometheus(普罗米修斯)是一个名字非常酷的开源监控系统。

它支持多维度的指标数据模型,服务端通过HTTP协议定时拉取数据后,通过灵活的查询语言,实现监控的目的。

如上图,客户端记录相关指标数据,对外提供查询接口。Prometheus服务端通过服务器发现机制找到客户端,并定时抓取存储为时间序列数据。最后通过Grafana等图表工具集成展示。

Prometheus可以做什么

在业务层用作埋点系统

Prometheus支持各个主流开发语言(Go,java,python,ruby官方提供客户端,其他语言有第三方开源客户端)。我们可以通过客户端方面的对核心业务进行埋点。如下单流程、添加购物车流程。

在应用层用作应用监控系统

一些主流应用可以通过官方或第三方的导出器,来对这些应用做核心指标的收集。如redis,mysql。

在系统层用作系统监控

除了常用软件, prometheus也有相关系统层和网络层exporter,用以监控服务器或网络。

集成其他的监控

prometheus还可以通过各种exporte,集成其他的监控系统,收集监控数据,如AWS CloudWatch,JMX,Pingdom等等。

不要用Prometheus做什么

prometheus也提供了Grok exporter等工具可以用来读取日志,但是prometheus是监控系统,不是日志系统。应用的日志还是应该走ELK等工具栈。

Prometheus 和 spring boot集成

Prometheus中配置服务发现

- job_name: 'consul'

consul_sd_configs:

- server: '192.168.1.248:8500'

relabel_configs:

- source_labels: [__meta_consul_service]

regex: .*,prometheus.*

target_label: job

metrics_path: '/prometheus'

```

- maven中添加相关依赖

io.prometheus

simpleclient

io.prometheus

simpleclient_servlet

io.prometheus

simpleclient_spring_boot

- 关闭spring boot原生metrics

`spring.metrics.servo.enabled: false`

- Application类添加注解

@EnablePrometheusEndpoint

@EnableSpringBootMetricsCollector

- 业务类定义埋点

static final Counter orderCount = Counter.build()

.name("b2c_order_count").help("order count.").labelNames("shop","siteUid").register();

- 业务埋点

orderCount.labels("shein","mus").inc();

## Prometheus监控nginx ##

Prometheus可以通过[nginx-lua-prometheus](https://github.com/knyar/nginx-lua-prometheus)这个库对nginx进行埋点。

使用起来也非常简单:

lua_shared_dict prometheus_metrics 10M;

lua_package_path "/path/to/nginx-lua-prometheus/?.lua";

init_by_lua '

prometheus = require("prometheus").init("prometheus_metrics")

metric_requests = prometheus:counter(

"nginx_http_requests_total", "Number of HTTP requests", {"host", "status"})

metric_latency = prometheus:histogram(

"nginx_http_request_duration_seconds", "HTTP request latency", {"host"})

metric_connections = prometheus:gauge(

"nginx_http_connections", "Number of HTTP connections", {"state"})

';

log_by_lua '

local host = ngx.var.host:gsub("^www.", "")

metric_requests:inc(1, {host, ngx.var.status})

metric_latency:observe(ngx.now() - ngx.req.start_time(), {host})

';

但是,通过基准测试,发现使用了histogram类型的指标后,吞吐量会有5%-10%左右的降低。

## 总结 ##

![](https://i.imgur.com/7o3VjTE.png)

借助Prometheus,我们可以快速搭建一个业务监控系统,同时还能增加核心应用的监控手段。丰富我们的监控渠道,配合zabbix、zipkin、ELK、Grafana等工具,让你全方位掌控你的系统。

相关资料:

[https://prometheus.io/](https://prometheus.io/ "https://prometheus.io/")

[https://github.com/knyar/nginx-lua-prometheus](https://github.com/knyar/nginx-lua-prometheus "https://github.com/knyar/nginx-lua-prometheus")

metrics类型 普罗米修斯_普罗米修斯 -- 快速构建你的业务监控平台相关推荐

  1. 我来自台湾:普力600 消毒锭_普力-600 消毒片PL-600 SH-XT-K礼盒小套组_易迅发现_易迅网...

    我来自台湾:普力600 消毒锭_普力-600 消毒片PL-600 SH-XT-K礼盒小套组_易迅发现_易迅网

  2. mysql 将米换算公里_公里和米的换算关系(千米和米换算公式)

    你好!1公里=1千米=1000米 如果对你有帮助望采纳 1公里=1千米,1千米=1000米,1米=10分米=100厘米=1000毫米-- 1公里=1000米1米=0.001公里 1.一千米等于一公里, ...

  3. ogc是一个非营利性组织_一个非营利组织如何在为用户构建更好的数字平台时省钱...

    ogc是一个非营利性组织 by Rebecca Radding 由丽贝卡·拉丁(Rebecca Radding) 一个非营利组织如何在为用户构建更好的数字平台时省钱 (How one nonprofi ...

  4. 4米乘以12米CAD图_身高1米6,却能在12顺位被选中?单场4分19助,他有多强?

    原标题:身高1米6,却能在12顺位被选中?单场4分19助,他有多强? 当问起谁是NBA历史上最出色的小个子球员时,球迷心中可能会有不同的答案. 有人会觉得是小托马斯,有人觉得是艾弗森,也有人会觉得是内 ...

  5. 暹罗网络目标跟踪_暹罗网络的友好介绍

    暹罗网络目标跟踪 In the modern Deep learning era, Neural networks are almost good at every task, but these n ...

  6. 普华基础软件笔试_普华“2018上海市软件和集成电路产业发展专项资金项目”成功验收...

    ▲点击上方"蓝字",即刻关注我们 近日,上海市经济和信息化委员会组织专家对普华基础软件股份有限公司(以下简称"普华")承担的2018年度上海市软件和集成电路产业 ...

  7. 米转经纬度_经纬度换算米(经纬度精度换算米数)

    经度113度55分24秒.纬度22度29分3秒. 经纬度的距离都是一度=111公里.一公里=1000米,经纬度分度.分.秒都是60进制. 记忆中好象是每一度是1852米,也就是一海里.那么既然知道了一 ...

  8. 电机不动 米兔机器人_【小米 米兔机器人使用总结】拼装|底座|背面|电机|机枪_摘要频道_什么值得买...

    小米 米兔机器人使用总结(拼装|底座|背面|电机|机枪) 机器人形态是我最开始拼装的一个形态,整个拼装我大概花了快6个小时,整个过程还是比较顺利的,原因之一就是提供的安装手册还是比较清楚比较容易看懂的 ...

  9. 隧道凿岩机器人传感器_【谷企动态】天创电子管廊综合监控平台及机器人系统在国家电网项目顺利交付应用...

    天创管廊综合监控平台 及机器人系统 在国家电网项目顺利交付应用 1 项目背景 随着电缆在城市电网的广泛应用,电力隧道成为电缆敷设的主要通道之一.由于城市建设的复杂性和线路走廊资源的紧缺,电力隧道内部的 ...

  10. soapui和cxf的却别_根据wsdl文件用soapUi快速构建webService服务(有图有真相)

    最近公司业务上使用webservice 频繁.由于之前都是自己建立webservice 自己定义提供帮对方服务,现在则相反需求都是根据人家提供的wsdl 文件来生成 我们系统必须提供的接口.刚起初不知 ...

最新文章

  1. USACO07DEC道路建设Building Roads(prim算法+堆优化与Kruskal+路径压缩对比)
  2. 刘永鑫:20分钟讲解微生物组数据分析与可视化实战
  3. laravel框架路由设置404方式
  4. Cygwin简介及其下载安装卸载
  5. boost::mismatch相关的测试程序
  6. Silverlight 2 DispatcherTimer和通过XAML创建UI元素
  7. anaconda更新python版本mac_macos - 如何使用conda升级到Python 3.6?
  8. display:none的表单也会被提交
  9. CCF201604-1 折点计数
  10. 柯尼卡美能达打印机c226使用说明_高效便捷柯尼卡美能达C226复印机优惠中-柯尼卡美能达 C226_西安复印机行情...
  11. 电商项目的app学习笔记(二)---创建登陆界面
  12. 小程序倒计时显示晃动问题
  13. 全赔你们要1200亿!知网哭穷:我们一年净赚还不到2亿
  14. Android应用--简、美音乐播放器原型放送(作者:小巫)
  15. PHP7 安装 Swoole 教程
  16. 相对基址加变址寻址方式
  17. Gbase XDM API接口--打开xdm连接
  18. Involution
  19. foxmail邮件只能显示邮件头,不能显示内容
  20. 图傅里叶变换(GFT)

热门文章

  1. C# ActiveX 网页打包验证自动升级
  2. Unrecognized Windows Sockets error: 10106: Socket creation failed
  3. 天使投资(AI),风险投资(VC),私募基金(PE);A轮,B轮,C轮,D轮,E轮,F轮融资之间的区别...
  4. FlashFXP,flashfxp建立ftp站点
  5. AtCoder Beginner Contest 175 A Rainy Season 字符串+5种情况
  6. Android8怎么格式化内存卡,安卓手机怎么格式化内存卡
  7. 声网 X 牛客网 200万场视频面试背后的实时互动技术支撑
  8. 计算机设置ip后提示未识别网络连接,Win7出现提示“未识别的网络无Internet访问”怎么解决?...
  9. 计算机开机响三短嘀嘀,电脑显示器不亮,开机2短3长报警音什么情况啊?:电脑...
  10. 重磅!景驰科技公司CTO Tony Han加入硅谷科技论坛!