Prometheus监控指标采集与图表配置
一、背景简介Prometheus由于对云原生的优秀的支持,成为各企业上云监控选型的首选,本文主要介绍Prometheus监控指标采集后图表的配置。
Prometheus受启发于Google的Brogmon监控系统(相似的Kubernetes是从Google的Brog系统演变而来),从2012年开始由前Google工程师在Soundcloud以开源软件的形式进行研发,并且于2015年早期对外发布早期版本。2016年5月继Kubernetes之后成为第二个正式加入CNCF基金会的项目,同年6月正式发布1.0版本。2017年底发布了基于全新存储层的2.0版本,能更好地与容器平台、云平台配合。详见:Prometheus简介
二、监控指标数据Prometheus使用Pull模式主动拉取监控数据,在应用内部我们实现监控指标数据采集并暴露一个数据采集端口,在Prometheus服务侧配置监控指标采集任务进行监控数据采集(Prometheus默认15s采集一次监控数据)。
指标数据格式
在spring-boot应用中,默认监控采集路径为: http://172.16.1.15:31744/actu ...
名言名句 & 思考感悟
最近几年读了一些书,经历了一些事,想清楚了一些事,这篇文章记录日常中能够引起共鸣的一些名言名句以及自我的一些思考、认知和感悟。
一、名言名句幸福不是拥有你想要的,而是想要你已经拥有的。
灵魂所需的必需品,一件也不需要用钱去买。把目光朝向内心,你就会看到,你心中有千个地区尚未被发现。到这些地方去旅行吧,成为内心宇宙志的专家。
高山仰止,景行行止,虽不能至,心向往之。
让时光在指尖转动。
视此虽近,邈若山河。
曾国藩座右铭:物来顺应,未来不迎,当时不杂,既过不恋。
世上只有一种英雄主义,就是在认清生活真相之后依然热爱生活。
回头看,轻舟已过万重山;向前看,长路漫漫亦灿灿;抬头看,万里明灯照人间;低头看,脚下黄士千年绵;人心看,满腔热血为国燃;
世人慌慌张张,不过是图碎银几两;偏偏这碎银几两,能解世间万般惆怅。
牢骚太盛防肠断,风物长宜放眼量。——毛泽东
真正美丽的东西从不刻意求关注,美一旦自知便容易滑向造作。
一个人所说的必须真实,但没有义务把所有的真实都说出来——康德
向阳而生,逐光而行;心有暖阳,满目芬芳,何惧人生沧桑。
父爱则母静,母静则子安,子安则家和,家和万事兴;父恶则母苦, ...
Linux上使用JMeter进行压测
背景简介JMeter是我们日常开发中最常用的压测工具,我们经常会直接在本地启动JMeter对本地或远程应用进行简单的压测。但是这种压测场景下得出的压测结果并不严谨,受以下两方面影响:
本地机器硬件配置差,压测中本机的性能最先达到瓶颈
本地机器和远程服务端网络延时较高,导致压测性能比预期差所以我们做一些简单的验证可以在本地直接启动JMeter进行压测,但是如果要做真实的性能测试,需要使用专用的压测服务器对服务端应用进行压测。而压测服务器一般都是Linux系统,所以需要在Linux系统上使用JMeter进行操作。
JMeter配置下载JMeter压测工具登录Linux压测服务器,下载JMeter压测工具,官网下载地址。
curl -O https://dlcdn.apache.org//jmeter/binaries/apache-jmeter-5.6.2.zip
注意:请确保压测服务器已经安装了JDK1.8
解压并配置JMeter
说明:配置JMeter环境变量是为了方便在任意路劲下使用jmeter命令,如果不配置环境变量, ...
k8s容器部署时区问题处理
问题背景在k8s环境下部署应用,在web页面根据时间条件查询数据,无法查询到数据。但是在查询条件的范围内,是有数据插入到数据库的。查看数据库表中的记录发现数据库中的时间比北京时间晚了8小时。很明显这是一个时区问题,关于时区的配置,包括有以下几个部分:
MySQL数据库服务器的时区设置
MySQL数据库时区配置
JDBC数据库连接的时区配置
应用服务器时区配置
应用容器的时区配置
问题排查出现时区不一致的情况主要是由于应用层和数据库层的时区不一致导致,所以问题的排查主要围绕应用和数据的时区配置。
服务器时区首先我们先确认各个服务器的时区,确认服务器的时区一致命令:date 或者是 date -R,可以确认服务器的时间均为东八区时间CST。
[root@host-172 ~]$ date
2023年 11月 15日 星期三 21:19:02 CST
[root@host-172 ~]$ date -R
Wed, 15 Nov 2023 21:19:06 +0800
数据库时区在确认服务器时区后,进一步确认数据库的时区,在数据库执行下面命令:
show variables like ' ...
一份k8s的Deployment配置文件详解
一、背景说明在K8s部署项目时,需要提供一份Deployment配置文件,一下提供一份配置文件的示例,后续继续补充完善。
二、Deployment配置文件---
apiVersion: apps/v1
kind: Deployment
metadata:
annotations: {}
labels:
app: msmp-mt-server
k8s.kuboard.cn/name: msmp-mt-server-deployment
name: msmp-mt-server-deployment
namespace: hw-msmp
resourceVersion: '10843811'
spec:
progressDeadlineSeconds: 600
replicas: 1
revisionHistoryLimit: 10
selector:
matchLabels:
app: msmp-mt-server
env: dev
strate ...
Spring类加载顺序异常Bug排查
一、背景简介项目代码通过Jenkins自动打包构建,自动在测试环境部署时出现报错,但是该项目在本地IDEA中能够正常启动。报错信息如下:
Exception in thread "main" org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'nMetaWebServiceImpl': Invocation of init method failed; nested exception is java.lang.NullPointerException
at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:136)
at org.springframework.beans.fact ...
《关键对话:如何高效能沟通》
第1章 何谓关键对话
关键对话的价值沟通最大的问题在于,人们想当然地认为已经沟通了。当结果充满风险、观点背道而驰、双方情绪激烈时,普通的对话便会升级为关键对话。充满讽刺意味的是,对话内容越关键,我们正确处理问题的能力就越差。事实证明,逃避对话或是把对话搞砸都会带来非常严重的后果。当我们无法正确处理关键对话时,生活中所有重要的方面都会因此受到不利影响,其中包括我们的事业、圈子、人际关系,甚至是我们的身体健康。
关键对话的定义关键对话指的是两人或多人之间的一种讨论,这种讨论具有三个特点:
高风险
不同观点
激烈情绪
关键对话的难点这就是我们在面对关键对话时的真实状态——棘手的问题、不依不饶的对手、高度缺血的大脑和无法正常工作的思维。这就是为什么我们平素表现得正常得体,可面对关键对话时却会变成十足的白痴。
当面对充满挑战的关键对话时,你的智力水平跟一只恒河猴差不了多少。你的身体准备应对的是一只剑齿虎的攻击,而不是什么老板、邻居或老公的批评指责。
第2章 掌握关键对话
探索人们用来营造对话环境的技巧我们要关注的是如何看待问题情形以及该怎样做好对话准备。通过自我检视、观察问题、思维分析 ...
Kube-Prometheus监控Nacos(五)
NacosEndpointapiVersion: v1
kind: Endpoints
metadata:
name: nacos-exporter
namespace: monitoring
subsets:
- addresses:
- ip: # 列举 nacos 的机器的ip1
- ip: # 列举 nacos 的机器的ip2 ...
ports:
- name: http
port: 8848 # nacos-exporter 端口
protocol: TCP
ServiceapiVersion: v1
kind: Service
metadata:
labels:
app: nacos-exporter
type: nacos
version: 1.4.4
platform: mos
name: nacos-exporter
namespace: monitoring
spec:
ports:
- port: 8848 # nacos-exporter 端口
protoc ...
Kube-Prometheus监控RocketMQ(四)
RocketMQDeploymentapiVersion: apps/v1
kind: Deployment
metadata:
labels:
app.kubernetes.io/component: exporter
app.kubernetes.io/name: rocketmq-exporter
app.kubernetes.io/part-of: kube-prometheus
name: rocketmq-exporter
namespace: monitoring
spec:
progressDeadlineSeconds: 600
replicas: 1
revisionHistoryLimit: 10
selector:
matchLabels:
app.kubernetes.io/component: exporter
app.kubernetes.io/name: rocketmq-exporter
app.kube ...
Kube-Prometheus监控Redis(三)
RedisDeploymentpiVersion: apps/v1
kind: Deployment
metadata:
#设置唯一名称,建议添加数据库实例ip
name: redis-exporter-172.16.1.77
namespace: monitoring
labels:
app.kubernetes.io/component: exporter
app.kubernetes.io/name: redis-exporter
app.kubernetes.io/part-of: kube-prometheus
app.kubernetes.io/version: 1.37.0
spec:
selector:
matchLabels:
app.kubernetes.io/component: exporter
app.kubernetes.io/name: redis-exporter
app.kubernet ...