如何从零开发一款 OneAgent

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
应用实时监控服务-应用监控,每月50GB免费额度
可观测可视化 Grafana 版,10个用户账号 1个月
简介: Databuff自研轻量级OneAgent,专为智能可观测时代打造。具备低资源占用、自动服务发现、SQL查询支持与采集即治理等特性,兼容多语言插件扩展,助力AI-Agent集成与全栈监控统一管理。

原文链接:https://databuff.com/resourceDetail/blog105

在运维和可观测行业中,已经有不少优秀的终端数据采集器,其中包括不少的开源项目,如Datadog Agent, Elastic Beats,Telegraf等等,它们在一些特定的需求场景中可以很出色的工作。但是,对于一家商业化的可观测工具公司来说,这些数据采集器并没有完全满足当前数据智能对采集端的要求,尤其是现在GenAI、AgenticAI的时代,对数据工具/技能的要求会越来越高。

因此,笔者所在公司耗费了很长时间、很多功夫,从零开始自研一款属于自己的商业化OneAgent,作为可观测智能的数据基石。并且从规划设计之初,我们就着重关注其轻量、易用、可扩展的关键属性。经过近几年的商用打磨,OneAgent已经成熟稳定地运行在众多客户的生产环境。

01

OneAgent 的核心设计理念

● 轻量化:降低资源占用,实现高效采集

基础数据采集时(CPU、内存、磁盘、进程、容器、网络)的资源占用情况: 内存≈50 MB, CPU < 1 % 。

● 易用性:简化操作,自动化服务识别与配置

一键安装、服务自动识别、自动打包、自动关联,最终达到 “无脑安装” 的程序。

● 可拓展性:插件机制助力自定义采集扩展

采用插件机制支持自定义的采集,插件可以使用任何开发语言实现,包括shell脚本、python等。此外,插件可以随时启用和停止,不需要重新启动OneAgent (这同时也体现了易用性)

02

OneAgent 的亮点功能

除了以上几点,OneAgent还有以下几个亮点功能:

● 除了主动采集,还可以接收其它组件推送的数据,如SNMP trap, statsd指标

支持普通用户安装和采集,非Root权限也可以安装

支持使用SQL语法获取实时采集的数据(类似osquery),可以很容易当作目前火热的AI-Agent的Tools使用

● 采集的同时完成数据治理,实现采集即治理,无感知情境富化

● 可视化统一管理,后端Web界面统一管理配置

下图是OneAgent 的数据采集概览图,涵盖了目前常见的几种采集方式。

微信图片_2025-09-17_142403_084.png

图:OneAgent架构图

接下来,详细说明一下,我们是如何实现以上的一些主要特性。

03

如何实现OneAgent的主要特性

1. 实现 OneAgent 轻量化:减少资源占用的技术策略

轻量的重要指标就是在采集期间尽量少的占用资源,尤其是CPU资源,而采集器经常是通过遍历的方式来获取系统的相关信息。比如,在采集进程相关信息时,采集器会递归访问/proc目录,读取每个进程目录下的信息文件。这样一次采集往往会涉及成百上千个内存文件的打开、读取和关闭操作,消耗的CPU资源不容忽视,尤其当系统中的进程比较多时,甚至会影响业务的正常运行。

OneAgent在采集进程信息时,首先会对进程进行分类,对于与业务无关的进程,只需要采集基本的信息即可;而对于业务进程,需要采集更多的详细信息,比如网络连接统计信息。此外,OneAgent不会每次采集都遍历系统目录,只需要定期遍历一次系统目录(比如一小时一次),期间通过Netlink的NETLINK_CONNECTOR子系统可以实时侦听进程的创建和结束事件,从而每次采集只需要关注这些增量信息即可,极大的减少了对系统目录的访问量。

2. 提高易用性:从安装到采集、治理的全自动化

采集器的易用性指不需要过多的人为配置和操作,就能采集到用户和系统需要的数据。OneAgent通过服务自动发现、自动配置、自动关联和打标来减少人工干预并提高准确性。

OneAgent采集进程信息时,根据采集到的信息可以判断是否为需要关注的服务,如采集到进程名为mysqld,说明系统有mysql服务正在运行,同时可以获取mysql侦听的地址和端口,这样就可以自动生成mysql采集插件的配置信息,如果系统启用了该插件,就可以自动采集mysql服务的指标信息。同理,当OneAgent部署在K8S环境中时,OneAgent会根据采集到的Pod信息,自动推断etcd, ApiServer, ControlManager, KubeProxy等组件的连接信息并自动生成配置数据。

此外,OneAgent还会跟踪环境的网络流量并支持常见协议的解析,比如当前主机访问远程的一个Mysql服务器,OneAgent通过网络流量可以识别出Mysql协议,发现远端的Mysql服务器相关信息,自动生成配置数据。同样,如果这时的Mysql采集插件已经启用,就可以自动采集指标信息。

除了自动发现环境中的服务和组件,OneAgent还会自动关联属性,比如采集进程信息时,如果还启用了容器采集或是运行在K8S环境中,那么进程信息中还会关联上容器和Pod的信息。这样,当我们在定位问题时,可以很容易从进程上探至容器和Pod。又比如,当OneAgent从网络流量中提取出一条TCP连接时,它还会根据TCP连接的五元组信息,关联至与该连接相关的进程,因此可以很轻易地将一条传输延迟很高的网络连接定位至某个进程。

3. 扩展性:利用插件机制赋能自定义采集

