在上一篇《springboot集成prometheus》里,已介绍了springboot和promethues的集成,但是这里有个问题,就是在prometheus.yml里配置需要监听的服务时,是按服务名写死的,如果后面增加了微服务,就得手动修改此配置,并重启promethues;那么能否动态的监听微服务呢。我们知道,在分布式系统架构里,有个组件负责注册和发现所有微服务,那就是注册中心。常用的注册中心组件有Spring Cloud Netflix的Eureka,consul,dubbo等,如果promethues能监听服务注册中心的微服务,就能实现动态监听服务的功能了。这里以consul为例来整合promethues。

Consul 是什么

Consul 是一个支持多数据中心分布式高可用的服务发现和配置共享的服务软件,由 HashiCorp 公司用 Go 语言开发, 基于 Mozilla Public License 2.0 的协议进行开源. Consul 支持健康检查,并允许 HTTP 和 DNS 协议调用 API 存储键值对.

命令行超级好用的虚拟机管理软件 vgrant 也是 HashiCorp 公司开发的产品.
一致性协议采用 Raft 算法,用来保证服务的高可用. 使用 GOSSIP 协议管理成员和广播消息, 并且支持 ACL 访问控制.

Consul 的使用场景

  • docker 实例的注册与配置共享
  • coreos 实例的注册与配置共享
  • vitess 集群
  • SaaS 应用的配置共享
  • 与 confd 服务集成,动态生成 nginx 和 haproxy 配置文件

将微服务注册到consul上

通过查看promethues配置文件的官方文档,发现promethues提供了和多种服务发现注册中心整合的配置选项,包括Azure,Consul,DNS,EC2,OpenStack,GCE,Kubernetes等;关键的具体配置如下:

scrape_configs:# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.- job_name: 'prometheus'# Override the global default and scrape targets from this job every 5 seconds.scrape_interval: 5s# metrics_path defaults to '/metrics'# scheme defaults to 'http'.static_configs:- targets: ['localhost:9090']- job_name: 'security'# Override the global default and scrape targets from this job every 5 seconds.scrape_interval: 5smetrics_path: '/prometheus'# scheme defaults to 'http'.static_configs:- targets: ['10.94.20.33:80']- job_name: 'overwritten-default'consul_sd_configs:- server:   '10.110.200.29:8500'services: ['lookup', 'security', 'workflow']relabel_configs:- source_labels: ['__metrics_path__']regex:         '/metrics'target_label:  __metrics_path__replacement:   '/prometheus'

这里简单说明下上面的配置意义:

scrape_configs下,定义了3个job_name,其中  - job_name: 'prometheus'是监听prometheus服务本身;job_name: 'security'是按固定IP:PORT的方式监听微服务 ;job_name: 'overwritten-default'就是一个监听consul的任务,在consul_sd_configs下,server是consul服务器的访问地址,services是微服务名的数组,如果什么都不填,则默认取consul上注册的所有微服务。relabel_configs是修改默认配置的规则,这里由于使用了

springboot和promethues整合,暴露的metrics是通过/promethues路径访问的,而promethues默认的metrics访问路径(即metrics_path配置项)是/metrics,需要修改。

如下图:当把鼠标放在某个label上时,显示了Before relabeling的配置,可以看到__metrics_path__='/metrics',所以必须通过relabel_configs方式修改为‘/promethues’后,才能让此微服务的状态为UP,不然会因为不符合格式错误而使Endpoint的状态为DOWN。

关于relabel_configs的更多配置详解,请参考官方文档,这里只是替换文本的最基本用法。

