zkat’s diary

技術ブログ

PythonのPlotly DashでJP DNSサーバーのRTT等を可視化するウェブアプリを作った

概要

フロントエンド周りの勉強を目的に、Plotly Dash*1を用いて 権威DNSサーバーのRTT等の可用性を可視化するウェブアプリケーションを作ってみました。

rtt.dns.mtcq.jp

f:id:zkat:20190830002617j:plain
graph

github.com

実装

実装はシンプルで、下記のような感じ。

  • dnspython*2を使ってDNSのクライアントを書きました
  • SOAレコードを定期的に問い合わせて結果をinfluxdbに書き込みます
  • influxdbの結果をPlotly Dashで表示します。
  • NSIDを引いているので、どのエニーキャストノードが応答してるか分かります。
  • プローブ(問い合わせを定期的に実施しているノード)が地理的にどの辺にあるか地図にプロットしてます。(東京のプローブは、さくらインターネットVPSです。AS番号も表示してます。)

f:id:zkat:20190830004139j:plain
probe-map

その他

DNSをモニタリングするツールは、そもそもいろいろあったります。

atlas.ripe.net

www.dnsperf.com