logo
logo

AutoTracing - 消息队列++,Pulsar、NATS、ActiveMQ、RabbitMQ、ZeroMQ

向阳 2024-06-14

AutoTracing 在 v6.5 中支持的消息队列协议大爆发,新增了对 Pulsar、NATS、ActiveMQ、RabbitMQ、ZeroMQ 的支持。

DeepFlow 支持采集的消息队列协议家族DeepFlow 支持采集的消息队列协议家族

0x0: Pulsar

Apache Pulsar 是 Apache 软件基金会的顶级项目,是下一代云原生分布式消息流平台,集消息、存储、轻量化函数式计算为一体,采用计算与存储分离架构设计,支持多租户、持久化存储、多机房跨区域数据复制,具有强一致性、高吞吐、低延时及高可扩展性等流数据存储特性。

deepflow-agent 默认会采集 Pulsar 协议的如下字段:

  • protocol_version
  • command
  • proxy_to_broker_url
  • topic
  • request_id
  • code
  • status
  • exception
  • traceparent, sw8, …
  • x_request_id

详细的字段映射关系请参考 DeepFlow 文档

0x1: NATS

NATS 是一个轻量级、高性能的消息传递系统,适用于构建微服务、物联网和云原生应用等场景。其简单易用的 API、高性能和灵活性使其在许多应用场景中成为理想的选择。

deepflow-agent 默认会采集 NATS 协议的如下字段:

  • version
  • NatsMessage
  • server_name
  • subject
  • traceparent, sw8, …

详细的字段映射关系请参考 DeepFlow 文档

0x2: ActiveMQ

Apache ActiveMQ 是一种流行的开源消息中间件,基于 Java Message Service(JMS)规范实现,由 Apache 软件基金会开发和维护。它支持多种消息协议,如 OpenWire、Stomp、AMQP、MQTT 等,可以在分布式应用程序之间可靠地传递消息,实现解耦和异步通信。

deepflow-agent 默认会采集 ActiveMQ OpenWire 协议的如下字段:

  • version
  • OpenWireCommand
  • broker_url
  • topic
  • command_id
  • error_message
  • traceparent, sw8, …
  • correlation_id

详细的字段映射关系请参考 DeepFlow 文档

0x3: RabbitMQ

RabbitMQ 是一个由 Erlang 开发的 AMQP(Advanced Message Queuing Protocol)的开源实现。

deepflow-agent 默认会采集 RabbitMQ AMQP 协议的如下字段:

  • version
  • class_id
  • method_id
  • vhost
  • routing_key
  • queue
  • traceparent, sw8, …

详细的字段映射关系请参考 DeepFlow 文档

0x4: ZeroMQ

ZeroMQ 又称 ØMQ、0MQ、ZMQ,号称最快的消息队列系统,专门为高吞吐量/低延迟的场景开发,在金融界的应用中经常使用,偏重于实时数据通信场景。

deepflow-agent 默认会采集 ZeroMQ ZMTP 协议的如下字段:

  • version
  • frame_type
  • subscription
  • error message

详细的字段映射关系请参考 DeepFlow 文档

0x5: 什么是 DeepFlow

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

GitHub 地址:https://github.com/deepflowio/deepflow

访问 DeepFlow Demo,体验零侵扰、全栈的可观测性。