Couchbase 可觀測性最佳實踐

Couchbase 介紹

Couchbase 是一個開源的分布式 NoSQL 數據庫,專為高性能和高可擴展性設計,適用于實時數據處理的企業應用。它結合鍵值存儲和文檔數據庫的優勢,支持 JSON 文檔存儲,并通過 N1QL(類 SQL 查詢語言)提供強大查詢能力。Couchbase 采用分布式架構,利用 vBucket 實現數據分片和負載均衡,支持跨數據中心復制(XDCR),確保高可用性和數據一致性。其內存優先架構保證低延遲讀寫,適合高并發場景,如電商、廣告技術和物聯網。Couchbase 還提供全文搜索、分析和事件處理功能,支持多云和混合云部署,兼容 AWS、Azure 等平臺,并通過 SDK 支持多種語言(如 Java、Python)。其易用性和可擴展性使其成為構建現代化、數據密集型應用的理想選擇。

觀測云

觀測云是一款專為 IT 工程師打造的全鏈路可觀測產品,它集成了基礎設施監控、應用程序性能監控和日志管理,為整個技術棧提供實時可觀察性。這款產品能夠幫助工程師全面了解端到端的用戶體驗追蹤,了解應用內函數的每一次調用,以及全面監控云時代的基礎設施。此外,觀測云還具備快速發現系統安全風險的能力,為數字化時代提供安全保障。

部署 DataKit

登錄觀測云控制臺,點擊「集成」 -「DataKit」 - 「Linux」,復制命令并執行。

配置采集器

進入 DataKit 安裝目錄下的?conf.d/couchbase?目錄,復制?couchbase.conf.sample?并命名為?couchbase.conf

[[inputs.couchbase]]## Collect interval, default is 30 seconds. (optional)# interval = "30s"## Timeout: (defaults to "5s"). (optional)# timeout = "5s"## Scheme, "http" or "https".scheme = "http"## Host url or ip.host = "127.0.0.1"## Host port. If "https" will be 18091.port = 8091## Additional host port for index metric. If "https" will be 19102.additional_port = 9102## Host user name.user = "Administrator"## Host password.password = "xxxxxx"## TLS configuration.tls_open = false# tls_ca = ""# tls_cert = "/var/cb/clientcertfiles/travel-sample.pem"# tls_key = "/var/cb/clientcertfiles/travel-sample.key"## Disable setting host tag for this inputdisable_host_tag = false## Disable setting instance tag for this inputdisable_instance_tag = false## Set to 'true' to enable election.election = true# [inputs.couchbase.tags]# some_tag = "some_value"# more_tag = "some_other_value"

配置后重啟 DataKit。

datakit service -R

Couchbase 指標集

日志采集

Couchbase 的日志默認輸出到?/opt/couchbase/var/lib/couchbase/logs,我們可以通過主機采集日志的方式開啟日志采集器來采集日志。

在?logging.conf?中配置日志路徑。

關鍵指標

Metric中文描述TypeUnit
cmd_get該存儲桶每秒讀取(get操作)的次數。floatreq/s
cmd_set該存儲桶每秒寫入(set操作)的次數。floatreq/s
ops該存儲桶每秒的總操作量。floatreq/s
ep_cache_miss_rate該存儲桶每秒從磁盤讀取而非RAM的百分比(緩存未命中率)。floatpercent
get_hits獲取操作命中的次數。floatcount
systemstats_cpu_utilization_rate該服務器上所有可用核心的CPU使用率百分比。floatpercent
systemstats_mem_free該服務器上未使用的內存字節數。floatB
systemstats_mem_total該服務器上總共可用的內存字節數。floatB
mem_used已使用的內存量。floatB
ep_max_size該存儲桶可使用的最大內存量。floatB
disk_write_queue該存儲桶中等待寫入磁盤的項目數量。floatcount
curr_items該存儲桶中活躍vBucket的項目數量。floatcount
curr_items_tot該存儲桶中的項目總數。floatcount
ep_bg_fetched該存儲桶每秒從磁盤讀取的次數。floatreq/s
ep_resident_items_rate該存儲桶中緩存于RAM的所有項目的百分比(駐留率)。floatpercent
healthy該節點是否健康(布爾值,1表示健康,0表示不健康)。floatbool
rebalance_success重新平衡成功事件計數。floatcount
failover故障轉移(Failover)事件計數。floatcount
ep_dcp_xdcr_items_remaining該存儲桶中XDCR DCP待發送的項目數量。floatcount
xdc_ops該存儲桶每秒的XDCR操作總數。floatreq/s

場景視圖

登錄觀測云控制臺,點擊「場景」 -「新建儀表板」,輸入 “Couchbase”, 選擇 “Couchbase監控視圖”,點擊 “確定” 即可添加視圖。

