prometheus能监控哪些指标

prometheus能监控哪些指标,第1张

你好,关于prometheus能监控哪些指标

Prometheus是一个开源项目,最初由SoundCloud的工程师开发。它专门用于监控那些运行在容器中的微服务。每经过一个时间间隔,数据都会从运行的服务中流出,存储到一个时间序列数据库中,这个数据库之后可以通过PromQL语言查询。

另外,因为数据是以时间序列存储的,当出现问题时,可以根据这些时间间隔进行诊断,另外还可以预测基础设施的长期监控趋势----这是Prometheus的两大功能。

希望对你有帮助

如何系统学习java体系

学java首先要学 J2SE,它是java体系的基础,也是重中之重。很多人往往不重视基础,其实这是舍本逐末的做法。说这么多就是希望大家能重视基础,能在这条路上走的更远。

学j2se有下面几个目标:

1、你要能真正理解面向对象的优势,理解为什么不是面向过程。

2、掌握java语法基础。包括异常处理、多线程、网络编程、GUI编程等

3、如果你对swing不感兴趣,可以跳过它。

这一阶段结束后,你需要能独立写一个小游戏,比如坦克大战、俄罗斯方块、贪吃蛇等。

当你完成J2SE的学习之后,你就要开始学习java web了。

你需要掌握web基础知识:html、css、javascript、ajax、jQuery。

别怕,这些技术看起来很多,其实也没要你精通它们,只是要你能在用到它们的时候,能通过快速查阅相关文档,能正确使用它们。如果这一阶段顺利的话,你可能还用不到一个月。

学习servlet、jsp、jdbc。

这些是javaweb的基础,如果你自学有难度,可以在网上下载一些相关视频,帮助理解,降低学习难度曲线。

当你完成上一阶段的学习后,你就可以进入J2EE的阶段了。

这一阶段,你可能会见到很多各种各样的框架,会让你眼花缭乱,头晕目眩。不过别担心,你只需要学习三个就足够了。它们是struts2、hibernate、spring。这些框架为搭建具有可伸缩性、灵活性、易维护性的商务系统提供了良好的机制。

首先你需要学习三个框架的基本配置和使用,直到你能熟练搭建一个ssh项目。

如果学有余力,你可以深入学习这些框架的设计模式。

学习完三大框架之后,其实你学的已经足够多了。如果对移动应用的开发感兴趣,你可以接着学习安卓开发。安卓开发不需要其他知识,只要你j2se学的不错,学安卓开发对你就没太大难度了。

还不错呢, 就那java来说,分了6个阶段,273个知识点,528个课时,知识点非常的丰富,很多机构只有400个课时,可以对比一下,

第一阶段:java基本功修炼

1 认识计算机硬件

2 计算机组成原理

3 计算机软件知识

4 计算机网络知识

5 常用网络应用 *** 作

6 认识计算机病毒

7 逻辑训练

8 初识Java

9 变量和数据类型

10 选择结构

11 循环结构for

12 循环结构do-while

13 循环结构while

14 多重循环及程序调试

15 循环进阶

16 一维数组及经典应用

17 二维数组

18 认识类与对象

19 方法及方法重载

20 封装与继承

21 方法重写与多态

22 项目实战-汽车租赁系统

23 抽象类和接口

24 异常

25 项目实战-QuickHit

26 Java 中的集合类型

27 List 集合

28 Set 集合

29 HashMap 集合

30 Iterator

31 Collections 算法类及常用方法

32 enum

33 包装类及装箱拆箱

34 String、StringBuffer 类常用方法 *** 作字符串

35 Date、Calendar

36 Math 类常用方法

37 IO/NIO

38 字节输入流(InputStream、FileInputStream、BufferedInputStream)

39 字节输出流(OutputStream、FileOutputStream、BufferedOutputStream)

40 字符输入流(Reader、InputStreamReader、FileReader BufferedReader)

41 字节输出流(Writer、OutputStreamWriter、FileWriter、BufferedWriter)

42 文件复制

43 Serialize、Deserialize

44 职场晋升力:四象限时间管理与精力管理

45 多线程(Thread、Runnable)

46 Thread LifeCycle

47 线程的调度

48 线程的同步和死锁