prometheus获取Consul上注册的服务相关推荐

  1. 在consul上注册web服务

    1. 创建web服务 IDEA->File->New->Project->Empty Project,project name取名provider,点击finish 2. 创建 ...

  2. Dubbo 使用Nacos作为注册中心是,消费端获取不到注册中心服务问题

    1. 问题 服务注册到nacos之后,消费端访问不到注册了的服务. 消费端启动报错如下: org.springframework.beans.factory.BeanCreationException ...

  3. 使用 golang 调用consul api 接口,注册user-tomcat服务

    1,关于consul dubbo的注册中心是zookeeper,redis.  motan的注册中心是zookeeper,consul.  kubernetes的注册中心是 etcd.  使用cons ...

  4. 基于 Consul 实现 MagicOnion(GRpc) 服务注册与发现

    0.简介 0.1 什么是 Consul Consul是HashiCorp公司推出的开源工具,用于实现分布式系统的服务发现与配置. 这里所谓的服务,不仅仅包括常用的 Api 这些服务,也包括软件开发过程 ...

  5. Office E5 OneDrive API使用指南:注册+密钥获取+获取临时上传链接+分片

    异想之旅:本人原创博客完全手敲,绝对非搬运,全网不可能有重复:本人无团队,仅为技术爱好者进行分享,所有内容不牵扯广告.本人所有文章仅在CSDN.掘金和个人博客(一定是异想之旅域名)发布,除此之外全部是 ...

  6. .net core Ocelot Consul 实现API网关 服务注册 服务发现 负载均衡

    大神张善友 分享过一篇 <.NET Core 在腾讯财付通的企业级应用开发实践>里面就是用.net core 和 Ocelot搭建的可扩展的高性能Api网关. Ocelot(http:// ...

  7. 服务注册发现consul之五:Consul移除失效服务的正确姿势

    spring cloud微服务不定期会出现网络请求失败的错误.于是看了下后台日志,发现有几个请求会报如下的异常: Caused by: feign.RetryableException: Connec ...

  8. Consul注册中心注册的服务总是红叉 (All service checks failing)

    Consul注册中心注册的服务总是红叉 (All service checks failing) Consul注册中心注册的服务总是红叉 (All service checks failing) 因为 ...

  9. Consul + fabio 实现自动服务发现、负载均衡

    目录 Consul Fabio 服务发现的特点 工作原理 Demo 结合kubernetes扩容 Consul hashicorp团队开发 就是大名鼎鼎开发 vagrant 的团队. Consul 是 ...

最新文章

  1. 【JavaWeb】servlet与http请求协议
  2. 使用Python,OpenCV实现图像之间超快速的颜色转移
  3. Unity从头开始开发增强现实(AR)游戏学习教程
  4. 王可汗:数据科学带我解开摩擦学的“反常现象” | 提升之路系列(七)
  5. Hyperledger Fabric 核心模块(2)configtxgen configtx.yaml配置文件
  6. 轻量级消息队列RedisQueue
  7. 检测和删除多余无用的css
  8. 【NOIP 2017】列队
  9. phpstudy使用(80端口被system占用,无法关闭和删除)
  10. mysql显示百分比例_显示值mysql的百分比
  11. MATLAB安装机器人学工具箱
  12. controller属于哪一层_从数字一到十,在人们心中哪一个数字最为吉利?有什么原因?...
  13. SpringCloud学习笔记023---分布式集群之_Windows下搭建zookeeper服务器
  14. CToolBarCtrl工具栏设置总结(转)
  15. Xpath定位方法深入探讨及元素定位失败常见情况
  16. 数据库入门基本知识点
  17. 经典大数据架构案例:酷狗音乐的大数据平台重构
  18. 入门 | 什么是自注意力机制?
  19. CF1144C - Two Shuffled Sequences
  20. 中国移动MAS业务技术培训

热门文章

  1. javascript的缓动效果
  2. Oracle 块修改跟踪 (Block Change Tracking) 说明
  3. Oracle官方文档网址收录
  4. VBS 脚本中的字典、动态数组、队列和堆栈
  5. Android五:Activity
  6. 让Dreamweaver支持phtml
  7. Asigra无代理备份:“云”数据保护的先行者
  8. Xtreme SuitePro ActiveX 2008 v12.0.1 更新了
  9. 【MATLAB】绘图技巧(4)——网格线与边框线控制
  10. simulink中选择开关模块的使用