PowerApps PowerBIを使ってAzure上のゲームサーバデータを分析するっぽいアプリを作ってみた

##はじめに
ゲームデータの分析なんかできたら面白そうと思い立って簡単にできる分析アプリというものを作ってみたので、備忘録として書きます。

今回はSteamで配信している「7Days To Die」というゲームサーバをAzure上に構築し、そのゲームサーバのログや、サーバへのアクセスログなどをPowerBIで分析したレポートをPowerAppsで表示させるというものを作ってみました。

##１．システム構成
今回は以下の構成でやってみました。
![システム構成jpg.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/301050/30366589-0db9-2b62-fde2-84d63d742ba4.jpeg)


##２．PowerApps画面
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/301050/0cf008b5-faf3-5dba-d0e9-c60479cff73d.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/301050/5072cfb7-39fb-97e7-0330-9c63c35e72a5.png)
グラフをクリックするとPowerBIレポートが表示される

##３．PowerBIレポート
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/301050/83ab63dd-e52f-1a0e-3a73-375e7e726120.png)

※ダッシュボード
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/301050/9ccab73a-e4cd-fc83-d6c4-5aeab86e293f.png)

##４．簡単な構築手順
###① スマホからワンプッシュでVMを起動、停止するシステムを構築
以下の記事に構築手順を書いているので割愛します。
[AzureAutomationでスマホからazureVMを起動／停止⇒Discordに起動／停止の通知してみた](https://qiita.com/aki_4649/items/14ebed2a6418b91791bc)　

###② ゲームサーバログをLog Analyticsワークスペースに格納
####[1]Log Analyticsワークスペースを新規作成
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/301050/1ada96a2-c03b-bf3b-2aad-effbaf902d42.png)

####[2]詳細設定→カスタムログを選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/301050/9e5b2a86-3175-0b18-7697-bc203368c63d.png)

####[3]各種設定し、作成
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/301050/49451e9d-08cf-7cbf-ee06-27653ead5fe8.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/301050/dc88b3fa-5b86-72d1-5c6d-50eea3d22d3a.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/301050/7a220b5e-a80f-5caf-8cf0-24cc7e548767.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/301050/6f8785cf-9613-2175-f4a0-8c5976d6ffa7.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/301050/019f614e-77ad-1698-b801-122e13f3eb99.png)

####[4]log確認
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/301050/1e84bcdd-3b2d-ff4f-51cf-88653f1bcdf4.png)

作成したカスタムログに対してクエリを実行し、結果が返ってくることを確認
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/301050/2606b43a-6991-9ae7-a100-52d5f832bf16.png)

※LogAnalyticsワークスペースは、Azure Monitor ログのデータも格納できるため、PowerBIで分析するデータ元としては面白いかも。

###③ PowerBIレポートを作成
####[1]LogAnalyticsワークスペースでPowerBI用のクエリを保存
![bi2.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/301050/14f8ae78-7595-f043-f7c5-342c73356a63.jpeg)

####[2]PowerBI Desktopを開き、データを取得→空のクエリをクリック
![bi1.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/301050/74bb40cb-5ca6-fbe7-40f0-ff98378b8c19.jpeg)

####[3]新しいソース→空のクエリをクリック
![bi4.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/301050/97db1bbb-9841-d564-bd08-b977bf768ba9.jpeg)

####[4]詳細エディターをクリック
![bi5.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/301050/ba3c76fc-a975-6c89-3f6a-8a442f46642b.jpeg)

####[5]③ー[1]で保存したクエリをコピペし、完了をクリック
![bi6.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/301050/04eaa954-2dde-1626-1eb0-3493451306df.jpeg)

####[6]データが取得できることを確認し、ファイル→閉じて適用をクリック
※Azureの資格情報でサインインする必要がある。
![bi7.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/301050/6cfe12d5-f358-c8c5-f5a8-e1e9d20704cb.jpeg)

####[7]以上の手順でLogAnalyticsワークスペース内の必要なデータを取得し、好きなようにPowerBIレポートを作成。

####[8]レポートをPowerBIマイワークスペースに格納
ブラウザでPowerBIマイワークスペースにアクセスし、データを取得→ファイル→ローカルファイルで作成したPowerBIレポートを選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/301050/9bef4107-eef4-ec5d-e993-2d81d0487ba4.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/301050/15eabc39-4216-5d76-4d09-cc589d61aec7.png)

####[9]PowerAppsに表示するグラフをピン止めする
マイワークスペースを見るとダッシュボード、データセット、レポートができているので、ダッシュボードをクリックし、タイルをクリックする
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/301050/70a4e8c0-5f81-7eff-a047-a63d64f9717f.png)
レポートの画面に遷移するので、PowerAppsに表示したいグラフをピン止めする
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/301050/8aff77a4-4430-926f-107e-b72fe6210920.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/301050/5c23e454-0ad9-16b3-5a45-937beb646a49.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/301050/5443b5e8-49b6-d576-79d9-9fb93d584c41.png)

####[10]ダッシュボードの共有を行う
Power Appsで追加されたグラフは、Power BI上で共有してからのみアクセスが可能となるため
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/301050/bd293dad-1eb2-b486-1cd3-87f4399d61a9.png)

###④ Power Apps作成
####[1]アプリにグラフを挿入
新規アプリを作成→挿入→グラフ→Power BI タイルをクリック
![apps1.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/301050/ff602791-c5f9-b778-9ed6-516bfdc35f49.jpeg)

####[2]データを表示
③-[9]でピン止めしたタイルを選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/301050/29928d77-6e7a-b04f-a61d-1ff49aa9f30e.png)

####[3]レポートの表示
PowerAppsの再生ボタンを押して、グラフをクリックすると作成したレポートが表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/301050/f9702d63-ec95-7faa-4a5c-86ff5bcd032b.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/301050/c7879703-5f4a-579b-4d99-2dedfb4d02d6.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/301050/ade1a84b-22bc-3ae0-ddb6-b0e96c3c7f77.png)


##５．まとめ
１．Azure上にゲームサーバを構築し、データをLogAnalyticsワークスペースに格納
２．LogAnalyticsワークスペースのデータをPowerBIレポートに取り込む
３．PowerBIレポートをマイワークスペースへアップロード
４．PowerAppsでPowerBIグラフを挿入

##６．感想
今回はせっかくゲームサーバをAzure上で構築したので、データもAzure上に格納してみました。
本記事の内容はPowerAppsでPowerBIのレポートを見るだけのものを作っただけですが、ここまでくるまでに副産物でいろいろと学べました。
（過去に投稿したQiita記事の内容など）
あとは、学んだ事で何をしようか？こんな面白いことができるのでは？など妄想しながらやったり、自分がやったことを友人に話したりしてるとモチベーションが保てる事に気づけたことが大きな収穫だと思いました。（やったことが長続きしないタイプなので・・・）

##７．参考
[Azure Automation の概要](https://docs.microsoft.com/ja-jp/azure/automation/automation-intro)　
[Azure Monitor の Log Analytics の概要](https://docs.microsoft.com/ja-jp/azure/azure-monitor/logs/log-analytics-overview)　
[PowerAppsアプリにPower BIのグラフを追加する](https://memo.tyoshida.me/power-platform/powerapps/add-power-bi-graphs-to-powerapps/)