project-hatohol / hatohol

A unified manager of monitoring software
http://www.hatohol.org/
Other
89 stars 29 forks source link

[WebUI] Web timeout setting change #2514

Open a24-yamaguchi opened 7 years ago

a24-yamaguchi commented 7 years ago

現状デフォルト30秒に設定されているWebUIタイムアウト時間を変更できるようなUIが欲しい。

ネタとしてSNMP監視を上げますが、Zabbixを入れているPCのスペックの問題かもしれません。 最新データ画面でSNMP監視アイテムを持つZabbixサーバを選択すると ほぼなにも表示されず bootstrapのタイムアウトのダイアログが30秒毎に表示される。 Web側のタイムアウトを延ばせれば解決するケースもあるので、利便性を上げたい。

参考値として、Hatoholの最新データ画面で次のような監視ホスト、アイテムを持つZabbixを 表示する場合、WebUIタイムアウトを100秒程度に設定すると表示されるようになる。 ホスト数: 101 監視アイテム数: 5500 アクティブで監視

比較として、Hatoholの最新データ画面でSNMP監視アイテムを持たない次の監視スペックの Zabbixを表示させると、10秒かからずに最新データが表示される。 PC上のkvm(1core, mem:1GB, HDD:10GB) ホスト数: 90 監視アイテム数: 6500 パッシブで監視

jsを直接書き換えることができれば、次の変更で例として120秒に伸ばせる。 ただし、タイムアウトが長いと 画面上でなにか回っていないと使いにくそうではある。

diff -u /usr/libexec/hatohol/client/static/js/latest_view.js.000 /usr/libexec/hatohol/client/static/js/latest_view.js
--- /usr/libexec/hatohol/client/static/js/latest_view.js.000    2017-02-09 14:02:26.000000000 +0900
+++ /usr/libexec/hatohol/client/static/js/latest_view.js    2017-02-15 16:24:27.896587525 +0900
@@ -250,7 +250,7 @@
     if (!isNaN(page)) {
       self.currentPage = page;
     }
-    self.startConnection(getQuery(false, self.currentPage), updateCore);
+    self.startConnection(getQuery(false, self.currentPage), updateCore, undefined, {timeout: 120000});
     self.pager.update({ currentPage: self.currentPage });
     $(document.body).scrollTop(0);
   }

■発生環境、ver/rev 16.12

%%271

kz0817 commented 7 years ago

タイムアウトを変更することで、監視可能になるのであれば、そういう機能があったほうがいいんでしょうけど、システムワイドの値にするっていうのも抵抗ありますね。監視サーバごとに設定という感じなのかな。

kz0817 commented 7 years ago

比較として、次の監視スペックのzabbixだと10秒かからずに最新データが表示される。

zabbixで閲覧する場合に比べて、10倍近い時間がかかってるってことですよね。 ZABBIX APIの使い方が悪いのかな?むしろ取得方法の効率性についてきちんと 調べたほうがいい気がしています。

a24-yamaguchi commented 7 years ago

タイムアウトが起こる画面はだいたい決まっているので、画面ごとでも良いかもしれないですね。

zabbixで閲覧する場合に比べて、10倍近い時間がかかってるってことですよね。

いえ、Hatoholからみた2台のzabbixで、PCだけを監視しているZabbixと、 SNMPの監視アイテムがあるZabbixの比較で書いています。 あとで文面直しておきます。

a24-yamaguchi commented 7 years ago

Hatohol16.12の時点でタイムアウトが起こりやすい画面。

kz0817 commented 7 years ago

ただ、待って表示させるより、より高速にデータを取得できるようにクエリやインデックスの見なおしも検討したほうがよいですよね。単純にタイムアウトを長くするのは、根本解決ではないように思います。Zabbixでは、同等の情報をより短い時間で取得できるんですよね?

masa0612 commented 7 years ago

時間がかかっているのはプラグイン→ZabbixAPIへのリクエストがほとんどなんですよね。 (もちろんプラグイン,Hatoholサーバー側にも改良の余地は有りますが)

Zabbixが配置されているマシンのスペック依存と言っても問題ないと思います。 そうなった時に各監視サーバーごとにタイムアウトを設定できるようにするのは自然かなぁと。 APIの叩き方を変えると言ってもイマイチ他の案が思いつきませんし…