2017-09-27 72 views
0

不確定在這裏是否有任何專業的DataDog用戶,但我希望。爲單個主機的模板創建所有主機的DataDog儀表板

我已經創建了一個模板DataDog儀表板模板,該模板通過docker容器捕獲主機的內存使用情況。

「主機名」出現在5個左右的地方:

{ 
    "viz": "timeseries", 
    "status": "done", 
    "requests": [ 
    { 
     "q": "max:docker.mem.rss{host:are-P-swarmB-swarm-node-1} by {container_name}", 
     "aggregator": "avg", 
     "conditional_formats": [], 
     "type": "area", 
     "style": { 
     "palette": "dog_classic" 
     } 
    }, 
    { 
     "q": "max:system.mem.total{host:are-P-swarmB-swarm-node-1}", 
     "conditional_formats": [], 
     "type": "line", 
     "style": { 
     "palette": "warm", 
     "type": "dashed", 
     "width": "normal" 
     } 
    }, 
    { 
     "q": "max:system.mem.total{host:are-P-swarmB-swarm-node-1} * 0.8", 
     "conditional_formats": [], 
     "type": "line", 
     "style": { 
     "palette": "orange", 
     "type": "dashed", 
     "width": "normal" 
     } 
    }, 
    { 
     "q": "max:system.mem.total{host:are-P-swarmB-swarm-node-1} - max:system.mem.usable{host:are-P-swarmB-swarm-node-1}", 
     "conditional_formats": [], 
     "type": "line", 
     "style": { 
     "palette": "orange", 
     "type": "dotted", 
     "width": "thin" 
     } 
    } 
    ], 
    "autoscale": true, 
    "yaxis": { 
    "includeZero": false 
    } 
} 

我試圖建立一個儀表盤,現在顯示此模板我的每20臺左右的主機,但它是一個痛苦的克隆圖表並在所有5個地方編輯主機名的過程。每當我對模板進行更改時,都必須將更改痛苦地粘貼到每個主機圖表中,並在適用的位置更改主機名稱。

有沒有一種方法可以設置此模板(可能使用變量代替主機名)並讓儀表板自動爲此模板中的每個主機創建圖表?如果沒有,有沒有辦法可以編寫腳本?

謝謝。

+0

嗯,在我看來,你想要的其實是Datadog的儀表板模板變量功能?這樣你就可以設置一個儀表板,並輕鬆地在容器/主機等之間切換。你可以在這裏找到更多的信息:https://docs.datadoghq.com/guides/templating/ – stephenlechner

+0

那麼,我的單個主機的儀表板是非常小的(一個圖表) - 我想同時監視所有主機,而不是有一個變量,我必須手動更改以查看每個主機。 – Alain

回答

2

那麼,你可能使用Datadog API腳本創建20個獨特的儀表板,它們共享相同的內容,但與不同的主機。這是API文檔的一部分,將有助於(通過示例!)for Timeboards,以及這一個for Screenboards

也就是說,我個人發現20個儀表板在我自己的Datadog帳戶中有點混亂/笨拙。相反,如果是我,我會嘗試(A)找到儀表板模板變量的聰明用法(例如,集羣標籤,主機標籤等),或者(B)按每個主機標籤分組並且應用the "top()" function某種程度上,這樣我才能夠看到最極端價值的主機。但是這當然取決於你:)

+0

謝謝。我已經開始對腳本進行嘗試,但是「頂部」功能不是我玩過的功能 - 這將會很有用。 – Alain