MCPcopy Create free account
hub / github.com/astercloud/aster / NewTelemetryMiddleware

Function NewTelemetryMiddleware

pkg/middleware/telemetry.go:61–92  ·  view source on GitHub ↗

NewTelemetryMiddleware 创建遥测中间件

(config *TelemetryMiddlewareConfig)

Source from the content-addressed store, hash-verified

59
60// NewTelemetryMiddleware 创建遥测中间件
61func NewTelemetryMiddleware(config *TelemetryMiddlewareConfig) *TelemetryMiddleware {
62 if config == nil {
63 config = &TelemetryMiddlewareConfig{}
64 }
65
66 tracer := config.Tracer
67 if tracer == nil {
68 tracer = telemetry.GetGlobalTracer()
69 }
70
71 m := &TelemetryMiddleware{
72 // Priority 5: 非常早执行,确保所有后续中间件和操作都在追踪范围内
73 BaseMiddleware: NewBaseMiddleware("telemetry", 5),
74 tracer: tracer,
75 agentID: config.AgentID,
76 agentName: config.AgentName,
77 provider: config.Provider,
78 model: config.Model,
79 conversationID: config.ConversationID,
80 recordPrompts: config.RecordPrompts,
81 recordCompletions: config.RecordCompletions,
82 }
83
84 telemetryLog.Info(context.Background(), "initialized", map[string]any{
85 "agent_id": m.agentID,
86 "agent_name": m.agentName,
87 "provider": m.provider,
88 "model": m.model,
89 })
90
91 return m
92}
93
94// Tools 返回中间件提供的工具 (无)
95func (m *TelemetryMiddleware) Tools() []tools.Tool {

Calls 3

GetGlobalTracerFunction · 0.92
NewBaseMiddlewareFunction · 0.85
InfoMethod · 0.65