49 Thread Pool

50 职场晋升力:团队合作

51 Socket(TCP、UDP)

52 XML 概念、优势、规范

53 XML 中特殊字符的处理

54 使用DOM 读取、添加、删除、解析 XML 数据

第二阶段:javaweb开发

55 搭建和配置MySQL 数据库

56 数据库增、删、查、改语句

57 事务

58 视图

59 数据库备份与恢复

60 数据库用户管理

61 数据库设计

62 项目实战-银行ATM 存取款机系统

63 走进 HTML 和CSS

64 列表表格及表单美化

65 CSS 高级 *** 作

66 Bootstrap

67 CSS 组件

68 JavaScript 面向对象

69 JavaScript 判断、循环

70 JavaScript 闭包

71 JavaScript 语法

72 Bootstrap 综合案例

73 HTML5、CSS3

74 jQuery 基础

75 jQuery 基本 *** 作

76 jQuery 事件与特效

77 jQuery Ajax

78 jQuery 插件

79 搭建Web 环境初识JSP

80 JSP 九大内置对象

81 JSP 实现数据传递和保存

82 JDBC

83 单例模式、工厂模式

84 MVC、三层模式

85 Commons-fileupload、CKEditor

86 分页查询

87 EL 与 JSTL

88 Servlet 与Filter

89 Listener 与MVC

90 Ajax 与 jQuery

91 jQuery 的Ajax 交互扩展

92 项目实战—使用Ajax 技术改进新闻发布系统

93 反射

94 Linux 系统的安装

95 在Linux 中管理目录和文件

96 在Linux 中管理用户和权限

97 在Linux 服务器环境下安装软件和部署项目

98 职场晋升力:职场沟通

第三阶段: 企业级框架开发

99 MyBatis 环境搭建

100 SQL 映射文件

101 动态SQL

102 MyBatis 框架原理

103 Spring IOC

104 构造注入、依赖注入、注解

105 Spring 整合MyBatis(SqlSessionTemplate、MapperFactoryBean、事务

处理)

106 Spring 数据源(属性文件、JNDI)、Bean 作用域

107 Spring 框架的运行原理

108 SpringMVC 体系概念

109 SpringMVC 之数据绑定、数据效验、

110 SpringMVC 之视图及视图解析

111 SpringMVC 之文件上传、本地化解析

112 SpringMVC 之静态资源处理、请求拦截器、异常处理

113 Oracle 数据库环境搭建、安装

114 Oracle 数据库 SQL、分页、备份、还原

115 Hibernate 概念、依赖

116 HQL 查询语言

117 Hibernate 中配置关联映射

118 HQL 连接查询与 Hibernate 注解

119 Struts 2 概念、依赖

120 Struts 2 配置

121 OGNL 表达式

122 Struts 2 拦截器

123 SSH 框架整合

124 使用Maven 构建项目

125 使用Struts 2 实现Ajax

126 Jsoup 网络爬虫

127 多线程网络爬虫

128 反爬及反反爬策略

129 通用爬虫设计

130 Echart 图表分析

131 IKAnalyzer 分词

132 企业框架项目实战-代理商管理系统

133 企业框架项目实战-SL 会员商城

134 企业框架项目实战-会员管理系统

135企业框架项目实战-互联网招聘信息采集分析平台

第四阶段: 前后端分离开发

136 GitHub

137 Git 基础(checkout、pull、commit、push、merge 等)

138 Git 进阶(多分支协作)

139 GitLab

140 IDEA 的使用

141 Maven 介绍(概念、仓库、构建、命令)

142 使用Maven 构建WEB 项目

143 使用Maven 构建多模块项目

144 使用Maven 搭建私服仓库

145 Scrum 框架介绍(三个角色、三个工件、四个会议)

146 Scrum Team 组建团队

147 产品需求和用户故事

148 每日立会

149 使用敏捷-Scrum 方式开发管理实战

150 前后端分离、分布式集群架构、垂直架构

151 SSM(SpringMVC+Spring+MyBatis)整合实战

152 Git、Maven 私服Nexus

153 第三方接入技术(微信、阿里)

154 MySQL 电商实战

155 Redis(缓存服务)

156 搜索引擎-Solr

