之前写过一个博客,介绍 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 请求以及错误响应的请求。

  1. 记录慢查询和错误请求:

    • 慢查询:当 SQL 请求的执行时间超过 query_digest_time_threshold 参数设置的阈值时,该请求会被记录到 obproxy_digest.log 中。默认情况下,该阈值为 100 毫秒(在主站环境中默认值为 2 毫秒)。
    • 错误请求:所有执行错误的请求(包括 OBProxy 自身错误和 OBServer 返回的错误)也会被记录到该日志中。
  2. 日志内容:

    • 日志中包含了请求的详细信息,如日志打印时间、应用名、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的更多相关文章

  1. SQL Server定时自动抓取耗时SQL并归档数据发邮件脚本分享

    SQL Server定时自动抓取耗时SQL并归档数据发邮件脚本分享 第一步建库和建表 USE [master] GO CREATE DATABASE [MonitorElapsedHighSQL] G ...

  2. 使用MAT(Memory Analyzer Tool)工具分析dump文件--转

    原文地址:http://gao-xianglong.iteye.com/blog/2173140?utm_source=tuicool&utm_medium=referral 前言 生产环境中 ...

  3. Oracle logmnr工具分析日志脚本

    在oracle:对logmnr工具分析日志这个不陌生:对数据恢复应用场景经常用到:这里为了方便对归档日志进行分析: 当然网上有一个logmnr界面的工具:感觉很人性化:下载需要积分:为此写一个脚本. ...

  4. SQL Server定时自动抓取耗时SQL并归档数据脚本分享

    原文:SQL Server定时自动抓取耗时SQL并归档数据脚本分享 SQL Server定时自动抓取耗时SQL并归档数据脚本分享 第一步建库 USE [master] GO CREATE DATABA ...

  5. 数据字典生成工具之旅(8):SQL查询表的约束默认值等信息

    上一篇代码生成工具里面已经用到了读取表结构的SQL,这篇将更加详细的介绍SQL SERVER常用的几张系统表和视图! 阅读目录 系统表视图介绍 实际应用 本章总结 工具源代码下载 学习使用 回到顶部 ...

  6. 攻击者利用的Windows命令、横向渗透工具分析结果列表

    横向渗透工具分析结果列表 https://jpcertcc.github.io/ToolAnalysisResultSheet/ 攻击者利用的Windows命令 https://blogs.jpcer ...

  7. 几种常见的JavaScript混淆和反混淆工具分析实战

    几种常见的JavaScript混淆和反混淆工具分析实战 xiaix2016-03-05+8共1195751人围观 ,发现 5 个不明物体WEB安全 信息安全常被描述成一场军备竞赛,白帽与黑帽,渗透测试 ...

  8. android ARM 汇编学习—— 在 android 设备上编译c/cpp代码并用objdump/readelf等工具分析

    学习 android 逆向分析过程中,需要学习 Arm 指令,不可避免要编写一些 test code 并分析其指令,这是这篇文档的背景. 在目前 android 提供的开发环境里,如果要编写 c / ...

  9. JVM之工具分析

    JVM分析工具有很多; jdk自带工具:jconsole.jvisualvm 其他工具:jprofile ,yourkit等 不要在线上用,影响性能,在测试环境中使用. 一.jconsole ——jd ...

  10. 使用ANTS Performance Profiler&ANTS Memory Profiler工具分析IIS进程内存和CPU占用过高问题

    一.前言 最近一段时间,网站经常出现两个问题: 1.内存占用率一点点增高,直到将服务器内存占满. 2.访问某个页面时,页面响应过慢,CPU居高不下. 初步判断内存一点点增多可能是因为有未释放的资源一直 ...

随机推荐

  1. EAFP 与 LBYL 风格

    EAFP 与 LBYL 是两种"防御性处理机制",相信你一定接触过,只是可能没有深入思考过这个问题. 输入两个数,要输出相除后的结果: a, b = map(int, input( ...

  2. Nuxt.js 应用中的 builder:generateApp 事件钩子详解

    title: Nuxt.js 应用中的 builder:generateApp 事件钩子详解 date: 2024/10/23 updated: 2024/10/23 author: cmdragon ...

  3. python处理大量数据excel表格中间格式神器pickle.pkl文件操作说明

    读取写入千万级别的excel文件费时费力,调试起来比较慢,面对这个问题,第一步可以先无脑全部转换成pkl文件,这样几乎和内存操作一样的速度. 例如: t=pd.read_excel("12月 ...

  4. Edge(Chrome)浏览器插件WordSaver的演示,可以查英语生词并记录生词及所在句子,导出为anki格式

    Edge(Chrome)浏览器插件WordSaver的演示,可以查英语生词并记录生词及所在句子,导出为anki格式 Bilibili哔哩哔哩视频

  5. etcd错误:Failed to defragment etcd member[127.0.0.1:2379] (context deadline exceeded)

    etcd 版本 # etcdctl version etcdctl version: 3.5.1 API version: 3.5 问题 在 执行 etcdctl --endpoints=http:/ ...

  6. importlib 用法

    首先看一下importlib.import_module(name, package=None)函数的参数 函数调用存在两种方式: 1.绝对导入,name为完整路径str,package为None. ...

  7. common-dbutils的使用

    1.      介绍 commons-dbutils是Apache组织提供的一个开源 JDBC工具类库,能让我们更简单的使用JDBC.它是一个非常小的类包,花几分钟的时间就能掌握它的使用. 2.    ...

  8. java中并发包简要分析01

    参考<分布式java应用>一书,简单过一遍并发包(java.util.concurrent) ConcurrentHashMap ConcurrentHashMap是线程安全的HashMa ...

  9. Java中的对象池模式

    Java中的对象池模式 Java对象的生命周期分析: Java对象的生命周期大致包括三个阶段: 对象的创建,对象的使用, 对象的清除. 因此,对象的生命周期长度可用如下的表达式表示: T = T1 + ...

  10. 六、FreeRTOS学习笔记-任务挂起和恢复

    任务的挂起与恢复的API函数介绍 API函数 描述 vTaskSuspend() 挂起任务 vTaskResume() 恢复被挂起的任务 xTaskResumeFromISR() 在中断中恢复被挂起的 ...