diff --git a/server/src/core/fetch.go b/server/src/core/fetch.go index 1a5ae7f..dd3f66c 100644 --- a/server/src/core/fetch.go +++ b/server/src/core/fetch.go @@ -37,7 +37,10 @@ func (pr *row) fetchRemote() (ab []byte, err error) { client := &http.Client{ // Timeout: 30 * time.Second, } + t := time.Now() rsp, err := client.Do(req) + costMs := uint32(time.Since(t) / time.Millisecond) + metrics.OpenAITime(costMs) if err != nil { fmt.Fprintf(b, "client.Do fail: %s\n", err.Error()) return diff --git a/server/src/metrics/init.go b/server/src/metrics/init.go index bf62f68..3594808 100644 --- a/server/src/metrics/init.go +++ b/server/src/metrics/init.go @@ -21,4 +21,7 @@ func init() { prometheus.MustRegister(limitReq) prometheus.MustRegister(limitToken) + + prometheus.MustRegister(openaiTime) + prometheus.MustRegister(vaTime) } diff --git a/server/src/metrics/openai.go b/server/src/metrics/openai.go new file mode 100644 index 0000000..eed97c0 --- /dev/null +++ b/server/src/metrics/openai.go @@ -0,0 +1,10 @@ +package metrics + +var ( + openaiTime = newSummary(`orca_openai_time`, `openai api time`) +) + +// OpenAITime ... +func OpenAITime(ms uint32) { + openaiTime.Observe(float64(ms)) +} diff --git a/server/src/metrics/va.go b/server/src/metrics/va.go new file mode 100644 index 0000000..a565357 --- /dev/null +++ b/server/src/metrics/va.go @@ -0,0 +1,10 @@ +package metrics + +var ( + vaTime = newSummary(`orca_va_time`, `vertexai api time`) +) + +// VaTime ... +func VaTime(ms uint32) { + vaTime.Observe(float64(ms)) +} diff --git a/server/src/vertexai/chat.go b/server/src/vertexai/chat.go index dd8124c..ae31957 100644 --- a/server/src/vertexai/chat.go +++ b/server/src/vertexai/chat.go @@ -5,6 +5,7 @@ import ( "encoding/json" "errors" "fmt" + "project/metrics" "project/pb" "project/util" "time" @@ -168,6 +169,7 @@ func loadChat(k chatKey) (*ChatRsp, error) { Raw: rsp, CostMs: uint32(time.Since(t) / time.Millisecond), } + metrics.VaTime(r.CostMs) answer := &pb.VaChatRsp{} answer.Content, err = getChatVal(rsp)