prometheus grafana实现监控

1. Prometheus收集监控信息

案例:开车要看仪表表看监控信息,生病要量体温

网站上线了,必须清楚用户量,请求执行的平均时间

清楚每台服务器的cpu,内存,磁盘,带宽的使用率

1.2. Prometheus介绍

1.2.1. Prometheus 监控架构模式

如图-1所示。
在这里插入图片描述

图-1

1.2.2. 分析

添加依赖
添加配置
测试

1.2.3. 创建被监控mall项目

如图-1所示。
在这里插入图片描述

图-1

添加依赖
<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

<dependency>
			<groupId>io.micrometer</groupId>
			<artifactId>micrometer-registry-prometheus</artifactId>
			
</dependency>	
修改application.properties,增加
management.endpoints.web.exposure.include=*
management.metrics.tags.application=mall
创建controller
@RestController
public class UserController {
    @RequestMapping("/user/selectAll")
public String selectAll(){
return "selectAll";
    }
}
查看度量指标是否集成成功

http://127.0.0.1:8080/user/selectAll
http://localhost:8080/actuator/prometheus
查找项目名如图-1所示。

在这里插入图片描述

图-1

http_server_requests_seconds_count{application=“typeService”,exception=“None”,method=“GET”,outcome=“SUCCESS”,status=“200”,uri=“/type/selectAll”,} 6.0

1.3. 安装Prometheus

画图分析9090和8080的关系如图-1所示。
在这里插入图片描述

图-1

1.3.1. 上传镜像

\课前资料\software\monitor\dockerImage\prometheus.tar上传到/usr/local

1.3.2. 加载镜像

docker images
cd /usr/local
docker load -i prometheus.tar
docker images

1.3.3. 创建容器

mkdir -p /opt/prometheus
cd /opt/prometheus/
touch prometheus.yml

docker run -itd --name prometheus -p 9090:9090 -v /opt/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml -v /etc/localtime:/etc/localtime:ro prom/prometheus

http://192.168.64.140:9090/
status–>Targets, 如图-1所示。
在这里插入图片描述

图-1

1.3.4. 测试如何在虚拟机中访问windows

测试wget作用,打开index.html文件查看内容如图-1所示。
在这里插入图片描述

图-1

进入 dos执行ipconfig查看windwos的ip

在windwos浏览器中通过ip地址访问/user/selectAll,如图-1所示。

在这里插入图片描述

图-1

1.3.5. 添加配置

拷贝下面内容到/opt/prometheus/prometheus.yml,必须修改最后一行targets中ip地址

global:
  scrape_interval:     15s 
  evaluation_interval: 15s 
  scrape_timeout:      10s   

# Alertmanager configuration
alerting:
  alertmanagers:
  - static_configs:
    - targets:
      # - alertmanager:9093

rule_files:
  # - "first_rules.yml"
  # - "second_rules.yml"

scrape_configs:
  - job_name: 'prometheus'
    static_configs:
    - targets: ['localhost:9090']

# SpringBoot 
  - job_name: 'mall'
    scrape_interval: 5s
    metrics_path: '/actuator/prometheus'
    static_configs:
      - targets: ['192.168.64.1:8080']
      

1.3.6. 重启prometheus容器

docker restart prometheus

1.3.7. 查看统计数据

http://192.168.64.140:9090/

点status查看被监控项目状态,如图-1所示。

在这里插入图片描述
图-1

2. Grafana监控tomcat

如图-1所示。

在这里插入图片描述

图-1

2.1. 安装grafana

2.1.1. 上传镜像

\课前资料\software\monitor\dockerImage\grafana.tar上传到/usr/local

2.1.2. 加载镜像

docker images
cd /usr/local
docker load -i grafana.tar
docker images

2.1.3. 创建容器

docker run -d --name grafana -p 3000:3000 grafana/grafana:latest

2.2. 访问

http://192.168.64.140:3000/
默认用户和密码均为admin,如图-1所示。
在这里插入图片描述

图-1

在下图中点skip跳过修改密码步骤,如图-1所示。
在这里插入图片描述

图-1

2.3. 官网查看仪表盘模板id

模板地址:https://grafana.com/grafana/dashboards

在搜索框中搜索java会检索出相关的模板,选择一个自己喜欢,如图-1所示。
在这里插入图片描述

图-1

红框标注的部分就是grafana中需要配置代码,如图-1所示。
在这里插入图片描述

图-1

2.4. Grafana中添加数据源

http://192.168.64.140:3000/

在Data Sources选项中添加数据源如图-1所示。
在这里插入图片描述

图-1

在这里插入图片描述

图-1
在这里插入图片描述

图-1

在这里插入图片描述

图-1

在这里插入图片描述

图-1

2.5. 导入监控界面

访问http://192.168.64.140:3000/如图-1所示。
在这里插入图片描述

图-1

输入dashboard id如图-1所示。
在这里插入图片描述

图-1

输入name,选择数据源如图-1所示。
在这里插入图片描述

图-1

一开始没有监控信息,显示如下图如图-1所示。
在这里插入图片描述

图-1

在下图中选择监控的时间为Last 5 minutes,查看监控结果如图-1所示。
在这里插入图片描述

图-1

2.6. 查看以前导入的面板

如图-1所示。
在这里插入图片描述

图-1

3. Jmeter压测tomcat

3.1. Jmeter使用

3.1.1. 解压安装

\课前资料\software\测试
如图-1所示。
在这里插入图片描述

图-1

3.1.2. 配置中文,外观

如图-1所示。
在这里插入图片描述

图-1

在这里插入图片描述

图-1

3.1.3. 使用

创建线程组如图-1所示。
在这里插入图片描述

图-1

创建http请求如图-1所示。
在这里插入图片描述

图-1

添加查看结果如图-1所示。
在这里插入图片描述

图-1

添加汇总报告如图-1所示。
在这里插入图片描述

图-1

3.1.4. 配置

如图-1所示。
在这里插入图片描述

图-1

在这里插入图片描述

图-1

第一次250个请求,tomcat要创建线程
第二次250个请求,tomcat不用创建线程

3.2. 压测

先250/s,再500/s,如图-1所示。
在这里插入图片描述

图-1

在这里插入图片描述

图-1

3.3. QPS计算方式

3.3.1. 概念

qps:每秒请求数
responstTime:处理时间
并发量:同时能处理的请求

3.3.2. 入门案例

大学:每年招5000学生,一个学生在学校学习4年,在校生?50004
每年进来多少人(qps):5000
rt:4
并发量=qps
rt

每年招5000学生,一个学生在学校学习1年,在校生?5000
3.3.3. 画图分析
Qps=1000 rt=1000Ms 并发量=?1000
在这里插入图片描述

Qps=1000 rt=2000Ms 并发量=2000
在这里插入图片描述

并发量=1000*2

Qps=1000 rt=1Ms 并发量=1
在这里插入图片描述

并发量=1000*0.001

3.3.4. Tomcat 并发

一台tomcat 并发是?
1,tomcat 7 ,bio 一个线程只能处理1个用户的访问,线程池中线程是150,并发量是150
2,tomcat8 nio 一个线程能处理多个用户的访问,线程池中线程是150,并发量是150-1000

3.3.5. 算qps

学校能容纳20000学生,学生在校学习4年,每年能招?5000
学校能容纳20000学生,学生在校学习1年,每年能招?20000

Qps=并发量/rt,rt越少,qps越大

并发量是1000 rt是1000Ms,qps=1000
并发量是1000 rt=100ms ,qps=10000

编程的目标是为了提高qps,解决方法是让程序运行快

并发量是1000 rt=1ms ,qps=1000/(1/1000)=100W

3.3.6. 面试题:你的服务器并发量?

单台服务器最高是1000,整个系统取决于服务器数量,有10台服务,整个系统的并发是1000*10=1万,

qps取决于程序执行的时间,rt=2秒。单台服务器qps=500

3.4. 海量用户负载均衡

https://tomcat.apache.org/tomcat-8.5-doc/config/http.html
在这里插入图片描述

Tomcat:1万
Nginx:10万
Lvs:50万
F5:1千万

在这里插入图片描述

图-1

在这里插入图片描述

图-1

3.5. 线程数设置

如图-1所示。
server.tomcat.threads.max=500

最大线程数为200,并发量8000/s
最大线程数为500,并发量8000/s,有异常

在这里插入图片描述

图-1

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值