Tonny's Blog

莫等闲, 白了少年头, 空悲切


  • 首页

  • 标签

  • 分类

  • 归档

springboot应用基于prometheus监控自定义指标

发表于 2021-12-07 | 更新于 2021-12-08 | 分类于 java , monitor
系统开发中需要统计很多应用指标, 比如: 接口请求QPS, 接口响应时间统计, 接口耗时发布等. SpringBoot自带的spring-actuator中集成了Micrometer进行度量统计, 然后我们再用Promethues收集存储指标后, 在Grafana中以图标展示. 1. Micrometer1.1 Micrometer提供的度量类库在Micrometer中, Meter接口是用于收集应用中度量数据的, 它是由MeterRegistry创建和保存的, 可以将MeterRegistry理解为Meter的工厂和缓存中心. 一般而言, 每个JVM应用在使用Micrometer时都需要创建一个MeterRegistry的具体实现. MeterRegistry在Micrometer中是一个抽象类, 主要实现包括: SimpleMeterRegistry : 每个Meter的最新数据可以收集到SimpleMeterRegistry实例中,但是这些数据不会发布到其他系统,也就是说数据是位于应用的内存中的。适合调试的时候使用 CompositeMeterRegistry: 多个Mete ...
阅读全文 »

mysql-default-database

发表于 2021-11-11 | 分类于 mysql
infomation_schema数据库CHARACTER_SETS表该表提供查询MySQL支持的可用字符集有哪些, 该表是Memory引擎临时表 12345678910111213141516mysql> select * from character_sets;+--------------------+----------------------+---------------------------------+--------+| CHARACTER_SET_NAME | DEFAULT_COLLATE_NAME | DESCRIPTION | MAXLEN |+--------------------+----------------------+---------------------------------+--------+| big5 | big5_chinese_ci | Big5 Traditional Chinese | 2 || latin1 ...
阅读全文 »

python代码片段

发表于 2021-11-05 | 分类于 python
列表映射后求平均值123456def average(lst, fn): return sum(map(fn, lst), 0.0) / len(lst)# 调用average([1, 3, 4], lambda x: x)average([{'n': 1}, {'n': 3}, {'n': 4}, lambda x: x['n']) 形如lambda parameters: expression的表达式可以创建一个匿名函数, 有时这比先调用函数再当做参数传入要方便许多. 比如算平方list(map(lambda x: x * x, [1, 2, 3, 4, 5, 6, 7, 8, 9])). 1234# 使用lambda方式定义一个函数g = lambda x: x * xg(2) # 4(lambda x: x * x)(2) # 4 map的类似应用 1234def max(lst, fn): return max(map(fn, lst))max([{'n': 1}, {'n': 3 ...
阅读全文 »

linux系能瓶颈排查