日志分析

點擊「日志」菜單,可以看到相關日志信息。

監控器

節點 CPU 使用率過高

如果 Couchbase 節點的 CPU 使用率過高,可能會導致查詢處理速度變慢,甚至引發服務降級,影響應用程序的響應時間。告警可以在 CPU 使用率接近瓶頸時提醒運維團隊,采取措施如優化查詢、減少負載或擴展集群節點,以避免性能下降和潛在的服務中斷。

緩存未命中率過高告警

如果 Couchbase 桶的緩存未命中率過高,表明內存緩存效率低下,系統需要頻繁從磁盤讀取數據,這會導致查詢延遲增加,嚴重影響性能。告警可以在未命中率達到臨界值時提醒團隊,采取措施如增加桶的內存配額、優化數據訪問模式或擴展內存資源,以提升緩存命中率并保障服務性能。

節點不健康告警

如果 Couchbase 節點處于不健康狀態,可能會導致數據不可用或服務中斷,直接影響應用程序的正常運行。告警可以在節點出現問題時立即通知運維團隊,采取措施如檢查網絡、磁盤或進程狀態,必要時執行故障轉移或替換節點,以恢復集群的穩定性并確保服務連續性。

磁盤寫入隊列過長告警

如果 Couchbase 節點的磁盤寫入隊列過長,表明磁盤 I/O 壓力過大,可能導致數據寫入延遲,進而影響查詢性能和數據一致性。告警可以在隊列長度達到臨界值時提醒團隊,采取措施如升級磁盤硬件、優化寫入操作或重新分配數據,以減輕 I/O 壓力并確保系統性能穩定。

總結

Couchbase 接入觀測云的最佳實踐能夠實現對 Couchbase 集群的全面監控與管理。通過集成,觀測云可以可視化 Couchbase 的性能指標(如操作速率、緩存命中率、內存使用量),并集中展示日志數據,幫助用戶快速了解系統狀態。用戶還能基于這些數據創建自定義視圖和監控器,實時掌握關鍵指標的異常變化。此外,結合日志分析,客戶可以高效排查問題,提升系統運維效率。這種方式適用于不同場景,助力用戶優化 Couchbase 性能并確保服務穩定性。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/91666.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/91666.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/91666.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

構建基于MCP的LLM聊天機器人客戶端開發指南

引言 在當今人工智能技術快速發展的時代,大型語言模型(LLM)已成為構建智能應用的核心組件。MCP(Modular Conversational Platform)作為一個強大的對話平臺,為開發者提供了將LLM能力與自定義工具集成的標準化方式。本文將詳細介紹如何使用Python開發一個…

接口測試的原則、用例與流程詳解

🍅 點擊文末小卡片,免費獲取軟件測試全套資料,資料在手,漲薪更快 一、接口的介紹軟件測試中,常說的接口有兩種:圖形用戶接口(GUI,人與程序的接口)、應用程序編程接口&am…

ubuntu 22.02 帶外進單用戶拯救系統

不停地按 F7 ,然后進到 menu ,選擇 ubuntu ,然后按下 ESC ,然后瞬間會刷一個 ubuntu 的選項(默認是在第一的位置,直接快速按下 e)即可進入單用戶模式。 找到類似 linux /boot/vmlinuz-xxx rootU…

Java-75 深入淺出 RPC Dubbo Java SPI機制詳解:從JDK到Dubbo的插件式擴展

點一下關注吧!!!非常感謝!!持續更新!!! 🚀 AI篇持續更新中!(長期更新) AI煉丹日志-30-新發布【1T 萬億】參數量大模型!Kim…

【橘子分布式】gRPC(編程篇-上)

一、簡介 我們之前學習了grpc的一些理論知識,現在我們開始正式進入編程環節。 我們的項目結構和之前的thrift結構還是一樣的,一個common,一個client,一個server。只不過在grpc這里common它一般叫做api模塊。還是放置一些公共的實體類&#x…

IOS 18下openURL 失效問題

突然有一天有玩家反饋說應用打開外部連接打不開了,于是查了一下,報錯:BUG IN CLIENT OF UIKIT: The caller of UIApplication.openURL(_:) needs to migrate to the non-deprecated UIApplication.open(_:options:completionHandler:). Force…

前端面試題(React 與 Vue)

目錄 一、React 函數組件 Fiber架構 組件重新渲染 組件通信 為什么不能在if中使用hook useEffect與useLayoutEffect區別 性能優化hooks 受控組件與非受控組件 redux與zustand區別 二、Vue vue2與vue3區別 生命周期 computed與watch區別 v-if與v-show區別 v-mod…

大模型格式

目錄 大模型格式: ollma 可以加載gguf ChatGPT 說: 🔍 什么是 GGUF? 大模型格式: Ollama 模型格式只能運行已打包成 .gguf 格式的模型,或通過其 Modelfile 方式構建 ModelScope 模型格式大多使用 Hug…

數據結構 棧(1)

1. 棧的概念和結構之前幾篇我們分別講解了順序表和單鏈表的內容,今天我們又來學習一個新的關于數據結構的內容--- 棧 。棧:棧也屬于線性表 , 但它是一種特殊的線性表,其只允許在固定的一端進行插入和刪除元素操作。進行數據插入和刪除操作的一…

【Android代碼】繪本翻頁時通過AI識別,自動通過手機/pad朗讀繪本

核心功能: 打開攝像頭(可支持外接攝像頭)檢測翻頁(后續考慮添加圖像差異算法)拍照后用 識圖自動用 TextToSpeech 朗讀文字內容 📌 說明:使用了 CameraX(Android Jetpack)…

園區IPv6規劃與部署

?今天我將圍繞“園區IPv6規劃與部署”這一主題,結合行業趨勢、技術難點和實際案例,與大家分享一套可落地的規劃方法論。?在開始前,我想先問大家一個問題:?如果現在讓你給一個新建園區設計網絡,你會優先考慮IPv4還是…

mingw11.2+opencv4.12 cmake contrib編譯

第一次Configure之后,會出現不少錯誤,主要是因為文件沒辦法正常下載引起的,因為之前編譯過vs2022 ,緩存里面有應該下載的文件了,所以這次沒有錯誤,如果你第一次Configure有下載錯誤,可以下載以下的文件飛書 Docs Link:…

免費MCP服務:Excel CSV 轉 JSON MCP by WTSolutions 文檔

簡介 Excel 轉 JSON MCP(模型上下文協議)提供了一個標準化接口,用于通過模型上下文協議將 Excel 和 CSV 數據轉換為 JSON 格式。此 MCP 實現提供了兩個專門用于數據轉換的工具: excel_to_json_mcp_from_data:轉換制表…

應用集成體系深度解析:從數據互通到流程協同

一、應用集成核心概念框架 #mermaid-svg-0V3XAJsofKi2qCa7 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-0V3XAJsofKi2qCa7 .error-icon{fill:#552222;}#mermaid-svg-0V3XAJsofKi2qCa7 .error-text{fill:#552222;s…

深入解析 AWS RDS Proxy

在當今微服務架構與無服務器計算快速發展的背景下,數據庫連接成為許多應用系統的性能瓶頸。傳統RDS實例在處理大量短連接請求時,往往面臨連接資源耗盡、連接建立耗時過高等問題。為了解決這一挑戰,AWS 推出了 RDS Proxy 服務,通過…

深度剖析 TDMQ RabbitMQ 版經典隊列底層存儲機制

導語 RabbitMQ 作為開源消息隊列的標桿產品,憑借靈活的路由機制與高可用設計,支撐著海量業務場景的消息流轉。而經典隊列(Classic Queue) 作為 RabbitMQ 最基礎、應用最廣泛的隊列類型,其底層存儲機制直接決定了消息處…

Spring AI開發智能客服(Tool calling)

文章目錄前言1 思路分析2 工程結構搭建1_數據庫表2_引入依賴3_基礎代碼3 定義 Tool1_分析查詢條件2_定義Function4 系統提示詞5 配置ChatClient6 編寫Controller7 測試8 Tool calling 底層組件1_ToolCallback2_ToolDefinition3_ToolCallingManager4_ResultConverter5_ToolConte…

設計模式筆記_結構型_適配器模式

1.適配器模式介紹適配器模式是一種結構型設計模式,它允許不兼容的接口協同工作。適配器模式的核心思想是將一個類的接口轉換成客戶期望的另一個接口,使得原本由于接口不兼容而不能一起工作的類可以一起工作。你可以將其想象成一個“轉換插頭”——假設你…

事務隔離:從鎖實現到MVCC實現

文章目錄事務隔離:從鎖實現到MVCC實現事務四大特性事務隔離級別鎖實現概念實現事務隔離MVCC實現當前讀與快照讀實現事務隔離Read View總結事務隔離:從鎖實現到MVCC實現 面試的時候被面試官問到:你這個項目為什么使用了可重復讀而不選擇讀已提…

小架構step系列18:工具

1 概述 在寫代碼的時候,有很多通用的、與業務無關邏輯,這些一般寫成工具類方法。這些工具類方法慢慢地被積累起來,變成了開源包,可以直接使用開源包,而不是自己再花時間來重復造這些輪子。 這些工具類的開源包比較多…