gala-spider开发者指南:如何添加自定义观测对象 gala-spider开发者指南如何添加自定义观测对象【免费下载链接】gala-spiderAn OS-level topology awareness service and a cause inference service.项目地址: https://gitcode.com/openeuler/gala-spider前往项目官网免费下载https://ar.openeuler.org/ar/gala-spider是一个OS级拓扑感知服务和故障根因推理服务能够帮助开发者实现系统级的监控和问题诊断。本文将详细介绍如何为gala-spider添加自定义观测对象扩展其监控能力。为什么需要添加自定义观测对象在复杂的系统环境中不同的应用场景可能需要监控特定的实体对象。gala-spider通过灵活的配置机制允许开发者添加自定义观测对象从而满足多样化的监控需求。无论是进程、容器还是自定义服务都可以通过简单的配置步骤纳入gala-spider的监控体系。gala-spider架构概览在开始添加自定义观测对象之前让我们先了解一下gala-spider的整体架构。从架构图中可以看到gala-spider主要包含spider-storage和cause-inference两个核心模块通过Kafka与Prometheus等数据源交互并将数据存储在ArangoDB中。这种架构设计使得添加新的观测对象变得简单而高效。拓扑分层结构gala-spider采用分层的拓扑结构来组织观测对象。了解这一结构有助于我们正确地定位新添加的观测对象。拓扑结构分为连接层、进程层和主机层每层包含不同的观测对象。新添加的观测对象需要被分配到合适的拓扑分层中。如何新增观测对象为了方便用户拓展新的观测对象gala-spider通过配置文件的方式来配置需要新增的观测对象的元数据信息从而支持对新观测对象的采集和拓扑绘制能力。需要配置的观测对象的元数据信息包括观测对象的类型全局唯一标识该观测对象的一个观测实例的字段集合观测对象的标签字段集合观测对象的观测指标集合观测对象所在的拓扑分层下面以观测对象proc为例详细讲解如何配置新增的观测对象的元数据信息。当前系统默认支持的扩展观测对象配置文件在gala-spider工程下的config/ext-observe-meta.yaml文件中。1. 新增一个观测对象类型proc观测对象对应Linux内核中的一个进程。在配置文件中observe_entities是一个对象的列表所有新增的观测对象元数据信息都在observe_entities下。为此我们在observe_entities下新增一个对象并指定type: proc代表这是一个观测类型为proc的观测对象的配置信息。type是一个必选的配置字段。配置结果如下observe_entities: - type: proc2. 配置观测对象的标识字段一台主机上的proc可以通过进程IDtgid进行标识这台主机可以通过一个全局的机器IDmachine_id进行唯一标识。因此proc观测对象的一个观测实例可通过tgid和machine_id全局唯一标识。我们将它们配置到keys字段中。keys是一个必须的配置字段。此时配置结果为observe_entities: - type: proc keys: - tgid - machine_id3. 配置观测对象的标签字段proc还有一些非标识类的标签信息。比如进程名comm进程组IDpgid等信息。如果proc运行在一个容器中它还包括一个所在的容器IDcontainer_id信息。这些标签信息可以配置到labels字段中。labels是一个可选的配置字段。此时配置结果为observe_entities: - type: proc keys: - tgid - machine_id labels: - comm - pgid - container_id4. 配置观测对象的观测指标字段proc包含若干的观测指标比如进程调用fork的次数fork_count进程每秒读/写IO的字节数rchar_bytes/wchar_bytes等。这些指标字段都在metrics中进行配置。如果spider的数据源是Prometheus则metrics中至少需要配置一个指标字段否则无法从Prometheus采集数据。此时配置结果为observe_entities: - type: proc keys: - tgid - machine_id labels: - comm - pgid - container_id metrics: - fork_count - rchar_bytes - wchar_bytes5. 配置观测对象所在的拓扑分层该配置信息在绘制观测对象之间的3D拓扑关系图功能时会用到。拓扑分层通过level字段进行配置是一个可选的配置字段。proc对应于拓扑分层的进程层PROCESS所以添加一行配置内容level: PROCESS当前系统支持的拓扑分层有HOSTPROCESSRPC一个完整的观测对象的配置结果proc最终的配置信息为observe_entities: - type: proc keys: - tgid - machine_id labels: - comm - pgid - container_id metrics: - fork_count - rchar_bytes - wchar_bytes level: PROCESS当我们需要给一个观测对象添加新的指标字段、标签字段等信息时只需要在配置文件中添加相应的配置即可。这种方式提供了很好的可扩展性。如何新增拓扑关系添加了观测对象后我们还需要定义它与其他对象之间的拓扑关系以便gala-spider能够正确绘制系统拓扑图。关系类型定义拓扑关系或关联关系定义了观测对象之间存在的物理上和逻辑上的关系。关联关系可分为两种一种是直接的direct关联关系是指物理上直观可见的关系另一种是间接的indirect关联关系是指在物理上不存在但逻辑上可建立的关系。gala-spider目前支持的直接关联关系有关系名称关系描述runs_on运行关系。例如进程运行在主机上则有关系进程 runs_on 主机。belongs_to从属关系。例如通信端点是从属于某个进程则有关系通信端点 belongs_to 进程。is_server服务端通信关系。例如nginx记录了一条和服务端tcp的连接则有关系服务端tcp连接 is_server nginx连接。is_client客户端通信关系。例如nginx记录了一条和客户端tcp的连接则有关系客户端tcp连接 is_client nginx连接。is_peer对端通信关系。例如客户端与服务端建立了一条tcp连接则有关系客户端tcp连接 is_peer 服务端tcp连接。反之亦然。支持的间接关联关系有关系名称关系描述connect连接关系。例如主机A和主机B上有tcp连接进行通信则有关系主机A connect 主机B 。新增拓扑关系关系类型定义好后我们可以通过配置文件的方式新增拓扑关系。当前系统默认支持的拓扑关系在gala-spider工程下的config/topo-relation.yaml配置文件中。对于proc的一个拓扑关系proc runs_on host对应的配置内容如下topo_relations: - type: proc dependingitems: - id: runs_on layer: direct toTypes: - type: host matches: - from: machine_id to: machine_id其中matches配置表明当proc.machine_id host.machine_id成立时关联关系proc runs_on host成立。总结通过本文的介绍我们了解了如何为gala-spider添加自定义观测对象。这一过程主要包括修改配置文件ext-observe-meta.yaml来定义观测对象的元数据以及修改topo-relation.yaml来定义新对象与其他对象之间的拓扑关系。这种基于配置文件的方式使得扩展gala-spider的监控能力变得简单而灵活。希望本文能够帮助开发者更好地使用gala-spider实现更全面、更定制化的系统监控。如果你在使用过程中遇到任何问题可以查阅项目的官方文档或提交issue寻求帮助。要开始使用gala-spider请先克隆仓库https://gitcode.com/openeuler/gala-spider【免费下载链接】gala-spiderAn OS-level topology awareness service and a cause inference service.项目地址: https://gitcode.com/openeuler/gala-spider创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

