-
Notifications
You must be signed in to change notification settings - Fork 470
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Higress AI可观测_ai-statistics插件扩展设计 #1234
Comments
几个问题和建议:
|
好的,我修改一下 |
This was referenced Aug 21, 2024
已按照建议修改 @johnlanni |
span tag 的配置字段应该有key,value以及value_source,支持用户自己配。value来源可以设计成三类,通过value_source字段指定:
response body可以不用支持,因为这个插件是流式处理的 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
设计背景
Higress作为AI大模型的请求入口,可以通过在网关上扩展插件能力,对所有通过 AI网关的请求信息完成指标和链路观测等一系列的监控行为,完善Higress的可观测体系。
当前Higress 通过
ai-statistics
插件,提供AI可观测基础能力。扩展ai-statistics
插件后,可以同各种链路可观测组件进行集成,完成 AI 请求都链路监控和追踪。内容摘要
在 Higress 网关上开启插件
ai-statistics
,扩展插件将token 开销、延时(包括首字节响应、完整响应时间)、用户请求问题等指标信息通过span tag
进行采集,将采集到的指标推送至Higress tracing配置的tracing 观测服务,实现对 AI请求的链路追踪,方便问题的查找和分析。实现思路
设计要点如下:
用户请求进入
ai-statistics
插件后,可根据插件配置判断是否获取用户本次 http 请求数据中的问题原始数据,进行记录;用户应答经
ai-proxy
插件流回ai-statistics
插件后,通过 http 请求头中的自定义头数据req-arrive-time
以及req-cost-time
等计算出延时(包括首字节响应、完整响应时间)数据,同时从应答内容中获取 token 使用情况;将获取到的 tracing 数据通过调用
proxywasm.SetProperty([]string{"trace_span_tag.指标名"}, []byte(指标数据))
方法增加统计插件的 tracing span tag ;通过配置文件用户自定义 tracing label的方式,支持用户自定义扩展监控链路数据,如用户关注AI 请求链路中的会话 id 信息,可通过配置文件定义设置
session_id
为额外tracing tag 。配置规则定义如下:
key
(tracing tag 名称),value_source
(tag 取值来源),value
(tag 取值 key value/path)。value_source
为 tag 值的取值来源,可选配置值有 4 个:proxywasm.GetProperty()
方法获取,value配置GetProperty()
方法要提取的key名 举例如下:
Tracing 集成
完成指标的采集和暴漏之后,可通过tracing 服务进行链路监测,tracing可以对接skywalking、zipkin、OTel等多种方案,下面以对接Skywalking为例。
在Higress 的全局配置 ConfigMap 对象 higress-config 增加 higress 项,激活 Higress 集成 Skywalking 调用链路跟踪添加 skywalking 相关配置如下:
Tracing 配置说明
skywalking 配置
The text was updated successfully, but these errors were encountered: