本文介绍SpringCloud使用Sofa-lookout,基于Eureka服务发现。

1.前景

本文属于是前几篇文章的后续,其实一开始感觉这个没有什么必要写的,但是最近一个朋友问我关于这个的问题,所以想着还是写一篇基于Eureka监控使用Pormetheus监控Sofa-Lookout监控的文章。

前几篇文章请看:

《SpringBoot使用prometheus监控》

《SpringBoot使用SOFA-Lookout监控》

《SpringCloud使用Prometheus监控(基于Eureka)》

至于使用consul服务发现监控这里就不介绍了,网上的文章很多,千篇一律。这一篇与上面的这个文章还是有一些不同的,Sofa-Lookout是通过暴露一个端口来进行监控,比较特殊,所以这里给大家借鉴一下。

2.Eureka Server

本文还是需要在Eureka上面加入eureka-consul-adapter依赖,eureka-consul-adapter项目github地址:

https://github.com/twinformatics/eureka-consul-adapter

这里在介绍一下Eureka Server内容,就是在普通Eureka Server基础上加入上述依赖,完整pom如下:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.1.4.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.dalaoyang</groupId><artifactId>springcloud_sofalookout_server</artifactId><version>0.0.1-SNAPSHOT</version><name>springcloud_sofalookout_server</name><description>springcloud_sofalookout_server</description><properties><java.version>1.8</java.version><spring-cloud.version>Greenwich.SR1</spring-cloud.version></properties><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-server</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>at.twinformatics</groupId><artifactId>eureka-consul-adapter</artifactId><version>1.1.0</version></dependency></dependencies><dependencyManagement><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>${spring-cloud.version}</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>

配置文件如下:

server.port=8761eureka.instance.hostname=localhost
eureka.client.service-url.defaultZone=http://${eureka.instance.hostname}:${server.port}/eureka/##禁止自己向自己注册
eureka.client.register-with-eureka=false
eureka.client.fetch-registry=false

启动类如下:

package com.dalaoyang;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;@SpringBootApplication
@EnableEurekaServer //启动服务注册中心
public class SpringcloudSofalookoutServerApplication {public static void main(String[] args) {SpringApplication.run(SpringcloudSofalookoutServerApplication.class, args);}}

3.Eureka Client

这里有一些是与之前《SpringBoot使用SOFA-Lookout监控》文章不同的地方,首先在pom文件中加入sofa依赖:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.1.4.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.dalaoyang</groupId><artifactId>springcloud_sofalookout_client</artifactId><version>0.0.1-SNAPSHOT</version><name>springcloud_sofalookout_client</name><description>springcloud_sofalookout_client</description><properties><java.version>1.8</java.version><spring-cloud.version>Greenwich.SR1</spring-cloud.version></properties><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-client</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><dependency><groupId>com.alipay.sofa.lookout</groupId><artifactId>lookout-sofa-boot-starter</artifactId><version>1.5.2</version></dependency><dependency><groupId>com.alipay.sofa.lookout</groupId><artifactId>lookout-reg-prometheus</artifactId><version>1.5.2</version></dependency></dependencies><dependencyManagement><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>${spring-cloud.version}</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>

配置文件配置如下:

##端口号
server.port=8888
##服务名称
spring.application.name=springboot_sofalookout_client
##EurekaServer
eureka.client.service-url.defaultZone=http://server1:8761/eureka/com.alipay.sofa.lookout.prometheus-exporter-server-port=8081
eureka.instance.metadata-map.address=${spring.cloud.client.ip-address}:${com.alipay.sofa.lookout.prometheus-exporter-server-port}

其中需要解释如下两个参数:

  • com.alipay.sofa.lookout.prometheus-exporter-server-port:sofa-lookout端口
  • eureka.instance.metadata-map.address:封装的Eureka元信息,内容是真正sofa-lookout数据的地址,方便稍后prometheus使用,这个属性不是必须要叫这个名字!!!

4.Prometheus

prometheus配置如下:

# my global config
global:scrape_interval:     15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.# scrape_timeout is set to the global default (10s).# Alertmanager configuration
alerting:alertmanagers:- static_configs:- targets:# - alertmanager:9093# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:# - "first_rules.yml"# - "second_rules.yml"# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:- job_name: 'prometheus'static_configs:- targets: ['127.0.0.1:9090']- job_name: 'consul-prometheus'consul_sd_configs:- server: '172.16.103.33:8761'services: [SPRINGBOOT_SOFALOOKOUT_CLIENT]relabel_configs:- source_labels: ['__meta_consul_metadata_address']target_label:  __address__

这里有几点需要注意的:

  • 172.16.103.33是我的内网IP,这个不需太多关注。
  • relabel_configs标签用于修改一些默认配置,比如本文使用__meta_consul_metadata_address属性替代__address__属性,这里的__meta_consul_metadata_address属性值就是我们在application.properties中的eureka.instance.metadata-map.address属性值,这个是eureka-consul-adapter依赖为我们转换的。
  • 上面两个属性怎么获取的? 接下来告诉你!

5.测试

分别启动EurekaServer,EurekaClient,prometheus,首先查看Eureka,如图所示。

实例已经注册了,接下来查看prometheus/targets,如图所示。

从这里可以看到,prometheus已经可以成功收集了,接下来我们查看一下都有哪些属性,鼠标放到对应的labels上,如图所示。

浮框的内容就是对应实例的属性值,可以对应使用。

接下来查看对应Grafana,也可以查看到对应信息了,如图

6.源码

Eureka Server源码地址:https://gitee.com/dalaoyang/springcloud_learn/tree/master/springcloud_sofalookout_server

Eureka Client源码地址:https://gitee.com/dalaoyang/springcloud_learn/tree/master/springcloud_sofalookout_client

SpringCloud使用Sofa-lookout监控(基于Eureka) 1相关推荐

  1. SpringCloud使用Sofa-lookout监控(基于Eureka)

    本文介绍SpringCloud使用Sofa-lookout,基于Eureka服务发现. 1.前景 本文属于是前几篇文章的后续,其实一开始感觉这个没有什么必要写的,但是最近一个朋友问我关于这个的问题,所 ...

  2. SpringCloud使用Prometheus监控(基于Eureka)

    本文介绍SpringCloud使用Prometheus,基于Eureka服务发现. 1.Prometheus介绍 在之前写过两篇有关Prometheus使用的文章,如下: <SpringBoot ...

  3. SpringCloud源码学习笔记之Eureka客户端——DiscoveryClient接口的层级结构

    1.DiscoveryClient接口和类   在SpringCloud框架中,有一个DiscoveryClient接口和一个同名的DiscoveryClient类,其中:DiscoveryClien ...

  4. 实践出真知之Spring Cloud之基于Eureka、Ribbon、Feign的真实案例

    转载自  实践出真知之Spring Cloud之基于Eureka.Ribbon.Feign的真实案例 Eureka是Spring Cloud Eureka的简称,是Netflix提供的组件之一.通过E ...

  5. 基于Eureka的服务治理

    代码地址如下: http://www.demodashi.com/demo/11927.html 一.服务的注册与发现 关系调用说明: 服务生产者启动时,向服务注册中心注册自己提供的服务 服务消费者启 ...

  6. 【Knife4j】小试牛刀,基于eureka的集成

    knife4j是什么?可以关注一下官网,简单说就是对基于swagger的增强版本.[官网] 本文基于以下基础进行集成: springboot 2.7.0(2.6.7+也可,推荐使用GA版本) knif ...

  7. 基于Eureka实现服务注册中心

    一.序言 当项目由单体结构拆分成一个个的服务,服务之间由本地调用转变成远程调用的时候,我们可以看成是通过一个个的url去获取数据.调用方和被调用方需要知道彼此的状态才可互相通信,而注册中心正是屏蔽了他 ...

  8. SpringCloud组件 源码剖析:Eureka服务注册方式流程全面分析

    在SpringCloud组件:Eureka服务注册是采用主机名还是IP地址?文章中我们讲到了服务注册的几种注册方式,那么这几种注册方式的源码是怎么实现的呢?我们带着这一个疑问来阅读本章内容能够让你更深 ...

  9. springCloud Finchley 实战入门(基于springBoot 2.0.3)【六 Hystrix 仪表盘】

    Hystrix仪表盘 通过上一篇我们已经成功的实现了spring cloud对Hystrix的整合了.除此之外,spring cloud还完美的整合了Hystrix的仪表盘组件Hystrix Dash ...

最新文章

  1. 小程序promise封装post请求_微信小程序用promise封装请求
  2. 教职工使用计算机管理制度,【学校管理规章制度】教师笔记本电脑使用与管理制度...
  3. FPGA浮点数定点化
  4. c++上传oss中文路径报错_C# 从Oss对象存储器上下载文件到本地打包下载代码
  5. .deploy 文件 php,关于php:Heroku deploy自动删除服务器文件?
  6. 【基础】【后台】 微信小程序 - 腾讯云 - wafer2 - PHP - DEMO - 003 - 源码分析 - 02 - 路由
  7. 空间平面,空间直线及它们的方程
  8. KindEditor在eclipse里的配置方法
  9. 实践录丨如何在鲲鹏服务器OpenEuler操作系统中快速部署OpenGauss数据库
  10. 给在校大学生的三点学习建议^
  11. 我的世界可以在服务器用修改器,我的世界TMI修改器使用教程
  12. JVM内存模型及CMS、G1和ZGC垃圾回收器详解
  13. Error: DPI-1047: Cannot locate a 64-bit Oracle Client library: “问题
  14. [英语语法]句法之句子成分和种类
  15. 浏览器 播放音频(IE,谷歌)
  16. 怎么查ip地址 多种方法教学
  17. 公司网站被跳转到其他网站被提示该站点可能受到黑客攻击,部分页面已被非法篡改
  18. Ps制作食物网站展示
  19. 前端框架React Js入门教程【转】
  20. 代码简短且隐蔽的后门木马

热门文章

  1. 北京市《智慧停车系统技术要求》正式发布(附下载)
  2. 2023全国特种设备作业人员(N1)叉车司机模拟一[安考星]
  3. anaconda添加源-创建环境-pycharm使用anaconda环境
  4. 软底有软件测试培训吗,【4月3日】一站式线上学习课程——一年级 鼠小弟云课堂开讲啦!...
  5. 【零基础上手yolov5】yolov5的安装与相关环境的搭建
  6. burpsuite小技巧,实现Fuzz测试
  7. 热电阻PT100测温电路
  8. 什么是DES算法,详解DES算法的基本原理
  9. Python中Loadlibrary失败, 提示cannot open shared object file
  10. format函数python是什么意思_python中format函数指的是什么意思