返回顶部
首页 > 资讯 > 精选 >UAVStack的慢SQL数据库监控功能及其实现是怎样的
  • 182
分享到

UAVStack的慢SQL数据库监控功能及其实现是怎样的

2023-06-04 23:06:33 182人浏览 薄情痞子
摘要

本篇文章给大家分享的是有关UAVStack的慢sql数据库监控功能及其实现是怎样的,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。UAVStack是一个全维监控与应用运维平台。U

本篇文章给大家分享的是有关UAVStack的慢sql数据库监控功能及其实现是怎样的,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

UAVStack是一个全维监控与应用运维平台。UAV.Monitor具备监控功能,包含基础监控、应用/服务性能监控、日志监控、业务监控等。在应用监控中,UAV可以根据应用实例画像;其中应用实例组件可以对日志、服务、客户端等进行画像;基于客户端的画像又分为HttpdubboMQkafka、JDBC、RedisMongoDB等等。

一、背景

作为一个工作多年的程序员或运维人员,相信你一定遇到过以下情况:

场景一:系统出现异常情况,运维人员没能在第一时间发现,反而是业务方在使用过程中反馈系统崩溃、页面点不开。查看系统日志,发现一直在报连接数据库异常;

场景二:新功能上线稳定运行一段时间后,用户反馈页面响应越来越慢,打开一个页面要等好久。排查问题,发现是一个慢SQL影响了整个功能的体验。

为此,UAVStack开发了数据库监控功能。最初,数据库监控功能只是对数据源、数据库连接池进行了指标采集,通过客户端画像可以查看实时的数据库连接池信息以及操作计数。最近UAVStack又解了一项新功能——慢SQL监控,使数据库监控功能更加完善。

今天小编就向大家介绍一下数据库监控的具体实现。文章中出现的以下关键字全部用简称代替:

· 中间件增强框架:英文MonitorFramework,简称MOF · 健康管理服务:英文HealthManager,简称HM · 监控代理程序:英文MonitorAgent,简称MA

二、关键技术&UAV自研框架

· MOF Agent注入机制:MOF Agent的注入机制以Java agent以及Javaassit技术作为基础支撑。Java agent负责拦截和转换字节码流,转换过程中使用Javaassist进行解析和修改,在应用服务器生命周期的关键位置注入切点,为MOF框架初始化、应用的画像信息和实时监控数据信息捕获提供基础。

· InterceptFramework框架:在应用启动的特定生命周期内改写字节码,植入特定的逻辑处理代码,即画像数据采集,采集的数据包含服务画像以及客户端画像;客户端画像包含Http、Dubbo、MQ、Kafka、JDBC、RedismongoDB等常见的开源组件,系统中调用的第三方服务都会被列为是客户端的对象,比如系统中调用了第三方系统的接口都属于客户端的范畴。

· CaptureFramework框架:通过InterceptFramework框架在特定的生命周期改写字节码植入特定的逻辑代码,在植入的逻辑代码中可以通过CaptureFramework画像的Monitor捕获体系的能力采集数据以及数据存储。具体实现为采用doCapture来实现在特定的捕获点执行抓取数据行为,采用doPreStore来实现在存储数据结构之前的一些捕获动作,对抓取的数据进行特殊数据的处理,获取到处理完成后的数据再通过UAVServer调用具体的Supporter,最后实现数据落地。

三、组成部分

慢SQL监控的实现分为四个组成部分:

· 慢SQL的动态启停:慢SQL的监控启/停依赖于MOF的Global Filter机制。在应用初始化时,UAV对应用的Filter进行了改写,提供了向MOF下发指令的接口。只要调用接口传入规定的参数便可以实现对慢SQL监控的动态启停。UAV系统中并不存在其它服务直接调用MOF的操作,都是通过MA来完成的。大家可以把MA理解为服务请求方与MOF之间的媒介。

· 慢SQL数据采集:依赖InterceptFramework框架在特定的生命周期改写字节码植入特定逻辑,同时采用MOF的CaptureFramework框架进行数据抓取并生成抓取结果。MA会对生成结果的文件进行定时采集并封装成固定的数据结构发送至MQ。

· 数据存储:在HM中创建独立的feature进行数据处理,消费MA推送至MQ中的数据,完成数据清洗再存储至ES。由于数据采集的结果进行了特殊的约定,从MQ拿到的数据并不能直接转换成相应的结果,需要进行相应的解析处理才能进行存储(由于采集的数据中字段较多、可能含有特殊的字符会影响对数据的解析,在生成数据结果时有规则约束才能实现数据的正确解析)。数据库监控的feature还提供了查询、统计慢SQL操作的相关接口。

