配置分布式追踪
当启用分布式追踪时,事件代理在特定操作发生时生成特殊的保证消息。一个专门构建的客户端(Solace Open Telemetry 接收器的一个实例)然后从特定队列中消费这些消息,并将它们转换为可以使用常见的 OpenTelemetry 后端(如 Jaeger 和 DataDog)接收、处理和查看的格式。有关更多信息,请参见分布式追踪。
要配置分布式追踪,请按照以下步骤操作:
- 为消息 VPN 创建遥测配置文件。
- 创建客户端用户名。
- 将客户端用户名绑定到客户端配置文件和与遥测配置文件相关的 ACL。
- 配置并启用追踪。
以下部分描述了如何配置遥测配置文件和启用遥测追踪。有关设置工作分布式追踪场景所需的所有步骤的详细示例,请参见分布式追踪示例。
配置遥测配置文件
在事件代理上,分布式追踪是通过遥测配置文件启用的,该配置文件在消息 VPN 级别配置。您可以给遥测配置文件起任何名称。当您为消息 VPN 创建遥测配置文件(名为 <profileName>
)时,事件代理会自动创建以下对象:
- 一个特殊用途的队列,名为
#telemetry-<profileName>
。此队列仅用于遥测消息。有关配置此队列的详细信息,请参见配置遥测队列设置。 - 一个名为
#telemetry-<profileName>
的客户端配置文件,用于控制遥测接收器(或简称接收器)的某些配置设置。接收器是绑定到遥测队列并消费追踪消息的客户端。要从遥测配置文件获取接收器配置,必须将此客户端配置文件分配给接收器用于授权的客户端用户名或授权组对象。使用不同的客户端配置文件尝试绑定到遥测队列的客户端将失败。请注意,遥测 ACL 配置文件是明确允许绑定到遥测队列的对象,但还会进行额外检查以确保 ACL 配置文件名称和客户端配置文件名称匹配,以防止意外错误配置。 - 一个也名为
#telemetry-<profileName>
的 ACL 配置文件,用于控制客户端是否可以绑定到配置文件对应的遥测队列。要允许客户端绑定到遥测队列,其 ACL 配置文件名称必须在绑定期间与遥测队列名称匹配。
每个消息 VPN 只能有一个遥测配置文件。
遥测配置文件还有一个 trace
属性,您可以配置该属性以控制进入队列的数据性质,以及一个 receiver
属性,用于控制数据如何从队列中传出。有关这些属性的详细信息,请参见配置追踪过滤器和启用追踪以及配置接收器客户端连接设置。
要创建遥测配置文件,请输入以 下命令:
solace(configure)# message-vpn <message-vpn-name>
solace(configure/message-vpn)# create telemetry-profile <telemetry-profile-name>
要配置现有的遥测配置文件:
solace(configure/message-vpn)# telemetry-profile <telemetry-profile-name>
其中:
<message-vpn-name>
是您想要创建遥测配置文件的消息 VPN 名称。
<telemetry-profile-name>
是遥测配置文件的名称。
您可以为遥测配置文件执行的配置任务包括:
- 配置遥测队列设置
- 配置接收器客户端连接设置
- 配置追踪过滤器并启用追踪
配置遥测队列设置
遥测队列是一个特殊用途的队列,仅用于遥测消息。
您可以为遥测 队列执行的配置任务包括:
- 配置可以绑定到遥测队列的最大流数
- 配置遥测队列的最大池使用值
- 配置遥测队列的事件阈值
配置可以绑定到遥测队列的最大流数
要配置可以绑定到遥测队列的最大流数,请输入以下命令:
solace(configure)# message-vpn <message-vpn-name>
solace(configure/message-vpn)# telemetry-profile <telemetry-profile-name>
solace(configure/message-vpn/telemetry-profile)# queue
solace(...e/message-vpn/telemetry-profile/queue)# max-bind-count <value>
其中:
<value>
是指定可以绑定队列的最大流数的整数值。有效范围是 0 到 10,000。默认值是 1,000。
此命令的 no
版本,no max-bind-count
,将值重置为默认值。
配置遥测队列的最大池使用值
要配置遥测队列可以使用的最大消息池量,请输入以下命令:
solace(configure)# message-vpn <message-vpn-name>
solace(configure/message-vpn)# telemetry-profile <telemetry-profile-name>
solace(configure/message-vpn/telemetry-profile)# queue
solace(...e/message-vpn/telemetry-profile/queue)# max-spool-usage <size>
其中:
<size>
是指定队列允许使用的最大消息池磁盘空间的整数值,单位为 MB。
此命令的 no
版本,no max-spool-usage
,将允许的消息池使用配额重置为队列的默认值。
配置遥测队列的事件阈值
事件阈值控制事件代理生成的各种事件。您可以为遥测队列配置以下事件阈值:
- 绑定计数阈值
- 池使用阈值
要配置遥测队列的事件阈值,请输入以下命令:
solace(configure)# message-vpn <message-vpn-name>
solace(configure/message-vpn)# telemetry-profile <telemetry-profile-name>
solace(configure/message-vpn/telemetry-profile)# queue
solace(...e/message-vpn/telemetry-profile/queue)# event
CLI 现在处于可以配置绑定计数或池使用设置和清除阈值的级别。有关队列事件阈值的更多信息,请参见队列事件阈值。
配置接收器客户端连接设置
接收器是绑定到遥测队列并消费追踪消息的客户端应用程序。有关更多信息,请参见 Solace Open Telemetry 接收器。
您可以为接收器客户端连接执行的配置任务包括:
- 配置每个客户端用户名的最大接收器客户端连接数
- 配置接收器客户端连接的事件阈值
- 配置接收器客户端连接的 TCP 设置
- 启用或禁用接收器客户端连接
- 配置接收器客户端的 ACL 设置
配置每个客户端用户名的最大接收器客户端连接数
要配置每个客户端用户名的最大接收器客户端连接数,请输入以下命令:
solace(configure)# message-vpn <message-vpn-name>
solace(configure/message-vpn)# telemetry-profile <telemetry-profile-name>
solace(configure/message-vpn/telemetry-profile)# receiver
solace(...essage-vpn/telemetry-profile/receiver)# max-connections-per-client-username <value>
其中:
<value>
是指定允许的同时客户端连接数的最大值的整数值。
此命令的 no
版本,no max-connections-per-client-username
,将客户端连接数的最大值重置为默认值。
配置接收器客户端连接的事件阈值
事件阈值控制事件代理生成的各种事件。您可以为接收器客户端连接配置以下事件阈值:
- 每个客户端用户名的连接阈值
要配置接收器客户端连接的事件阈值,请输入以下命令:
solace(configure)# message-vpn <message-vpn-name>
solace(configure/message-vpn)# telemetry-profile <telemetry-profile-name>
solace(configure/message-vpn/telemetry-profile)# receiver
solace(...essage-vpn/telemetry-profile/receiver)# event
CLI 现在处于可以配置设置和清除阈值的级别。有关客户端事件阈值的更多信息,请参见配置客户端事件阈值。
配置接收器客户端连接的 TCP 设置
要配置接收器客户端连接的 TCP 保活,请输入以下命令:
solace(configure)# message-vpn <message-vpn-name>
solace(configure/message-vpn)# telemetry-profile <telemetry-profile-name>
solace(configure/message-vpn/telemetry-profile)# receiver
solace(configure/message-vpn/telemetry-profile/receiver)# tcp
solace(configure/message-vpn/telemetry-profile/receiver/tcp)# keepalive
solace(configure/message-vpn/telemetry-profile/receiver/tcp)# count <num>
solace(configure/message-vpn/telemetry-profile/receiver/tcp)# idle <seconds>
solace(configure/message-vpn/telemetry-profile/receiver/tcp)# interval <seconds>
其中:
count <num>
设置 TCP 在放弃连接之前应发送的最大保活探针数(2 到 5)。默认值是 5。
idle <seconds>
设置连接必须保持空闲的时间(3 到 120 秒),然后 TCP 开始发送保活探针。默认值是 3。
interval <seconds>
设置设置为保活探针之间的间隔时间(1 到 30 秒)。默认值是 1。
这些命令的 no
版本将值重置为默认值。
要配置接收器客户端连接的初始拥塞窗口大小,请输入以下命令:
solace(configure/message-vpn/telemetry-profile/receiver)# tcp
solace(configure/message-vpn/telemetry-profile/receiver/tcp)# initial-cwnd <num-mss>
其中:
initial-cwnd <num-mss>
是一个整数,指定以 TCP 最大段大小(MSS)为单位的 TCP 初始拥塞窗口大小。有效值是 2 到 7826。默认值是 2。
要配置接收器客户端连接的最大窗口大小,请输入以下命令:
solace(configure/message-vpn/telemetry-profile/receiver)# tcp
solace(configure/message-vpn/telemetry-profile/receiver/tcp)# max-wnd <num-kilo-bytes>
其中:
max-wnd <num-kilo-bytes>
是一个整数,指定以千字节(KB)为单位的 TCP 最大窗口大小。有效值是 32 到 65536。默认值是 256。
要配置接收器客户端连接的最大段大小,请输入以下命令:
solace(configure/message-vpn/telemetry-profile/receiver)# tcp
solace(configure/message-vpn/telemetry-profile/receiver/tcp)# mss <byte-count>
其中:
mss <byte-count>
是最大段大小的字节大小(256 到 1460)。默认值是 1460。
启用或禁用接收器客户端连接
要启用接收器客户端连接到遥测队列并消费,请输入以下命令:
solace(configure/message-vpn/telemetry-profile/receiver)# no shutdown
要禁用接收器客户端连接到遥测队列并消费,请输入以下命令:
solace(configure/message-vpn/telemetry-profile/receiver)# shutdown
配置接收器客户端的 ACL 设置
您可以使用 ACL 来控制哪些接收器客户端可以连接到事件代理。
要设置接收器客户端连接尝试到事件代理的默认操作,请输入以下命令:
solace(configure)# message-vpn <message-vpn-name>
solace(configure/message-vpn)# telemetry-profile <telemetry-profile-name>
solace(configure/message-vpn/telemetry-profile)# receiver
solace(...essage-vpn/telemetry-profile/receiver)# acl
solace(...ge-vpn/telemetry-profile/receiver/acl)# connect
solace(...elemetry-profile/receiver/acl/connect)# default-action {allow | disallow}
其中:
allow
将默认操作设置为允许接收器客户端连接尝试。
disallow
将默认操作设置为不允许接收器客户端连接尝试。这是默认值。
要为接收器客户端连接尝试设置默认操作的例外,请输入以下命令:
solace(...elemetry-profile/receiver/acl/connect)# exception <cidr-addr>
其中:
exception <cidr-addr>
是例外客户端的 IP 地址和网络掩码组合,以无类别域间路由(CIDR)形式表示:nnn.nnn.nnn.nnn/dd(其中 nnn 是 0-255,dd 是 1-32)。
更改默认客户端连接操作或从例外列表中移除客户端不会立即影响已经与事件代理建立连接的客户端。它们保持连接。
配置追踪过滤器并启用追踪
当您为遥测配置文件启用追踪时,事件代理会在事件消息的生命周期中的某些点生成跨度。跨度表示事件代理上的单个操作,例如接收消息或确认消息。
要配置 追踪,请按照以下步骤操作:
- 创建追踪过滤器
- 配置过滤器的订阅
- 启用追踪过滤器
- 启用追踪
配置追踪过滤器
您使用追踪过滤器将满足特定追踪用例的订阅组合在一起(换句话说,您希望一起启用或禁用的订阅)。如果应用程序的消息可以由一组订阅描述,那么将这些订阅组合到追踪过滤器中将允许您通过启用或禁用该单个追踪过滤器来简单地开始或停止调试。
要创建追踪过滤器,请输入以下命令:
solace(configure)# message-vpn <message-vpn-name>
solace(configure/message-vpn)# telemetry-profile <telemetry-profile-name>
solace(configure/message-vpn/telemetry-profile)# trace
solace(configure/message-vpn/telemetry-profile/trace)# create filter <filter-name>
其中:
<filter-name>
是用于标识追踪过滤器的名称。
此命令的 no
版本,no filter <filter-name>
,移除追踪过滤器。
配置追踪订阅
追踪订阅控制哪些由代理接收的消息将被追踪。如果传入消息与启用的追踪过滤器的订阅匹配,消息将作为它通过代理时被追踪。
要为追踪过滤器配置订阅,请输入以下命令:
solace(...ge-vpn/telemetry-profile/trace/filter)# create subscription <subscription> [smf | mqtt]
其中:
<subscription>
是要添加到过滤器的主题订阅的名称,形式为 a/b/c。
smf
指定订阅使用 SMF 语法。这是默认设置。有关 SMF 主题语法的更多信息,请参见 Solace 消息格式主题。
mqtt
指定订阅使用 MQTT 语法。有关更多信息,请参见 MQTT 主题结构和语法。
追踪订阅不导出。有关更多信息,请参见启用订阅导出。
启用或禁用追踪过滤器
要启用追踪过滤器,请输入以下命令:
solace(...ge-vpn/telemetry-profile/trace/filter)# no shutdown
要禁用追踪过滤器,请输入以下命令:
solace(...ge-vpn/telemetry-profile/trace/filter)# shutdown
启用或禁用追踪
通常您会保持追踪启用状态,但启用或禁用追踪过滤器以控制追踪的内容。
要为消息 VPN 启用追踪,请输入以下命令:
solace(...ge-vpn/telemetry-profile/trace)# no shutdown
要禁用追踪,请输入以下命令:
solace(...ge-vpn/telemetry-profile/trace)# shutdown