亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

對普羅米修斯的理解

對普羅米修斯的理解

Go
九州編程 2023-03-29 17:16:35
我想嘗試使用Prometheus的簡單示例。我已經下載了服務器二進制文件我已經開始簡單的代碼,但幾乎沒有修改var addr = flag.String("listen-address", ":8080", "The address to listen on for HTTP requests.")func main() {    flag.Parse()    http.Handle("/metrics", promhttp.Handler())    http.Handle("/test/{id}", myHandler(promhttp.Handler()))    log.Fatal(http.ListenAndServe(*addr, nil))}func myHandler(next http.Handler) http.Handler {    return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {        fmt.Fprintf(w, "hello, you've hit %s\n", r.URL.Path)        next.ServeHTTP(w, r)    })}問題:我假設 Prometheus 是監控工具,我想單獨監控metrics端點/test/{id}。promhttp.Handler()通過創建多個處理程序并用作中間件,我是否正確地理解了這個想法?除了請求的數量和延遲之外,還有什么可以在帶有數據庫的簡單 Web 應用程序中進行監控?
查看完整描述

1 回答

?
SMILET

TA貢獻1796條經驗 獲得超4個贊

默認處理程序promhttp.Handler用于報告指標。(從所有注冊的處理程序中收集并根據要求報告)。

不幸的是,它不是一個通用的 http 中間件,可以為您提供開箱即用的任何指標。

我已經看到許多 go 的 web 框架都有某種社區 prometheus 中間件 (?gin's?),它們提供開箱即用的指標(延遲、響應代碼、請求計數等)。

go?prometheus 客戶端庫包含如何向應用程序添加指標的示例。

var (


? ? httpRequests = prometheus.NewCounter(

? ? ? ? prometheus.CounterOpts{

? ? ? ? ? ? Name: "http_requests_total",

? ? ? ? ? ? Help: "Number of http requests.",

? ? ? ? },

? ? )

)


func init() {

? ? // Metrics have to be registered to be exposed:

? ? prometheus.MustRegister(httpRequests)

}


func myHandler(next http.Handler) http.Handler {

? ? return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {

? ? ? ? httpRequests.Inc()

? ? ? ? fmt.Fprintf(w, "hello, you've hit %s\n", r.URL.Path)

? ? ? ? next.ServeHTTP(w, r)

? ? })

}

至于你的第二個問題很多 :) Google 提倡監控 4 個黃金信號:

這些都是

  • 流量 - 吞吐量 - 計數/時間

  • 延遲 - 分布/直方圖

  • 錯誤 - HTTP 響應代碼/顯式錯誤計數

  • 飽和 - 資源隊列,即如果有一個 goroutine 池,則在給定時間有多少 goroutines 處于活動狀態


在我的經驗中,了解應用程序和數據庫之間的所有交互(即應用于數據庫的 4 個黃金信號)也很有幫助:

  • 從應用程序調用數據庫的次數

  • 通話延遲

  • 為確定可用性(成功/總計)而進行的調用的結果(錯誤/成功)

  • 數據庫驅動程序可用的飽和度?


查看完整回答
反對 回復 2023-03-29
  • 1 回答
  • 0 關注
  • 103 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號