
如何在 Rasa Pro 中配置 Jaeger 或 OTEL Collector 开启分布式 Tracing【免费下载链接】rasa Open source machine learning framework to automate text- and voice-based conversations: NLU, dialogue management, connect to Slack, Facebook, and more - Create chatbots and voice assistants项目地址: https://gitcode.com/GitHub_Trending/ra/rasa在 Rasa Pro 中排查性能问题、定位消息处理或模型训练环节的瓶颈时需要把请求流经各组件的 trace 数据收集起来。Rasa Pro 的 Tracing 功能基于 OpenTelemetry支持两种接入方式直接以 Jaeger 作为 tracing 后端或用 OTEL CollectorOpenTelemetry Collector先采集 trace、再转发到你自选的后端。本文介绍如何在endpoints.yml中完成配置配置完成后 Tracing 会自动开启无需其他操作。适用前提已按 Rasa Pro Installation 文档安装 Rasa Prorasa-plus包或 Docker 镜像并已持有 credentials 与 license设置了环境变量RASA_PRO_LICENSE。Tracing 能力自 Rasa Pro 3.3 起提供见 Rasa Pro Changelog。在 endpoints.yml 中配置 Tracing配置入口只有一个在 endpoints 文件中添加tracing配置段即endpoints.yml。对于部署环境文档说明也可以把该配置写进 Helm values 的相应部分。两种方式二选一区别在type字段Jaeger 后端用jaegerOTEL Collector 用otlp。使用 Jaeger 后端tracing: type: jaeger host: localhost port: 6831 service_name: rasa sync_export: ~其中host/port指向你的 Jaeger 实例文档示例为localhost:6831service_name是 trace 上报时使用的服务名。使用 OTEL Collector可选替代路径如果你希望 trace 先经过 Collector 再分发到多个后端把type指定为otlptracing: type: otlp endpoint: my-otlp-host:4318 insecure: false service_name: rasa root_certificates: ./tests/unit/tracing/fixtures/ca.pemendpoint应指向你的 OTEL Collector 地址。文档示例中的my-otlp-host:4318与root_certificates路径./tests/unit/tracing/fixtures/ca.pem均为文档示例值替换为实际 Collector 地址和你环境的 CA 证书路径。Tracing 如何生效只要配置了受支持的 tracing 后端Tracing 即自动启用不需要额外动作。需要关闭时把 endpoints 文件中的tracing:配置项留空即可。Tracing 覆盖 Rasa 服务中两个区域可追踪的事件包括模型训练文档化了对GraphTrainer和GraphNode两类对象的 instrumentation。GraphTrainer可检查training_typeNLU、CORE、BOTH、END-TO-END、language、recipe_name、output_filename、is_finetuning每个 graph node 训练以及消息处理时预测会记录node_name、component_class、fn_name。消息处理对Agent、MessageProcessor、TrackerStore、LockStore做了 instrumentation可追踪收到消息、解析消息、预测下一个 action、执行 action、读写 tracker、加锁、发布到 event broker、向 action server 传递 trace context 等操作。关于自定义 action servertrace context 会随请求一起按 W3C Trace Context Specification 传给 action server你可以在自定义 action 代码中用它延续 trace。MessageProcessor的action_name、sender_id、message_id三个属性也会被注入传给 action server 的 trace context。本地开发环境出现 OSError: [Errno 40] Message too long 时如何处理按 安装文档 中的说明在本地开发环境用 Jaeger 作为后端、配置好 tracing 后运行rasa train或rasa run可能会遇到这个错误OSError: [Errno 40] Message too long文档给出的原因是操作系统限制了 UDP 包大小。在 macOS 上可以用以下命令查看当前的 UDP 包大小上限sysctl net.inet.udp.maxdgram然后调大该值需要 sudo 权限sudo sysctl -w net.inet.udp.maxdgram65535这条命令修改的是系统级内核参数会影响当前系统上所有 UDP 通信确认权限后再执行。小结与边界Tracing 是 Rasa Pro 的功能开源 Rasa 不包含该能力配置完成后自动生效验证方式就是按上述配置运行rasa train/rasa run并观察是否出现 UDP 报错文档没有提供额外的启用状态检查命令。本地 Jaeger 调试受系统 UDP 包大小限制影响时按上文调整即可该问题文档仅在 macOS 场景下给出了具体命令其他系统需自行确认对应的内核参数。生产部署时在 Helm values 的相应部分配置同样的tracing段而不是只改本地endpoints.yml。【免费下载链接】rasa Open source machine learning framework to automate text- and voice-based conversations: NLU, dialogue management, connect to Slack, Facebook, and more - Create chatbots and voice assistants项目地址: https://gitcode.com/GitHub_Trending/ra/rasa创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考