157 集成API Doc 工具-Swagger

158 自动化处理:Tengine+LUA+GraphicsMagic

159 手机、邮箱注册

160 单点登录 Token

161 OAuth20 认证

162 Jsoup 网络爬虫(多线程爬虫/代理 IP 爬虫)

163 ExecutorService 线程池

164 IK 中文分词

165 Postman

166 ReactJS

167 webpack

168 职场晋升力:简历撰写

169 程序猿面试宝典之项目面试

170大型互联网旅游电商项目实战-爱旅行

第五阶段: 分布式微服架构开发

171 Spring Boot 环境搭建

172 Spring Boot 常用技能

173 Spring Boot 整合Redis

174 Spring Boot 整合Mybatis

175 微服务架构及架构设计

176 消息队列

ActiveMQ\RabbitMQ

177 分布式事务

178 分布式锁 Redis-setnx

179 Zookeeper 注册中心

180 基于 ActiveMQ 实现高并发

181 Docker 环境搭建

182 Docker 镜像加速

183 Docker 容器管理

184 Docker 镜像管理

185 Docker 容器文件备份

186 Dockerfile

187 Docker 私服仓库

188 真实互联网高并发电商项目实战-双十一抢购

189 可视化监控 Portainer

190 Docker Compose 容器编排

191 Docker Compose 扩容、缩容

192 Docker Swarm 集群编排

193 Jenkins 安装、插件配置

194 Jenkins 配置普通任务

195 Jenkins 配置管道任务

196 Jenkins 自动发布服务

197 Spring Cloud Eureka

198 Spring Cloud Feign

199 Spring Cloud Ribbon

200 Spring Cloud Zuul

201 Spring Cloud Config

202 Spring Cloud Hystrix

203 Spring Cloud Sleuth

204 Spring Boot Admin

205Eureka 注册原理探秘

206 Spring Cloud 大坑解读

207 Zipkin

208 Zipkin 整合RabbitMQ

209 Zipkin 整合MySQL

210 ELK 日志收集

211Kafka

212 Elasticsearch 映射管理

213 Elasticsearch 查询/复合查询

214 Elasticsearch 集群/集群规划

215 Elasticsearch 聚合

216 Elasticsearch 集群监控

217 Elasticsearch 插件

(Head/BigDesk)

218 Mycat 读写分离

219 Mycat 一主多从

220 Mycat 多主多从

221 Mycat 数据分片

222 Redis

223 Redis-Redlock

224 Elasticsearch 环境搭建

225 Elasticsearch 客户端

226 Elasticsearch 索引管理

227 Elasticsearch 文档管理

228 Mycat 集群

229 Jmeter 并发测试

230 Jmeter 生成测试报告

231 微信登录

232 微信支付

233 支付宝支付

234 百度地图

235 Sonar 本地检测

236 Sonar +Jenkins 线上检测

237 CI/CD

238 Spring Boot 改造爱旅行项目实战

239 大型互联网票务类电商项目实战-大觅网

240 ES6 概念(les、const)

241 ES6 对象和数组

242 ES6 函数扩展

243 VUE 环境搭建

244 VUEJS 指令

245VUE 交互

246 VUE 实例生命周期

247 VUE 组件

248 VUE 项目环境配置及单文件组件

249VUE 路由

第六阶段:cc服务

250 Spring Cloud Gateway

251 Consul

252 Nacos

253 Eureka、Consu、lNacos、Zookeeper 对比分析

254 Prometheus + Grafana

255 ES 分布式存储原理

256 NoSQL 数据库解决方案(Redis、MongoDB)

257 OAuth20 认证( authorization code 模式)

258 OAuth20 认证( implicit 模式)

259 OAuth20 认证( resource owner password credentials 模式)

260 OAuth20 认证( client credentials 模式)

261 NAS/FastDFS 分布式文件存储

262 Python 基础

263 Python 爬虫

264 大数据及 Hadoop 概述

265 分布式文件系统 HDFS

266 分布式计算框架MapReduce

267 分布式列式数据库 HBase

268 Hadoop 综合应用

269 面试大局观

270 职业规划

271 项目面试

272 具体业务场景化解决方案

273 更多技术专题持续增加中

如果有不同意见的兄弟,请@舵哥

