DatadogでDatadogpyを使ってコンソールからのDashboard(Screenboard)のテキストオブジェクトを書き換える
Pocket

仕事でDatadogを使用しているのだが、Dashboard上でクライアントから取得した文字列(プログラムのバージョンとか)を表示させたいので少し調べてみた。
で、以下のようなアドバイスを頂いたので実際にやってみる事にした。

なお、DatadogではすでにApplicationKeyを発行済みとする。

 

ふむぅ…まず、Datadogpyというパッケージを使用する必要があると。
じゃあ、これをpipからインストールしてみよう。

yum install python-pip
pip install datadog

 

パッケージインストール後、まず以下のコマンドでDashboardの設定ファイルをダウンロードする。

dog --api-key API_KEY --application-key APP_KEY screenboard pull DashboardID(ダッシュボードのURLに記載) 出力先PATH(JSONファイル)
[root@test-node ~]# dog --api-key b93XXXX1c7e3cd9eXXXXcad04XXX3689 --application-key XXXXfe9f0c9XXXXc10bfbXXXXc6fc6XXXX446791 screenboard pull XXXXX test.jq
hostname: Name or service not known
XXXXX test.jq
[root@test-node ~]# cat test.jq
{
"board_title": "test",
"read_only": false,
"board_bgtype": "board_graph",
"created": "2016-04-17T05:11:07.544282+00:00",
"original_title": "",
"modified": "2016-04-17T05:50:00.013083+00:00",
"height": 80,
"width": "100%",
"template_variables": [],
"widgets": [
{
"board_id": XXXXX,
"title_size": 16,
"title": true,
"color": "#4d4d4d",
"text": "test-2",
"title_align": "left",
"text_align": "left",
"title_text": "",
"height": 7,
"width": 30,
"y": 1,
"x": 2,
"font_size": "auto",
"type": "free_text"
},
{
"board_id": XXXXX,
"title_size": 16,
"title": true,
"title_align": "left",
"title_text": "",
"height": 13,
"tile_def": {
"viz": "timeseries",
"requests": [
{
"q": "avg:system.cpu.user{host:test-node}",
"conditional_formats": [],
"type": "line"
}
]
},
"width": 47,
"timeframe": "1h",
"y": 9,
"x": 2,
"legend_size": "0",
"type": "timeseries",
"legend": false
}
],
"shared": false,
"id": XXXXX,
"title_edited": false
Sponsored Links

で、書き換えたいテキストファイルの中身(上の場合、「test-2」となっている箇所)をjqやsedなどで書き換え、以下のコマンドで再度設定ファイルをアップロードする。
※widgetsの配列番号は環境ファイルに合わせる事

jq '.widgets[0].text = "書き換え後の文字列"' <<< $(cat JSONファイル) > JSONファイル
dog --api-key API_KEY --application-key APP_KEY screenboard push JSONファイル

 

これで、Dashboardのテキストオブジェクトの値が書き換わっているはずだ。
できればdd-agent側で文字列も送信させたいのだけど、現状はこの方法が一番良いのではなかろうか。

 

Pocket

Written by blacknon

インフラ系のSE。一時期はプログラマ。 仮想化とオープンソースに興味あり。一日中寝てたい今日このごろ。 スペインとかで働きたいなぁ…(シエスタがあるので)

Leave a Comment

メールアドレスが公開されることはありません。

*