使用format_obproxy_digest_log工具分析obproxy网络层耗时SQL
之前写过一个博客,介绍 ob_tools包 来实施抓取 observer 层的 gv$ob_sql_audit 的SQL,还提供一些分析SQL来通过不同维度分析缓慢的业务SQL语句,免得和应用扯皮说数据库执行SQL慢。
但是分析出服务端业务SQL语句执行时间还不够,应用也有可能会和你扯皮说obproxy转发慢,也不是不能查obproxy的日志来佐证,就日志里面的内容很难看,我经常懒得去看很烦,所以搞了个 format_obproxy_digest_log 工具来看proxy的转发耗时。
这样一来proxy(网络层)、server(服务端层) 有了一套完整分析业务SQL语句请求耗时的解决方案,妈妈再也不怕我和开发扯皮了,狠狠地给我怼死开发。
******注意******:这个工具只能用来分析 obproxy obproxy_digest.log ,我是基于obproxy 433版本的obproxy_digest.log日志格式写的工具,4.X的obproxy应该能用,以后的版本不敢保证。
先介绍下obproxy obproxy_digest.log 日志
obproxy_digest.log 是 OceanBase 数据库代理(OBProxy)的审计日志文件,主要用于记录执行时间超过指定阈值的 SQL 请求以及错误响应的请求。
记录慢查询和错误请求:
- 慢查询:当 SQL 请求的执行时间超过
query_digest_time_threshold参数设置的阈值时,该请求会被记录到obproxy_digest.log中。默认情况下,该阈值为 100 毫秒(在主站环境中默认值为 2 毫秒)。 - 错误请求:所有执行错误的请求(包括 OBProxy 自身错误和 OBServer 返回的错误)也会被记录到该日志中。
- 慢查询:当 SQL 请求的执行时间超过
日志内容:
- 日志中包含了请求的详细信息,如日志打印时间、应用名、TraceId、RpcId、物理库信息(cluster:tenant:database)、数据库类型(OB 或 RDS)、逻辑表名、物理表名、SQL 命令、SQL 类型(CRUD)、执行结果(success 或 failed)、错误码、SQL 执行总耗时、预执行时间、链接建立时间、数据库执行时间等。
ob官网链接:obproxy_digest.log-V4.3.3-OceanBase 数据库代理文档-分布式数据库使用文档
看完上面介绍的同学就知道 obproxy_digest.log 日志里面的内容有多难看了,神烦,就直接开始介绍 format_obproxy_digest_log 工具。
文件下载:
通过网盘分享的文件:format_obproxy_digest_log
链接: https://pan.baidu.com/s/14QvqWyV83yn3xhO_PGqqOQ?pwd=j9j4 提取码: j9j4
--来自百度网盘超级会员v9的分享
如果分享地址失效了,可以邮箱联系我发给你:842107948@qq.com
下载到format_obproxy_digest_log 文件后上传到Linux服务器,先赋个权限:
chmod +x format_obproxy_digest_log

如果不知道这玩意整么用可以执行一下命令:
./format_obproxy_digest_log

使用方式很简单,最后演示下这个输出的日志:


最后想说一下,虽然我文章开头吐槽了一下OB,但是吐槽的是OB的日志格式内容不好看,用过OB的人都知道,无论是observer还是obproxy,那日志内容恶心得一批。
之前我玩其他数据库出了问题经常看日志,但是自从搞了OB以后,我养成了不看日志的习惯。
无可否认,在当前的国产信创数据库产品中,无论从架构设计、易用性、性能、兼容性,公司研发实力,还是配套生态等方面来看,就目前在我心目中来说,OceanBase 是当之无愧的国产第一数据库(发自内心的真心话!!!!)
诸多因素后面决定不在OB干了,还是希望公司的发展能越来越好,产品能越来越完善。
使用format_obproxy_digest_log工具分析obproxy网络层耗时SQL的更多相关文章
- SQL Server定时自动抓取耗时SQL并归档数据发邮件脚本分享
SQL Server定时自动抓取耗时SQL并归档数据发邮件脚本分享 第一步建库和建表 USE [master] GO CREATE DATABASE [MonitorElapsedHighSQL] G ...
- 使用MAT(Memory Analyzer Tool)工具分析dump文件--转
原文地址:http://gao-xianglong.iteye.com/blog/2173140?utm_source=tuicool&utm_medium=referral 前言 生产环境中 ...
- Oracle logmnr工具分析日志脚本
在oracle:对logmnr工具分析日志这个不陌生:对数据恢复应用场景经常用到:这里为了方便对归档日志进行分析: 当然网上有一个logmnr界面的工具:感觉很人性化:下载需要积分:为此写一个脚本. ...
- SQL Server定时自动抓取耗时SQL并归档数据脚本分享
原文:SQL Server定时自动抓取耗时SQL并归档数据脚本分享 SQL Server定时自动抓取耗时SQL并归档数据脚本分享 第一步建库 USE [master] GO CREATE DATABA ...
- 数据字典生成工具之旅(8):SQL查询表的约束默认值等信息
上一篇代码生成工具里面已经用到了读取表结构的SQL,这篇将更加详细的介绍SQL SERVER常用的几张系统表和视图! 阅读目录 系统表视图介绍 实际应用 本章总结 工具源代码下载 学习使用 回到顶部 ...
- 攻击者利用的Windows命令、横向渗透工具分析结果列表
横向渗透工具分析结果列表 https://jpcertcc.github.io/ToolAnalysisResultSheet/ 攻击者利用的Windows命令 https://blogs.jpcer ...
- 几种常见的JavaScript混淆和反混淆工具分析实战
几种常见的JavaScript混淆和反混淆工具分析实战 xiaix2016-03-05+8共1195751人围观 ,发现 5 个不明物体WEB安全 信息安全常被描述成一场军备竞赛,白帽与黑帽,渗透测试 ...
- android ARM 汇编学习—— 在 android 设备上编译c/cpp代码并用objdump/readelf等工具分析
学习 android 逆向分析过程中,需要学习 Arm 指令,不可避免要编写一些 test code 并分析其指令,这是这篇文档的背景. 在目前 android 提供的开发环境里,如果要编写 c / ...
- JVM之工具分析
JVM分析工具有很多; jdk自带工具:jconsole.jvisualvm 其他工具:jprofile ,yourkit等 不要在线上用,影响性能,在测试环境中使用. 一.jconsole ——jd ...
- 使用ANTS Performance Profiler&ANTS Memory Profiler工具分析IIS进程内存和CPU占用过高问题
一.前言 最近一段时间,网站经常出现两个问题: 1.内存占用率一点点增高,直到将服务器内存占满. 2.访问某个页面时,页面响应过慢,CPU居高不下. 初步判断内存一点点增多可能是因为有未释放的资源一直 ...
随机推荐
- SpringBoot之后端图形验证码实现
此验证码的实现没有用到太多的插件,话不多说直接上代码,大家拿过去就可以用. 1.验证码类 package com.youyou.login.util.validatecode; import lomb ...
- 谈一谈 Netty 的内存管理 —— 且看 Netty 如何实现 Java 版的 Jemalloc
本文基于 Netty 4.1.112.Final 版本进行讨论 在之前的Netty 系列中,笔者是以 4.1.56.Final 版本为基础和大家讨论的,那么从本文开始,笔者将用最新版本 4.1.112 ...
- DRF请求的生命周期
作为一个工作3年左右的码农,在各种框架的摸爬滚打中,我也接触了不少前端后端的技术栈,其中DRF算是我后端日常工作中的用得最多的框架.今天就简单聊聊DRF请求的生命周期.由于篇幅原因,我在此篇文章中只是 ...
- .NET周刊【10月第4期 2024-10-27】
国内文章 C#实现信创国产Linux麦克风摄像头推流(源码,银河麒麟.统信UOS) https://www.cnblogs.com/shawshank/p/18494362 随着国际形势变化,软件信创 ...
- .NET 实现的零部件离散型 MES+WMS 系统
前言 随着制造业的不断发展,企业对于生产效率和管理水平的要求越来越高. EasyMES 是一款基于 .NET 6 开发的零部件离散型 MES(Manufacturing Execution Syste ...
- Antlr4 语法解析器(下)
Antlr4 的两种AST遍历方式:Visitor方式 和 Listener方式. Antlr4规则文法: 注释:和Java的注释完全一致,也可参考C的注释,只是增加了JavaDoc类型的注释: 标志 ...
- 鸿蒙NEXT开发案例:转盘
[1]引言(完整代码在最后面) 在鸿蒙NEXT系统中,开发一个有趣且实用的转盘应用不仅可以提升用户体验,还能展示鸿蒙系统的强大功能.本文将详细介绍如何使用鸿蒙NEXT系统开发一个转盘应用,涵盖从组件定 ...
- Maven打包项目的精准指定——流程管理
作用 Maven不仅可以进行依赖管理的自动化,还可以自动化实现编译,打包,发布,等,也被成为构建流程 生命周期(lifecycle) 构成 Maven生命周期本身可以看做一个集合,在这个集合中包含了一 ...
- pycharm配置默认镜像地址
使用pycharm编写接口自动化测试时,需要下载很多安装包,不指定镜像时下载可能很慢,可以设置默认镜像 命令:pip config set global.index-url 镜像地址 查看已设置的默认 ...
- 内网渗透之frp+proxifier实现socks5反向代理
目录 前言 环境搭建 frp反向代理 proxifier代理工具 前言 内网穿透,代理技术的联系与区别? 我个人感觉在内网渗透的时候它们之间的界限很模糊,其目的都是为了突破内网访问的限制.内网穿透允许 ...