Callback - APMPlus

Eino 基于 graph callback 能力封装了 APMPlus 的 trace 和 metrics 能力(参见 文档控制台

特性

  • 实现了 github.com/cloudwego/eino/callbacks.Handler 接口
  • 实现了会话功能,能够将 Eino 应用中的同一个会话里的多个请求关联起来,并进行 AI 会话分析
  • 易于与 Eino 应用集成

安装

go get github.com/cloudwego/eino-ext/callbacks/apmplus

快速开始

package main

import (
    "context"
    "log"
    
    "github.com/cloudwego/eino-ext/callbacks/apmplus"
    "github.com/cloudwego/eino/callbacks"
)

func main() {
    ctx := context.Background()
    // 创建apmplus handler
    cbh, showdown, err := apmplus.NewApmplusHandler(&apmplus.Config{
       Host: "apmplus-cn-beijing.volces.com:4317",
       AppKey:      "appkey-xxx",
       ServiceName: "eino-app",
       Release:     "release/v0.0.1",
    })
    if err != nil {
       log.Fatal(err)
    }

    // 设置apmplus为全局callback
    callbacks.AppendGlobalHandlers(cbh)

    g := NewGraph[string,string]()
    /*
     * compose and run graph
     */
    runner, _ := g.Compile(ctx)
    runner.Run(ctx)

    // 如想设置会话信息, 可通过 apmplus.SetSession 方法
	ctx = apmplus.SetSession(ctx, apmplus.WithSessionID("your_session_id"), apmplus.WithUserID("your_user_id"))

    // 执行 runner
	result, _ := runner.Invoke(ctx, "input")
	/*
	 * 处理结果
    */

    // 等待所有trace和metrics上报完成后退出
    showdown(ctx)
}

可以在 APMPlus 中查看 trace 和 metrics:

在调用 Eino 应用过程中传入 Session 信息后,可以在 APMPlus 中查看 AI 会话分析