我们是一家做生鲜电商的公司,从系统搭建初期,我们就采用微服务的架构,基于DevOps体系来不断提高我们的交付的质量和效率, 随着业务和团队规模的发展,服务逐渐进行拆分,服务之间的交互越来越复杂,目前整个微服务已经近几十个应用模块, 整体架构上包括负载均衡、API网关、基于Dubbo的微服务模块、缓存、队列、数据库等,目前整个集群的资源利用率也没有一个合理的规划评估,虚拟机上部署多个应用服务隔离性也存在问题,考虑到越来越多门店以及第三方流量的接入,需要考虑系统的快速的伸缩能力,而基于统一资源管理的Docker容器技术在这些方面有一些天然的优势,并且和微服务架构、DevOps体系完美衔接。

经过调研和对比,最终我们采用Mesos作为底层资源的管理和调度,Marathon作为Docker执行的框架,配合ZooKeeper、Consul、Nginx作为服务注册发现。目前已经有部分的核心业务已经平稳的运行在基于Docker容器的Mesos资源管理平台上。

逻辑架构

部署架构

在发布流程中,在发布上线之前的环节是预发布,预发布环境验证完成后进行打包,生成Docker镜像和基于虚拟机部署的应用部署包,push到各自对应的仓库中,并打Tag。

生产环境发布过程中,同时发布到Mesos集群和原有的虚拟机集群上,两套集群网络是打通的。

网络架构

在网络架构选型时,会考虑一下几个原则:

docker bridge使用默认的docker0网桥,容器有独立的网络命名空间,跨主机的容器通信需要做端口NAT映射;Host的方式采用和宿主机一样的网络命名空间,网络无法做隔离,等等这些方式有非常多的端口争用限制,效率也较低。

Docker Overlay的方式,可以解决跨主机的通信,现有二层或三层网络之上再构建起来一个独立的网络,这个网络通常会有自己独立的IP地址空间、交换或者路由的实现。

Docker在libnetwork团队提供了multi-host网络功能,能完成Overlay网络,主要有隧道和路由两种方式, 隧道原理是对基础的网络协议进行封包,代表是Flannel。

另外一种是在宿主机中实现路由配置实现跨宿主机的容器之间的通信,比如Calico。

Calico是基于大三层的BGP协议路由方案,没有使用封包的隧道,没有NAT,性能的损耗很小,支持安全隔离防护,支持很细致的ACL控制,对混合云亲和度比较高。经过综合对比考虑,我们采用calico来实现跨宿主机的网络通讯。

安装好ETCD集群,通过负载均衡VIP方式(LVS+keepalived)来访问ETCD集群。

ETCD_AUTHORITY=1010195193:2379

export ETCD_AUTHORITY

构建Calico网络集群,增加当前节点到集群中,Calico 节点启动后会查询 Etcd,和其他 Calico 节点使用 BGP 协议建立连接。

/calicoctl node –libnetwork –ip=10103210

增加可用的地址池ip pool

/calicoctl pool add 104100/24 –nat-outgoing

/calicoctl pool show

创建网络,通过Calico IPAM插件(Driver(包括IPAM)负责一个Network的管理,包括资源分配和回收),-d指定驱动类型为Calico,创建一个online_net的driver为Calico的网络:

docker network create -d calico –ipam-driver calico –subnet=104100/24 online_net

启动容器,网络指定刚才创建的online_net,容器启动时,劫持相关 Docker API,进行网络初始化。 查询 Etcd 自动分配一个可用 IP,创建一对veth接口用于容器和主机间通讯,设置好容器内的 IP 后,打开 IP 转发,在主机路由表添加指向此接口的路由,宿主机10103210的路由表:

宿主机101050145的路由表:

容器包发送包的路由过程如上图,宿主机10103210上的容器IP 1041064通过路由表发送数据包给另外一个宿主机101050145的容器1041055。

对于有状态的数据库,缓存等还是用物理机(虚拟机),来的应用集群用的是虚拟机,Docker容器集群需要和它们打通,做服务和数据的访问交互。那么只需要在物理机(虚拟机)上把当前节点加入容器网络集群即可:

ETCD_AUTHORITY=1010195193:2379

