TDengine 介紹
TDengine 是一款開源、高性能、云原生的時序數據庫,專為物聯網、車聯網、工業互聯網、金融、IT 運維等場景優化設計。它不僅提供了高效的數據存儲和查詢功能,還帶有內建的緩存、流式計算、數據訂閱等系統功能,能大幅減少系統設計的復雜度,降低研發和運營成本。
觀測云
觀測云是一款專為 IT 工程師打造的全鏈路可觀測產品,它集成了基礎設施監控、應用程序性能監控和日志管理,為整個技術棧提供實時可觀察性。這款產品能夠幫助工程師全面了解端到端的用戶體驗追蹤,了解應用內函數的每一次調用,以及全面監控云時代的基礎設施。此外,觀測云還具備快速發現系統安全風險的能力,為數字化時代提供安全保障。
部署 DataKit
DataKit 是一個開源的、跨平臺的數據收集和監控工具,由觀測云開發并維護。它旨在幫助用戶收集、處理和分析各種數據源,如日志、指標和事件,以便進行有效的監控和故障排查。DataKit 支持多種數據輸入和輸出格式,可以輕松集成到現有的監控系統中。
登錄觀測云控制臺,在「集成」 - 「DataKit」選擇對應安裝方式,當前采用 Linux 主機部署 DataKit。
采集器配置
進入 DataKit 安裝目錄下的?conf.d/db
?目錄,復制?tdengine.conf.sample
?并命名為?tdengine.conf
。示例如下:
[[inputs.tdengine]]## adapter restApi Addr, example: http://taosadapter.test.com (Required)adapter_endpoint = "http://<FQND>:6041"user = "<userName>"password = "<pw>"## log_files: TdEngine log file path or dirName (optional).## log_files = ["tdengine_log_path.log"]## pipeline = "tdengine.p"## Set true to enable electionelection = true## add tag (optional)[inputs.tdengine.tags]## Different clusters can be distinguished by tag. Such as testing,product,local ,default is 'testing'# cluster_name = "testing"# some_tag = "some_value"# more_tag = "some_other_value"
配置好后,重啟 DataKit?即可。
關鍵指標
- 標簽
標簽名 | 描述 |
---|---|
client_ip | 表示與 TDengine 進行交互的客戶端的 IP 地址。通過該標簽可以追蹤不同客戶端對數據庫的訪問行為,有助于排查與特定客戶端相關的問題,比如訪問權限、連接異常等情況。 |
cluster_name | 代表 TDengine 所在的集群名稱。在分布式的 TDengine 環境中,通過該標簽可以區分不同的集群,方便對不同集群的資源使用、性能等方面進行管理和監控。 |
host | 表示 TDengine 服務所在的主機信息。通過該標簽可以了解數據庫運行的物理或虛擬主機環境,在進行資源分配、性能優化以及故障排查時,主機信息是重要的參考依據。 |
region | 代表 TDengine 服務所在的區域。在多區域部署的情況下,該標簽有助于對不同區域的數據庫進行分類管理和統計分析,比如對比不同區域的資源使用情況、性能表現等。 |
zone_id | 指 TDengine 服務所在的區域標識。在一些分布式架構中,可能會將不同的區域劃分為不同的 zone,該標簽可以用于區分和管理不同 zone 中的數據庫實例,有助于實現數據的分區存儲和負載均衡等功能。 |
- 指標列表
td_adapter
指標名 | 字段類型 | 描述 |
---|---|---|
client_ip_count | float | 表示連接到 TDengine 數據庫的客戶端 IP 地址的數量。該指標可用于監控數據庫的客戶端訪問情況,通過觀察其變化,能了解到有多少不同的客戶端在與數據庫進行交互,數量的異常增長或減少可能暗示著業務訪問模式的改變或存在潛在的安全問題。 |
cpu_percent | float | 指 TDengine 進程占用 CPU 的百分比。此指標直觀地反映了 TDengine 對 CPU 資源的使用程度,過高的 CPU 百分比可能導致數據庫性能下降,影響數據的讀寫操作效率,可據此判斷是否需要對數據庫進行優化或調整系統資源分配。 |
mem_percent | float | 是 TDengine 進程使用內存占系統總內存的百分比。它能幫助我們了解 TDengine 在內存使用方面的情況,當該百分比接近或達到 100% 時,可能會引發內存不足的問題,進而影響數據庫的正常運行,需要及時采取措施進行內存管理或優化。 |
total_req_count | float | 代表 TDengine 數據庫接收到的請求總數。這個指標綜合反映了數據庫的工作負載情況,請求總數的變化可以體現出業務對數據庫的訪問頻繁程度,若請求總數突然大幅增加,可能需要考慮數據庫的性能瓶頸和擴展性問題;若請求總數過少,則可能表示業務活動不活躍或存在異常。 |
td_node_usage
指標名 | 字段類型 | 描述 |
---|---|---|
cpu_cores | float | 表示 TDengine 運行所在服務器的 CPU 核心數量。該指標反映了服務器的 CPU 硬件資源基礎,可用于評估系統的計算能力上限。 |
cpu_engine | float | 指 TDengine 引擎占用的 CPU 資源比例。該指標用于監控 TDengine 引擎在運行過程中對 CPU 的使用情況,若該值過高,可能會影響引擎的性能和響應速度。 |
cpu_system | float | 代表系統整體的 CPU 使用率,包括 TDengine 引擎及其他運行在該服務器上的進程。此指標能讓我們了解服務器的整體 CPU 負載情況,判斷是否存在資源競爭問題。 |
disk_percent | float | 是磁盤空間的使用百分比,即已使用磁盤空間占總磁盤空間的比例。該指標可幫助我們監控磁盤的使用情況,及時發現磁盤空間不足的問題。 |
disk_total | float | 表示服務器上用于 TDengine 存儲數據的磁盤總容量大小。了解該指標有助于規劃數據存儲和評估磁盤擴容需求。 |
disk_used | float | 指當前已被 TDengine 及相關進程使用的磁盤空間大小。結合?disk_total ?指標,可以直觀地了解磁盤的剩余可用空間。 |
io_read_taosd | float | 衡量 TDengine 進程從磁盤讀取數據的 I/O 速率。該指標反映了 TDengine 對磁盤讀取操作的頻繁程度和速率,過高的讀取速率可能會導致磁盤 I/O 瓶頸。 |
io_write_taosd | float | 表示 TDengine 進程向磁盤寫入數據的 I/O 速率。該指標體現了 TDengine 對磁盤寫入操作的頻繁程度和速率,過高的寫入速率同樣可能引發磁盤 I/O 問題。 |
mem_engine | float | 指 TDengine 引擎使用的內存量大小。監控該指標有助于了解 TDengine 引擎的內存占用情況,避免因內存不足導致性能下降。 |
mem_engine_percent | float | 是 TDengine 引擎使用的內存量占系統總內存的百分比。該指標能更直觀地反映 TDengine 引擎在內存使用方面的占比情況。 |
mem_system | float | 表示系統當前可用的內存量。該指標可用于判斷服務器的整體內存資源是否充足,以及是否需要進行內存優化或擴容。 |
mem_total | float | 指服務器的總內存容量大小。了解該指標有助于評估系統的內存資源上限,為合理分配內存提供依據。 |
net_in | float | 代表服務器的網絡流入帶寬,即單位時間內從外部網絡流入服務器的數據量。該指標可用于監控服務器的網絡接收情況,判斷是否存在網絡擁塞或異常流量。 |
net_out | float | 表示服務器的網絡流出帶寬,即單位時間內從服務器發送到外部網絡的數據量。該指標可用于監控服務器的網絡發送情況,評估網絡使用效率。 |
uptime | float | 指 TDengine 服務的連續運行時間。該指標反映了 TDengine 服務的穩定性,較長的運行時間通常表示服務比較穩定。 |
vnodes_num | float | 表示 TDengine 集群中的虛擬節點數量。虛擬節點是 TDengine 中數據存儲和處理的基本單元,該指標可用于評估集群的規模和數據處理能力。 |
td_cluster
指標名 | 字段類型 | 描述 |
---|---|---|
connections_total | float | 表示當前與 TDengine 數據庫建立的總連接數。該指標可用于監控數據庫的并發訪問情況,連接數過高可能導致性能下降,過低則可能表示業務訪問不活躍。 |
database_count | float | 指 TDengine 數據庫中創建的數據庫總數。該指標能反映系統的數據存儲組織規模,數據庫數量的變化可能影響系統的整體管理和性能。 |
dnodes_alive | float | 代表當前處于活躍狀態的數據節點數量。數據節點是 TDengine 分布式架構中負責存儲和處理數據的節點,該指標可用于監控數據節點的可用性和健康狀況。 |
dnodes_total | float | 表示 TDengine 集群中數據節點的總數量。結合?dnodes_alive ?指標,可以判斷有多少數據節點處于異常狀態。 |
master_uptime | float | 指 TDengine 主節點的連續運行時間。主節點在集群中起著關鍵的管理和協調作用,較長的運行時間通常表示系統的穩定性較好。 |
mnodes_alive | float | 表示當前處于活躍狀態的管理節點數量。管理節點負責集群的元數據管理和調度,該指標可用于監控管理節點的可用性。 |
mnodes_total | float | 是 TDengine 集群中管理節點的總數量。與?mnodes_alive ?對比,可了解管理節點的健康情況。 |
table_count | float | 指 TDengine 數據庫中創建的表的總數。表是數據存儲的基本單位,該指標反映了數據的結構化程度和存儲規模。 |
vgroups_alive | float | 代表當前處于活躍狀態的虛擬組(VGroup)數量。VGroup 是 TDengine 中數據存儲和復制的基本單位,該指標可用于監控數據存儲和復制的可用性。 |
vgroups_total | float | 表示 TDengine 集群中虛擬組的總數量。結合?vgroups_alive ?指標,可以判斷有多少 VGroup 處于異常狀態。 |
vnodes_alive | float | 表示當前處于活躍狀態的虛擬節點(VNode)數量。VNode 是 VGroup 中的具體存儲單元,該指標可用于監控 VNode 的可用性和健康狀況。 |
vnodes_total | float | 指 TDengine 集群中虛擬節點的總數量。通過與?vnodes_alive ?對比,可了解 VNode 的整體健康情況。 |
場景視圖
登錄觀測云控制臺,點擊「場景」 -「新建儀表板」,輸入 “TDengine 監控視圖”, 選擇 “TDengine 監控視圖”,點擊 “確定” 即可添加視圖。
監控器(告警)
TDengine 內存過高檢測
指標:mem_engine_percent
簡要描述:指 TDengine 引擎使用的內存占系統總內存的百分比。通過監控這個指標,可以了解引擎在內存使用方面的占比,避免因內存過度占用而引發性能問題。當 mem_engine_percent 接近 100% 時,可能會出現內存不足,導致數據庫響應緩慢甚至無法正常工作。
告警配置如下圖所示:
TDengine 實例存活檢測
指標:cpu_engine
簡要描述:uptime 記錄了從 TDengine 服務節點最近一次啟動開始,到當前時刻所持續運行的時長。它反映了服務節點在一段時間內保持穩定運行的狀態,是衡量服務穩定性的一個重要指標。
告警配置如下圖所示:
TDengine DISK 過高檢測
指標:disk_percent
簡要描述:代表磁盤空間的使用百分比,即已用磁盤空間占總磁盤空間的比例。磁盤空間是數據庫存儲數據的基礎,disk_percent 過高意味著磁盤快被占滿,可能影響新數據的寫入和查詢操作的性能。當該指標達到一定閾值(如 80% 或 90%)時,就需要考慮清理無用數據或擴展磁盤空間。
告警配置如下圖所示:
總結
觀測云是一款全鏈路可觀測產品,集成了基礎設施監控、應用程序性能監控以及日志管理等功能。借助開源工具 DataKit,用戶可以輕松實現對 TDengine 數據的采集,僅需通過簡單配置文件并重啟系統,即可快速完成相關設置。
TDengine 提供了豐富的關鍵指標,涵蓋客戶端訪問、資源使用、集群狀態以及請求處理等多個方面。在觀測云控制臺中,用戶可以便捷地新建“TDengine 監控視圖”。同時,針對 TDengine 的重要指標,如內存使用率(mem_engine_percent)、實例存活情況(uptime、cpu_engine)、磁盤空間占用率(disk_percent)等,用戶可以靈活設置告警規則。當這些指標達到特定閾值,例如內存使用率接近 100%、服務運行時間異常或磁盤空間占比過高時,系統將及時發出告警,助力運維人員保障 TDengine 的穩定高效運行。