見出し画像

【経営戦略】「Tableauサーバーの適切な台数を算出し、観測せよ」_観測編

詳しい説明が不要の方は、「現状と課題」までスキップ!



背景


金融機関で勤務します、yuと申します。
大量のデータを集約させ、見たいデータを即座に取り出し分析ができる環境を創ることをミッションに日々動いています。
今後の利用者増加を見越し、以下のミッションが与えられした。


ミッション


①適切な台数のTableauサーバーを用意せよ
②利用状況とリソース状況をリアルタイムモニタリングせよ

※本記事は②について記載します。
 ①については以下に記載してます。


前提


データレイク:AWS S3
データウェアハウス:Redshift
BIツール: Tableau
Tableau Server:AWS EC2
16core
メモリ128GB

Tableauサーバーの構成

2022/9 :
AWS EC2 1台構成

〜現在    :
AWS EC2 3台構成(内1台フロー専用機)
AWS EC2 5台待機(ライセンス購入未済)
※インフラ構築のリードタイムを短縮する為。
 ディスクは最小にし、従量課金はミニマムに。
※プロセス構成を調整することで一定の冗長化。


現状と課題


現状

  1. リソースが限られている(=予算が限られている)

  2. Viewer利用者の急増が見込まれる(13,000人)

  3. 障害が発生時、以下の動きを取る必要がある。

    「本番環境」の「ログを取得」し、Tableau社に原因究明するために「大量のログデータ」を送付し解析を待つ。

あるべき姿

  1. 潤沢な予算があり、利用者急増に対応可能で、リソースに余裕がある。

  2. インフラとして異常が起こった際に、自動復旧、早期発見し、原因究明が可能な状態。


対応方針
読込時間異常検知viewを作成


1.内部リポジトリからダッシュボードの読込時間算出

◆内部リポジトリのテーブル情報
https://tableau.github.io/tableau-data-dictionary/2022.3/data_dictionary.htm

readonlyにて接続


2.最新の読込時間閾値超過時に自動でメールを送信

上記の太字部分については以下にて詳細を記載する。


①読込時間の算出方法

【public._http_requests】
completed_at - created_at

②最新の読込時間の算出方法

・最新読込時刻
  {FIXED ワークブック名 : max(completed_at)}
・最新読込時刻判定(I/F)
  completed_at = 最新読込時刻
・最新読込時間
  IF 最新読込時刻 = true
   THEN 読込時間
   ELSE null
  END

③閾値の算出方法
 ※σの係数はパラメーターで操作可能にする

・標準偏差算出
  FIXEDとSTDEVP関数利用。
  ワークブック毎の標準偏差を算出。
・パラメーターでσの係数を作成
  1〜3まで、0.5刻み
  ※2σ=99.5%
   3σ=99.7%

④自動でメールを送信する設定について

③で作成した○σを閾値に、
閾値 < 最新読込時間
の場合「アラート」が発報するように設定。


まとめ


  • 限られた期間内にリリースが必要

  • 観測に必要な情報の洗い出し

  • 作成したワークブックの妥当性確認

  • ユーザー微調整が可能なように、パラメーターを多用

上記を達成する為に、tableau初心者が周囲に有識者が少ない環境で作成するのはかなりハードルが高かったが、無事にリリースできました。
パブリックでパブリッシュできないのが残念ですが参考になれば幸いです。

この記事が気に入ったらサポートをしてみませんか?