阿川私房教材:學程式,拿 offer!

63 個專案實戰,直接上手!
無需補習,按步驟打造你的面試作品。

立即解鎖你的轉職秘笈

假設您有一個或多個應用程式 - 它們都發送日誌 - 您如何知道它們內部發生了什麼?

通常有兩種方法:

  • 日誌記錄:保存來自多個應用程式的日誌並提供見解和搜尋。這是老方法並且總是有幫助的。

  • 追蹤:專注於提供對應用程式效能的洞察;您可以針對它們建立準確的指標以進行監控和警報。

有些工具用於記錄,有些工具用於跟踪,有些工具兩者兼而有之!

以下是您必須了解的用於日誌和追蹤的開源工具:

日誌


1. Quickwit(日誌與追蹤)👑

Quickwit 是一個開源分散式搜尋引擎,專為大規模日誌管理和分析而設計。

Quickwit 是 Elasticsearch 的直接替代方案,具有更高的效能,尤其是在雲端原生和大規模分散式環境中,並且專注於優化儲存和搜尋效率。

通常,您會使用 OpenTelemetry、Fluentbit、Odigos(自動偵測追蹤工具)等工具來收集日誌和追蹤,將它們傳送到 Quickwit,然後使用 Jaeger(追蹤)或 Grafana(日誌和追蹤)將其視覺化。

有趣的事實: Elasticsearch 和 Kibana 都放棄了社區許可證,轉而採用更具限制性的許可證(從 Apache 2 到 Elastic 許可證,並遭到社區的強烈反對)。

Quickwit 是 AGPL 3。它對 FOSS(免費開源社群)更加開放。

 

Quickwit


2. Grafana(日誌和追蹤)

Grafana 是 ELK 堆疊的開源替代品。對於日誌和跟踪,您必須設定兩個查詢引擎:Loki 和 Tempo,都由 Grafana 維護。

一旦您在 Loki 和 Tempo 中索引了所有日誌或跟踪,您將需要一個可視化工具來搜尋您的資料:Grafana 來了!

Grafana 可讓您查詢、視覺化、警報和理解您的指標,無論它們儲存在何處。與您的團隊建立、探索和分享儀表板,並培養資料驅動的文化。

 

Grafana


3. Odigos(追蹤)

Odigos 是一項獨特的技術,無需更改程式碼即可為 k8s 中的任何應用程式產生追蹤:然後可以將所有追蹤轉發到 Quickwit 或 Elasticsearch 等資料庫(它們有更多整合)。

如果您不知道,OpenTelemetry 是一個接收日誌和追蹤的協定。 Odigos 正在使用該標準,因此您可以在任何支援 OpenTelemetry 的資料庫中發送您的追蹤!

 

Odigos


5. Jaeger(追蹤)

與 Prometheus 不同,Jaeger 專注於追蹤。

Jaeger 支援跨分散式系統傳播上下文訊息,確保追蹤資料在服務網路中正確關聯。

它並不是為處理大量資料而設計的,您必須將其與強大的儲存引擎(如 Quickwit 或 Elasticsearch)一起使用。在這樣的設定中,Jaeger 可以根據您的服務進行擴展,使其適用於小型和大型系統。

 

Jaeger


6. SigNoz(日誌與追蹤)

Signoz 提供日誌和追蹤管理功能。

您可以在單一管理平台中視覺化追蹤和日誌。

您可以透過尋找導致問題的確切追蹤並查看各個請求追蹤的詳細火焰圖來找到問題的根本原因。

Signoz

 


7. Keep(提醒)

保持與目前所有可觀察工具、資料庫和通訊管道的連接,並將所有內容聚合到一個平台中,在出現問題時提供頂級警報 😈

 

保留


8. Uptrace(日誌與追蹤)

Uptrace 是一個基於 OpenTelemetry 的可觀察性平台,用於攝取日誌和追蹤。您可以監控您的應用程式並蒐索您的日誌。

由於其 OpenTelemetry 支援和眾多集成,可以輕鬆收集和發送資料 😈。請注意,您需要設定 Postgresql 和 Clickhouse 資料庫。

 

Uptrace


9. HyperDX(日誌與追蹤)

HyperDX 是一個開源可觀察性平台,可讓您搜尋日誌並分析您的痕跡。您可以在一個平台上偵錯複雜的錯誤和使用者問題,而無需在多個工具之間跳轉。

 

HyperDX


10. 普羅米修斯(指標)

有趣的是,這個庫是以電影普羅米修斯命名的(當然我是在開玩笑),但這是我的第一個假設(無論如何,這是一部好電影)

雖然 Prometheus 和 Elasticsearch 看起來很相似,但實際上它們非常不同。

Prometheus 只關注基礎設施的指標(例如 CPU、記憶體使用情況、磁碟使用情況…),但不太適合高基數指標。 Quickwit比較專注於Logs和Trace; Elasticsearch 可以做日誌、追蹤和指標!

他們傾向於攜手合作。

Prometheus 提供了一個原始的 UI,這很好,但它與 Grafana 儀表板最搭配。

有趣的是,Prometheus 提供了名為 PromQL(Prometheus Query Language)的查詢語言

 

普羅米修斯


我們在 X 上連接嗎? :)

我在這裡

您是否使用其他一些優秀的工具來記錄和追蹤?

請在評論中讓我了解它們:)


原文出處:https://dev.to/nevodavid/top-10-tools-to-learn-whats-going-on-in-your-app-20em


共有 0 則留言


精選技術文章翻譯,幫助開發者持續吸收新知。

阿川私房教材:學程式,拿 offer!

63 個專案實戰,直接上手!
無需補習,按步驟打造你的面試作品。

立即解鎖你的轉職秘笈