之前写过一个博客,介绍 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. SpringBoot之后端图形验证码实现

    此验证码的实现没有用到太多的插件,话不多说直接上代码,大家拿过去就可以用. 1.验证码类 package com.youyou.login.util.validatecode; import lomb ...

  2. 谈一谈 Netty 的内存管理 —— 且看 Netty 如何实现 Java 版的 Jemalloc

    本文基于 Netty 4.1.112.Final 版本进行讨论 在之前的Netty 系列中,笔者是以 4.1.56.Final 版本为基础和大家讨论的,那么从本文开始,笔者将用最新版本 4.1.112 ...

  3. DRF请求的生命周期

    作为一个工作3年左右的码农,在各种框架的摸爬滚打中,我也接触了不少前端后端的技术栈,其中DRF算是我后端日常工作中的用得最多的框架.今天就简单聊聊DRF请求的生命周期.由于篇幅原因,我在此篇文章中只是 ...

  4. .NET周刊【10月第4期 2024-10-27】

    国内文章 C#实现信创国产Linux麦克风摄像头推流(源码,银河麒麟.统信UOS) https://www.cnblogs.com/shawshank/p/18494362 随着国际形势变化,软件信创 ...

  5. .NET 实现的零部件离散型 MES+WMS 系统

    前言 随着制造业的不断发展,企业对于生产效率和管理水平的要求越来越高. EasyMES 是一款基于 .NET 6 开发的零部件离散型 MES(Manufacturing Execution Syste ...

  6. Antlr4 语法解析器(下)

    Antlr4 的两种AST遍历方式:Visitor方式 和 Listener方式. Antlr4规则文法: 注释:和Java的注释完全一致,也可参考C的注释,只是增加了JavaDoc类型的注释: 标志 ...

  7. 鸿蒙NEXT开发案例:转盘

    [1]引言(完整代码在最后面) 在鸿蒙NEXT系统中,开发一个有趣且实用的转盘应用不仅可以提升用户体验,还能展示鸿蒙系统的强大功能.本文将详细介绍如何使用鸿蒙NEXT系统开发一个转盘应用,涵盖从组件定 ...

  8. Maven打包项目的精准指定——流程管理

    作用 Maven不仅可以进行依赖管理的自动化,还可以自动化实现编译,打包,发布,等,也被成为构建流程 生命周期(lifecycle) 构成 Maven生命周期本身可以看做一个集合,在这个集合中包含了一 ...

  9. pycharm配置默认镜像地址

    使用pycharm编写接口自动化测试时,需要下载很多安装包,不指定镜像时下载可能很慢,可以设置默认镜像 命令:pip config set global.index-url 镜像地址 查看已设置的默认 ...

  10. 内网渗透之frp+proxifier实现socks5反向代理

    目录 前言 环境搭建 frp反向代理 proxifier代理工具 前言 内网穿透,代理技术的联系与区别? 我个人感觉在内网渗透的时候它们之间的界限很模糊,其目的都是为了突破内网访问的限制.内网穿透允许 ...