任何一个采集器都不可能预见到所有需要采集的组件,因此允许用户用自己擅长的方式去自定义采集方式对一个采集器来说是也一项至关重要的特性。OneAgent 通过插件机制实现采集扩展性,而插件的实现方式并不局限于某种开发语言,只要插件的输出格式满足OneAgent要求的规范即可。

我们以shell脚本插件举例说明,如何写一个符合规范的自定义插件:

#!/bin/bash
echo "# system.user.LOGIN_TIME:GAUGE 
echo “# system.user.LAST_LOGIN:GAUGE"
echo "# system.mem.usage:COUNTER|desc text"
echo "123{user=abc, age=18}, 45.33, 2342{email=abc.com}"

可见,这个规范并不复杂,主要包括以下几点:

  1. 插件启动时,首先要输出采集指标的描述信息,包括指标名,指标类型

​ √ 输出行以 # 开头

​ √ 指标描述信息的格式如下:指标名:指标类型|指标描述信息

√指标类型可取值:GAUGE, COUNTER, RATE, MONITONIC, HISTORGRAM

  1. 按行输出采集的指标,指标内容与Promepheus格式一致,多个指标数据以","分隔,每个指标数据包含两部分:数值和标签,标签部分包含在{}。

    通过以上内容,我们大致了解了Databuff-OneAgent的主要工作机制及设计原则。做过数据分析工作的朋友可能深有体会,高质量的数据不仅能大大减少数据预处理的时间,而且也决定着各种机器学习/AI分析的效果。因此,一款优秀的数据采集器值得各行各业的关注。

相关文章
|
2月前
|
存储 安全 Java
《数据之美》:Java集合框架全景解析
Java集合框架是数据管理的核心工具,涵盖List、Set、Map等体系,提供丰富接口与实现类,支持高效的数据操作与算法处理。
|
6月前
|
机器学习/深度学习 人工智能 算法
如何像 Manus 交付业务需求-- OneAgent + MCPs 范式
本文探讨了从单一LLM调用到复杂Agent系统的发展历程,重点介绍了OneAgent + MCPs范式。该范式通过结合强大的基础Agent和领域特定的MCP(Microservice Capability Provider)来解决复杂业务需求。文章分析了其在保险科技领域的实践,展示了如何通过Loop框架执行任务,并讨论了当前面临的挑战如to-do质量依赖、状态管理和知识整合深度等问题。同时,提出了包括标准化交互生态、提升系统鲁棒性、优化MCP调用管理及应用强化学习等发展方向。最终展望了这一范式在更多行业落地的潜力,强调了快速搭建领域Agent的重要性,而非追求全知全能的GodAgent模式。
如何像 Manus 交付业务需求-- OneAgent + MCPs 范式
|
2月前
|
SQL 运维 Kubernetes
可观测领域的王者Dynatrace的故障定位体验
本文对比了可观测性领域两大工具Databuff与Dynatrace的故障定位能力。基于17服务的微服务环境测试显示,Databuff在10个案例中准确率达90%,定位更精准、信息更全面;Dynatrace准确率60%,部分场景存在误判或信息缺失,整体表现逊色。
|
2月前
|
存储 人工智能 缓存
运维智能体(SRE Agent)技术分级能力要求
本标准规范了运维智能体在场景应用、协同能力、能力建设及底座构建方面的技术要求,适用于公共与私有环境下的服务与产品。依据AI技术发展,定义了从初始级到优秀级的三级能力框架,涵盖感知、控制、行动等核心能力,推动运维智能化升级。
运维智能体(SRE Agent)技术分级能力要求
|
3月前
|
人工智能 监控 安全
Gartner报告:可观测性平台魔力象限
本文由Gregg Siegfried等作者撰写,阐述了可观测性平台如何通过遥测数据采集、AI分析与成本优化,助力企业提升系统健康度与业务韧性,并详解市场定义、核心功能及主流供应商优劣势。
Gartner报告:可观测性平台魔力象限
|
2月前
|
人工智能 运维 关系型数据库
惊喜!接入 skywalking 也能直接故障定位了
Databuff推出商业化可观测平台,一键接入SkyWalking数据,通过DataHub管道与因果AI引擎,实现故障秒级定位。本文演示如何将SkyWalking agent数据路由至Databuff,快速构建智能监控体系,提升运维效率。
|
2月前
|
并行计算 程序员 API
Python版本进化史:从3.6到3.14,每个版本都带来了什么惊喜?
程序员晚枫,全网30万下载的python-office作者。亲历Python 3.6到3.14进化历程,详解各版本核心新特性:f-strings、数据类、海象运算符、模式匹配、性能飞跃至多解释器并发革命,助你掌握Python演进脉络,高效开发。
308 14
|
4月前
|
存储 人工智能 供应链
深入解析Agent实现“听懂→规划→执行”全流程的奥秘
AI智能体正从"回答问题"升级为"解决问题"——它能听懂"订明早京沪最早航班"并自动完成全流程预订。本文将剖析其三大核心能力:精准意图理解、动态工具调用和任务自主执行,通过电商索赔、家居控制等案例,展示如何让AI从"会说"到"会做"。掌握智能体技术,就是抢占下一代生产力制高点。
|
5月前
|
存储 人工智能 自然语言处理
AI大模型潜力无限,构建高效架构为何却困难重重?
本文三桥君系统介绍了AI大模型应用架构的完整体系,从多模态数据接入、预处理与特征提取,到知识与模型中台建设,再到业务应用落地和持续优化。产品专家三桥君通过架构图和工作流程说明,为AI大模型的实际应用提供了系统化的解决方案和技术选型参考。
273 0