最新新闻

Transformer瓶颈与下一代大模型架构:SSM、Mamba与MoE路线解析

Transformer瓶颈与下一代大模型架构:SSM、Mamba与MoE路线解析

最近大模型圈有两则消息值得放在一起看。一位在 OpenAI 做到较高职级、参与过大模型预训练与扩展性核心工作的人,选择离开;另一位在 Google 深耕多年、长期负责语言模型技术路线的人,也做出同样选择。更关键的是,两人离职后的下一…

2026/8/27 14:38:17
5G物联网模块安全落地:从安全启动到TLS双向认证的实践指南

5G物联网模块安全落地:从安全启动到TLS双向认证的实践指南

1. 从4G到5G,物联网模块的安全门槛到底高在哪先讲一个我今年在项目里遇到的实际场景。客户部署了一批工业数据采集终端,用的还是老的4G Cat.1模块,业务侧跑的是MQTT over TCP,数据明文传输。前期小规模试点没出什么问题&#xff0…

2026/8/27 14:38:17
Jeff Dean押注AI4S:从分布式系统到科学发现的基础设施革命

Jeff Dean押注AI4S:从分布式系统到科学发现的基础设施革命

谷歌内部最核心的工程人员 Jeff Dean 从谷歌离开,新公司的方向锁定 AI4S。这个消息一出来,很多人的第一反应是:谷歌的地基少了一个人,AI 赛道多了一个新变量。Jeff Dean 不是普通高管,他在过去二十年里直接参与了谷歌技…

2026/8/27 14:38:17
英伟达投资新公司拿下Anthropic 680亿大单:AI算力基础设施的交付逻辑

英伟达投资新公司拿下Anthropic 680亿大单:AI算力基础设施的交付逻辑

一家成立仅7个月的AI公司,背后出现英伟达投资,又传出拿下Anthropic的680亿AI大单。这个配置放在任何行业都像神话,但在2025年的AI基础设施赛道,却是产业链分工走向成熟的一个切片。这类新闻的价值不在于又一次“小公司逆袭”&…

2026/8/27 14:38:17
【AI大模型部署】私有知识库与外网大模型的完美结合:AnythingLLM全攻略

【AI大模型部署】私有知识库与外网大模型的完美结合:AnythingLLM全攻略

前言 由于算力的限制,使用起来很慢,但是我又不想把私人文件传给公网的大模型,那么有没有一种方法可以在访问私人的知识库的前提下,又可以访问外网的大模型呢?答案是必须的。 准备工作: 1.下载nomic-embed-t…

2026/8/27 14:38:17
ArcGIS地统计插值核心:半变异函数建模原理与实战调参指南

ArcGIS地统计插值核心:半变异函数建模原理与实战调参指南

1. 项目概述:从“黑箱”到“白箱”的地统计插值如果你用过ArcGIS的地统计分析工具,尤其是克里金插值,大概率会和我有一样的感受:前面选数据、选方法都挺顺畅,一到“半变异函数/协方差建模”这个环节,就有点…

2026/8/27 14:33:17