export ETCD_AUTHORITY

/calicoctl node –ip=101016201

服务自注册和发现

API网关提供统一的API访问入口,分为两层,第一层提供统一的路由、流控、安全鉴权、WAF、灰度功能发布等功能,第二层是Web应用层,通过调用Dubbo服务来实现服务的编排,对外提供网关的编排服务功能,屏蔽业务服务接口的变更;为了能够快速无缝的实现web层快速接入和扩容,我们用Consul作为服务注册中心实现Web服务的自动注册和发现。

对于Web服务注册,我们自己实现了Register,调用Consul的API进行注册,并通过TTL机制,定期进行心跳汇报应用的 健康 状态。

对于Web服务的发现,我们基于Netflix Zuul进行了扩展和改造,路由方面整合Consul的发现机制,并增加了基于域名进行路由的方式,对路由的配置功能进行了增强,实现配置的动态reload功能。API网关启动定时任务,通过Consul API获取Web服务实例的 健康 状态,更新本地的路由缓存,实现动态路由功能。

平台的微服务框架是基于Dubbo RPC实现的,而Dubbo依赖ZooKeeper做服务的发现和注册。

Consul在Mesos Docker集群的部署方案

不建议把Consul Agent都和Container应用打包成一个镜像,因此Consul Agent部署在每个Mesos Slave宿主机上,那么Container如何获取宿主机的IP地址来进行服务的注册和注销,容器启动过程中,默认情况下,会把当前宿主机IP作为环境变量传递到Container中,这样容器应用的Register模块就可以获取Consul代理的IP,调用Consul的API进行服务的注册和卸载。

在日常应用发布中,需要保障发布过程对在线业务没有影响,做到无缝滚动的发布,那么在停止应用时应通知到路由,进行流量切换。

docker stop命令在执行的时候,会先向容器中PID为1的进程发送系统信号SIGTERM,然后等待容器中的应用程序终止执行,如果等待时间达到设定的超时时间,或者默认的10秒,会继续发送SIGKILL的系统信号强行kill掉进程。这样我们可以让程序在接收到SIGTERM信号后,有一定的时间处理、保存程序执行现场,优雅的退出程序,我们在应用的启动脚本中实现一段脚本来实现信号的接受和处理, 接收到信号后,找到应用的PID,做应用进程的平滑kill。

应用的无缝滚动发布、宕机恢复

Marathon为运行中的应用提供了灵活的重启策略。当应用只有一个实例在运行,这时候重启的话,默认情况下Marathon会新起一个实例,在新实例重启完成之后,才会停掉原有实例,从而实现平滑的重启,满足应用无缝滚动发布的要求。

当然,可以通过Marathon提供的参数来设置自己想要的重启策略:

“upgradeStrategy”:{ “minimumHealthCapacity”: N1, “maximumOverCapacity”: N2 }

如何判断新的实例是否启动完成可以提供服务,或者当前容器的应用实例是否 健康 ,是否实例已经不可用了需要恢复,Marathon提供了healthchecks 健康 监测模块

"healthChecks": [{

"protocol": "COMMAND",

"command":{

"value":"sh /data/soft/healthchecksh app 1010195193"

},

"gracePeriodSeconds": 90,

"intervalSeconds": 60,

"timeoutSeconds": 50,

"maxConsecutiveFailures": 3

}]

healthchecksh通过负载均衡调用HealthMonitor来获取应用实例的监控状态, HealthMonitor是我们的 健康 检查中心,可以获取应用实例的整个拓扑信息。

容器监控、日志

对于容器的监控,由于我们是采用Mesos Docker的容器资源管理的架构,因此采用mesos-exporter+Prometheus+Grafana的监控方案,mesos-exporter的特点是可以采集 task 的监控数据,可以从task的角度来了解资源的使用情况,而不是一个一个没有关联关系的容器。mesos-exporter导出Mesos集群的监控数据到Prometheus,Prometheus是一套监控报警、时序数据库组合,提供了非常强大存储和多维度的查询,数据的展现统一采用Grafana。

以上就是关于prometheus能监控哪些指标全部的内容,包括:prometheus能监控哪些指标、推荐如何系统的学习JAVA、课工场课程怎么样等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10132428.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存