你好,关于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、课工场课程怎么样等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)