· 页面展示:操作页面可自主启停数据库监控,设置慢SQL的时间阈值。启停以及时间阈值的设置依赖于MA向MOF发送指令。页面展示的SQL统计、追踪等信息则通过HM的接口获取。

四、功能展示

数据库监控目前已实现的功能有SQL分类统计、数据库连接池监控、慢SQL耗时分布统计、慢SQL统计、慢SQL追踪以及调用链/日志关联功能。

SQL分类统计:

· 数据来源:OpenTSDB(通过画像采集指标)

· 针对插入、删除、更新、查询、批量操作进行分类统计

· 根据时间分布展示数据库的访问情况,根据时间分布展示数据库的访问情况,展示所选时间段的总访问计数(累计值)

· 可以自定义时间条件查询历史数据

UAVStack的慢SQL数据库监控功能及其实现是怎样的

数据库连接池监控:

· 数据来源:OpenTSDB(通过画像采集指标)

· 可以查看连接池总连接数、活动连接数、空闲连接数的变化曲线

UAVStack的慢SQL数据库监控功能及其实现是怎样的

慢SQL耗时分布统计:

· 数据来源:ES

· 慢SQL统计可根据分类进行展示统计

· 针对慢SQL的耗时分布统计,最多查询100条

· 根据时间分布展示数据库慢SQL的访问情况,展示当前时间点的慢SQL访问时间、SQL、耗时

· 可以根据设置查询历史数据

UAVStack的慢SQL数据库监控功能及其实现是怎样的

慢SQL统计:

· 数据来源:ES

· 针对所有类型的SQL

· 根据时间分布展示数据库某时间段的慢SQL统计

· 可以根据设置查询历史数据

UAVStack的慢SQL数据库监控功能及其实现是怎样的

慢SQL追踪:

· 数据来源:ES

· 查询条件为:关键字、是否慢SQL追踪、时间范围

· 根据搜索条件查询SQL追踪列表,列表展示内容为:SQL语句、总执行次数、执行总时间、平均执行时间、操作-可查看详情

UAVStack的慢SQL数据库监控功能及其实现是怎样的

慢SQL追踪-详情查看:

· 数据来源:ES

· 慢SQL详情:点击某一条慢SQL统计可查看详情:包含开始执行时间、执行时长、入参、执行结果、影响条数

UAVStack的慢SQL数据库监控功能及其实现是怎样的

慢SQL追踪-调用链关联:

· 应用监控中需开启轻度调用链

· 点击某一行详细的执行时间,可以跳转至调用链页面,查看调用链的详细内容(相关的调用链高亮显示)

UAVStack的慢SQL数据库监控功能及其实现是怎样的

慢SQL追踪-日志关联:

· 应用监控中需开启日志归集

· 点击某一行详细的调用链内容的日志关联,可查看相应的日志信息,相关的日志行数高亮显示

UAVStack的慢SQL数据库监控功能及其实现是怎样的

五、总结

数据库监控是不容忽视的,好的数据库监控可以帮助优化系统并进行实时预警。通过文中介绍的数据库连接池监控,运维人员可以随时关注数据库连接池的状态,有效防止系统出现连接池活动连接数占满无法连接数据库的情况;而慢SQL监控功能可以动态展示一个系统的SQL情况,帮助优化SQL语句,让系统更稳定。

以上就是UAVStack的慢SQL数据库监控功能及其实现是怎样的,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注编程网精选频道。

--结束END--

本文标题: UAVStack的慢SQL数据库监控功能及其实现是怎样的