发表于 2021-08-23 | 更新于 2021-09-14 | 分类于 linux
系统CPU负载 top 1/5/15分钟负载 M/P:按内存/CPU排序 sar -q 1 3 CPU负载 lscpu 查看CPU物理颗数/核数/逻辑数 CPU使用率负载高但使用率低, 说明IO较多 top sar -u 1 3 内存 free -h vmstat -Sm 1 3 内存统计(物理/swap) sar -r 1 3 内存使用率 sar -B 1 3 内存页换入换出缺页 sar -W 1 3 swap换入换出 ps aux | awk ‘NR!=1{a[$1]+=$6;} END { for(i in a) print i “, “ a[i]”KB”; }’ 查看各用户所占用内存 磁盘IO fdisk -l 查看磁盘详细信息 df -lh 查看磁盘挂载点可用空间 lsblk 查看磁盘, 分区容量和挂载点 du -sh PATH/* 查看各文件/目录占用磁盘大小 iostat -x -k -d 1 3 io读写数据量统计 iotop -P 需要安装, 查看进程io情况 sar -b 1 ...
阅读全文 »

sysbench 性能基准测试

发表于 2021-08-09 | 分类于 performance
一、 安装 安装epel软件源(Centos7) 1rpm -Uvh http://mirror.centos.org/centos/7/extras/x86_64/Packages/epel-release-7-11.noarch.rpm 安装sysbench 1yum install -y sysbench 安装时如果如下错误 ** 发现 2 个已存在的 RPM 数据库问题, ‘yum check’ 输出如下:2:postfix-2.10.1-6.el7.x86_64 有缺少的需求 libmysqlclient.so.18()(64bit)2:postfix-2.10.1-6.el7.x86_64 有缺少的需求 libmysqlclient.so.18(libmysqlclient_18)(64bit) 解决方法如下: 123>wget https://downloads.mysql.com/archives/get/p/23/file/mysql-community-libs-compat-5.7.34-1.el7.x86_64.rpm>rpm -ivh my ...
阅读全文 »

arthas

发表于 2021-06-23 | 分类于 java
常用流程 搜索类 SC 12345sc *.UserControllersc org.springframework.*# 打印详细信息 -d:详情详细 -f:打印属性sc -d -f com.test.UserController 查看方法内部调用栈以及各节点上的耗时 trace 1234trace com.test.UserController login# 统计次数为1;包含JDK内的函数;耗时超过10mstrace --skipJDKMethod false com.test.userController login -n 1 '#cost > 10' 查看方法被调用路径 stack 1234stack com.test.UserService login# 根据条件过滤 统计1次stack com.test.UserService login 'params[0]=="admin"' -n 1 查看方法出入参 watch 1234567# 方法调用前后入参和返回值 -x:属性展开深度watch demo.MathGame primeFactors " ...
阅读全文 »

vim

发表于 2021-06-16 | 更新于 2021-07-16 | 分类于 linux
光标移动在出现软换行时,一个实际行可以被换行成了多个屏幕行。 基础命令 123 k <上>h l <左> <右> j <下> 按键 动作 gj 下移一个屏幕行 gk 上移一个屏幕行 0 移动到实际行的行首 g0 移动到屏幕行的行首 ^ 移动到实际行的第一个非空白字符 g^ 移动到屏幕行的第一个非空白字符 $ 移动到实际行的行尾 g$ 移动到屏幕行的行尾 基于单词移动w和b最常用,要记住 按键 动作 w 移动到下一单词的开头 b 移动到当前/上一单词的开头 e 移动到当前/下一单词的结尾 ge 移动到上一单词的结尾 W 移动到下一字符串的开头 B 移动到当前/上一字符串的开头 E 移动到当前/下一字符串的结尾 gE 移动到上一字符串的结尾 H 移动光标到屏幕上方 M 移动光标到屏幕中间 L 移动光标到屏幕底部 zt 当前行滚动到屏幕顶部 zz 当 ...
阅读全文 »

JNI开发

发表于 2021-06-11 | 更新于 2021-06-15 | 分类于 java
java代码由于可以反编译,因此对于一些敏感逻辑,最好使用jni开发。 将开发好的so文件打包进jar文件,运行时从jar加载 基于Clion开发jnilib1. 定义接口文件1234567891011package base.jni;/** * @author <a href=mailto:ktyi@iflytek.com>伊开堂</a> * @date 2021/6/11 */public class MyService { public native String hello(int times, String name);} 2. 生成头文件在编译出来的class文件的根目录(如:target/classes目录)执行如下目录,之后会在当前目录生成头文件 1javah base.jni.MyService 头文件base_jni_MyService.h内容如下 123456789101112131415161718192021/* DO NOT EDIT THIS FILE - it is machine generated * ...
阅读全文 »

jar命令

发表于 2021-06-11 | 分类于 java
jar命令.jar(Java Archive)是Java中的一种归档文件格式,只要安装了 JDK ,都可以使用 jar 命令将多个文件打包成一个 .jar 格式的 jar 包或者 war 包,就像 Linux 里的 tar 命令一样,以下为 jar 命令的参数: 1234567891011121314151617181920212223242526用法: jar {ctxui}[vfmn0PMe] [jar-file] [manifest-file] [entry-point] [-C dir] files ...选项: -c 创建新档案 -t 列出档案目录 -x 从档案中提取指定的 (或所有) 文件 -u 更新现有档案 -v 在标准输出中生成详细输出 -f 指定档案文件名 -m 包含指定清单文件中的清单信息 -n 创建新档案后执行 Pack200 规范化 -e 为捆绑到可执行 jar 文件的独立应用程序 指定应用程序入口点 -0 仅存储; 不使用任何 ZIP 压缩 ...
阅读全文 »

TCP/IP协议

发表于 2020-12-10 | 更新于 2021-08-06
IPv4 地址范围 私有地址 适用网络类型 A类 1.0.0.1 - 126.255.255.254 10.0.0.0 - 10.255.255.255 大型规模网络 B类 128.0.0.1 - 191.255.255.254 172.16.0.0 - 172.31.255.255.255 中型规模网络 C类 192.0.0.1 - 223.255.255.254 192.168.0.0 - 192.168.255.255 小型规模网络 D类 224.0.0.1 - 239.255.255.254 多路广播网络 E类 240.0.0.1 - 255.255.255.255 保留地址
阅读全文 »
12…5
Tonny Yi

Tonny Yi

Coding, Life, Zen

49 日志
42 分类
59 标签
GitHub E-Mail
Creative Commons
© 2021 Tonny Yi
由 Hexo 强力驱动
|
主题 — NexT.Mist