AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


AutoTracing - 支持采集 SQL 预编译参数值、登录用户名等信息
发布日期:2024-06-17 12:16:33 浏览次数: 1675



AutoTracing 在 v6.5 中对 SQL 命令的解析进行了增强,主要包括以下两点:

  1. 支持采集 SQL 预编译语句的参数值
  2. 支持采集 MySQL 登录用户名和使用的数据库名

这些能力的增强,能够让 DeepFlow 的下游消费者获取到更丰富的数据,更好的解决流量回放数据库审计等方面的痛点。

01

SQL 预编译参数

在某运营商客户中,测试团队希望使用 DeepFlow 的 SQL 调用日志用于回放测试。以往该团队使用 APM 来实现此目的,但受限于插桩的困难,测试覆盖度非常低。DeepFlow 使用 eBPF 零侵扰采集的 SQL 调用日志能够非常好的解决这个痛点。

然而,该客户的业务中绝大多数使用了预编译 SQL 命令模式。在以往的版本中,DeepFlow 仅会采集类似下面这样含有 ? 参数的 COM_STMT_PREPARE 预编译命令:

SELECT * FROM `resource_event` WHERE domain = ? AND sub_domain = ?

在 v6.5 中,DeepFlow 支持了采集与预编译命令对应的 COM_STMT_EXECUTE 命令中的参数值。例如,上面的预编译语句中有 2 个参数,他们的值会使用 , 拼接后赋值给 request_resource

476db5ae-a5c6-5b0b-84ce-b29dcf3ee76d , 1

更详细的说明,请参考 DeepFlow 文档[1]

注意:当开启 MySQL 脱敏时,COM_STMT_EXECUTE 中的参数值将不会被解析和传输。

02

登录用户名、数据库名

感谢 chluknight@ChinaMobileFR #6798[2]。在中国移动,DeepFlow 的零侵扰调用日志为 SQL 审计系统提供数据。安全团队希望能在此前已有的能力基础上支持数据库登录命令、设置当前数据库命令的采集能力,以使得安全审计能力更为完善。

当客户端发送如下第一行所示的 MySQL 登录命令时,deepflow-agent 会采集并解析,并将类似如下第二行的内容赋值到调用日志的 request_resource 字段中:

Login Request user=cmp_operation
Login username: cmp_operation

当客户端发送如下切换数据库的命令时,deepflow-agent 也会采集并将整体语句赋值到调用日志的 request_resource 字段中:

use `cmp_operation`

新增的这两个能力对数据库审计场景意义重大。

03

什么是 DeepFlow

DeepFlow 是云杉网络开发的一款可观测性产品,旨在为复杂的云原生AI 应用提供深度可观测性。DeepFlow 基于 eBPF 实现了应用性能指标、分布式追踪、持续性能剖析等观测信号的零侵扰Zero Code)采集,并结合智能标签SmartEncoding)技术实现了所有观测信号的全栈Full Stack)关联和高效存取。使用 DeepFlow,可以让云原生及 AI 应用自动具有深度可观测性,从而消除开发者不断插桩的沉重负担,并为 DevOps/SRE 团队提供从代码到基础设施的监控及诊断能力。


53AI,企业落地应用大模型首选服务商

产品:大模型应用平台+智能体定制开发+落地咨询服务

承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

与创始人交个朋友

回到顶部

 
扫码咨询