本文链接: https://lsjlt.com/news/240389.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • UAVStack的慢SQL数据库监控功能及其实现是怎样的
    本篇文章给大家分享的是有关UAVStack的慢SQL数据库监控功能及其实现是怎样的,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。UAVStack是一个全维监控与应用运维平台。U...
    99+
    2023-06-04
  • NoSQL数据库概览及其与SQL语法的比较是怎样的
    NoSQL数据库概览及其与SQL语法的比较是怎样的,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。HBase是一个高可靠性、高性...
    99+
    2024-04-02
  • DM7数据库及其表的备份还原是怎样的
    DM7数据库及其表的备份还原是怎样的,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。 DM7 联机...
    99+
    2024-04-02
  • 数据库的故障及其恢复策略是怎样的
    本篇文章为大家展示了数据库的故障及其恢复策略是怎样的,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。在数据库运行过程中,可能会出现各种各样的故障,这些故障可分为以下三...
    99+
    2024-04-02
  • 重写慢日志解析程序,实现打印慢SQL信息及其所属数据库
    分组自研的审计平台最近推出慢SQL优化的功能,topN慢SQL可以通过mysqldumpslow拿到,但由于mysqldumpslow输出的信息不包含数据库,这让程序后续的自动优化变得有些棘手。在观察了My...
    99+
    2024-04-02
  • SQL索引以及数据库优化是怎样的
    这篇文章给大家介绍SQL索引以及数据库优化是怎样的,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。(一)深入浅出理解索引结构实际上,您可以把索引理解为一种特殊的目录。微软的SQL SER...
    99+
    2024-04-02
  • MySQL.proc表的功能及其在数据库中的角色
    MySQL.proc表的功能及其在数据库中的角色 MySQL是一个流行的关系型数据库管理系统,它提供了丰富的功能和工具来管理和操作数据库。其中,MySQL.proc表是一个存储过程的元...
    99+
    2024-04-02
  • 通过Python实现对SQL Server 数据文件大小的监控告警功能
    1.需求背景 系统程序突然报错,报错信息如下: The transaction log for database '@dbname' is full. To find out wh...
    99+
    2024-04-02
  • Python如何实现对SQL Server 数据文件大小的监控告警功能
    这篇文章将为大家详细讲解有关Python如何实现对SQL Server 数据文件大小的监控告警功能,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。python有哪些常用库python常用的库:1.reque...
    99+
    2023-06-14
  • 排序算法及其C实现是怎样的
    这期内容当中小编将会给大家带来有关排序算法及其C实现是怎样的,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。排序算法(Sorting Algorithm)是计算机算法的一个组成部分。排序的目标是将一组数据 ...
    99+
    2023-06-04
  • 如何在MongoDB中实现数据的实时监控和报警功能
    如何在MongoDB中实现数据的实时监控和报警功能摘要:在大数据时代,数据的安全性和可靠性成为了企业重要的关注点。为了保护企业的数据,并及时发现数据异常情况,实时监控和报警功能变得至关重要。本文将介绍如何在MongoDB数据库中实现数据的实...
    99+
    2023-10-22
    MongoDB 实时监控 报警功能
  • 如何在Storm中实现数据流的监控和警报功能
    在Storm中可以通过以下几种方式实现数据流的监控和警报功能: 使用Storm提供的Metrics系统来收集和监控数据流的指标。...
    99+
    2024-03-13
    Storm
  • kettle的文件批量入库功能是怎样实现的
    kettle的文件批量入库功能是怎样实现的,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。kettle 除了作为 ETL 工具外,还有很多数据处理方面的实用功能,下面介绍几个实用...
    99+
    2023-06-03
  • 怎么监控和调优Db2数据库的性能
    监控和调优Db2数据库的性能是非常重要的,可以通过以下方法进行: 使用Db2的监控工具:Db2提供了一系列的监控工具,如Db2 ...
    99+
    2024-03-07
    Db2
  • 阿里云数据库的SQL性能监控安全、可靠、高效
    随着大数据时代的到来,数据量的激增和业务需求的增长使得数据库管理成为了企业面临的重要挑战。在这种情况下,如何确保数据库的性能监控、安全性和可靠性成为了企业关注的焦点。本文将详细探讨阿里云数据库的SQL性能监控、安全性和可靠性,以帮助企业更好...
    99+
    2023-11-20
    高效 阿里 可靠
  • PHP实现数据库容器化监控的方法
    随着容器化技术在云计算领域的广泛应用,大量的应用程序也开始在容器中运行,其中数据库也不例外。但是容器的动态性和快速的扩展能力,也给数据库的监控和管理带来一些困难。为了解决这个问题,本文将介绍一种基于PHP语言实现数据库容器化监控的方法,这种...
    99+
    2023-05-17
    监控 PHP 数据库容器化
  • Prometheus系统的监控数据展示和报告功能如何实现
    Prometheus系统的监控数据展示和报告功能可以通过以下几种方式实现: Grafana:Grafana是一款开源的数据可视化...
    99+
    2024-03-04
    Prometheus
  • 阿里云数据库操作记录管理实现全面的数据库性能监控
    随着企业信息化程度的提高,数据库已经成为企业核心竞争力的重要组成部分。阿里云数据库操作记录,是一种重要的数据库监控和管理工具,可以帮助企业全面监控数据库性能,及时发现并解决问题,提高数据库的稳定性和可靠性。本文将详细介绍阿里云数据库操作记录...
    99+
    2023-12-09
    数据库 阿里 性能
  • java怎么实现数据库的查询功能
    要实现Java中数据库的查询功能,需要使用JDBC(Java Database Connectivity)来连接数据库并执行SQL查...
    99+
    2023-09-20
    java 数据库
  • 数据库事务控制语句是怎样的
    这篇文章将为大家详细讲解有关数据库事务控制语句是怎样的,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。在MYSQL命令行的默认设置下,事务都是自动提交的,即执...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作