GoogleフォームとSplunkを組み合わせてテニス試合結果分析を行う

はじめに
---
- [Googleフォーム](https://www.google.com/intl/ja_jp/forms/about/)は自作アンケートサイトを作る上で簡単
- １回ぽっきりのイベントアンケートであればGoogleアンケート標準の機能でレポート可視化ができる。が。
- 今回、個人的な趣味の記録を残してヒストリカル分析をするためにGoogleアンケートのアプリケーションを利用し、入力したデータをsplunkに渡して、慣れた[Splunk](https://www.splunk.com/en_us/download/splunk-enterprise.html?utm_campaign=google_apac_jpn_en_search_brand&utm_source=google&utm_medium=cpc&utm_content=Splunk_Enterprise_Demo&utm_term=splunk&_bk=splunk&_bt=386199174129&_bm=e&_bn=g&_bg=61532397508&gclid=EAIaIQobChMIkfjFuriB5QIVxmkqCh3fMQrFEAAYASAAEgKRXPD_BwE)でダッシュボードを作成

成果物イメージ
---
### Googleフォーム

- シンプルながら必要最低限の入力フォームを用意。入力結果がGDrive上のspreadsheetに保存されていく。
<img width="788" alt="スクリーンショット 2019-10-04 10.22.59.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/185759/a11c288d-46a7-c521-80b0-8668be9345d2.png">

### Splunk上のダッシュボード

- spreadsheetを便利な[連携add-on](https://splunkbase.splunk.com/app/2630/)で取込、あとは見たい形にダッシュボードを作成! 
- これで毎回毎回記録を残しておけばテニスのスキル向上に役立てる（はず）！
<img width="1668" alt="スクリーンショット 2019-10-04 10.23.06.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/185759/6b3a3238-bc18-7c0f-1dd5-e97d2495dbfc.png">


使うもの
---
- Splunk環境
    - Splunkマシン：[Splunkダウンロードサイト](https://www.splunk.com/en_us/download/splunk-enterprise.html?utm_campaign=google_apac_jpn_en_search_brand&utm_source=google&utm_medium=cpc&utm_content=Splunk_Enterprise_Demo&utm_term=splunk&_bk=splunk&_bt=386199174129&_bm=e&_bn=g&_bg=61532397508&gclid=EAIaIQobChMIkfjFuriB5QIVxmkqCh3fMQrFEAAYASAAEgKRXPD_BwE)
        - ※フリー版で充分
    - Add-on：[Google Import/Export](https://splunkbase.splunk.com/app/2630/)
- Googleフォーム
    - フォーム自体は無料で使えるが、GDriveからAPI経由でSplunkにデータを渡すためには、GCPサービスを利用する必要あり。無償のトライアルもありそう。
        - 参考：[これから始めるGCP（GCE）　安全に無料枠を使い倒せ](https://qiita.com/Brutus/items/22dfd31a681b67837a74)


手順
---
### 以下のステップで紹介
1. Googleフォームの準備
2. Googleフォーム結果（spreadsheet）の共有設定を有効化
3. Splunkの準備
4. データの連携
5. データの可視化

## 1. Googleフォームの準備
- https://www.google.com/intl/ja_jp/forms/about/
- Googleフォームを使ってみる
<img width="1659" alt="スクリーンショット 2019-10-04 10.34.24.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/185759/fb0c2ec1-a5d7-cae4-27a6-e41a3aa77c14.png">

- 任意のアンケートフォームを作成
    - **ポイント：Splunkで検索しやすいように質問項目は英語で簡素化したほうが楽。日本語であれば|evalや|renameでサーチしながら変更も可能。** <img width="1304" alt="スクリーンショット 2019-10-04 10.36.25.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/185759/457e916b-18df-ade4-a45a-aff85710e90c.png">

- 作成したアンケートに回答すると、結果がspreadsheetに記録されています。このアイコンをクリック。
<img width="931" alt="スクリーンショット 2019-10-04 10.41.31.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/185759/75a7e885-fb7e-cebe-ead7-3ba052c9ef09.png">

- spreadsheetの中身を確認
<img width="1594" alt="スクリーンショット 2019-10-04 10.43.26.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/185759/52244810-8671-b07c-11e9-f4fe1ae18c7e.png">


## 2. Googleアンケート結果（spreadsheet）の共有設定を有効化
- 続いてGCPコンソールに移動して、spreadsheetにアクセスしてSplunkからデータ収集を可能にするためにAPIの設定を行います。
- API有効化、アクセス権の設定は以下記事を参考にしてください。
    - [Google Spread Sheetの情報をSplunkのlookupに定期的に取り込む](https://qiita.com/odorusatoshi/items/2d00edbd074c9b267195)

## 3. Splunkの準備
- SplunkのインストールはWindows,Linux, Macと幅広くインストール可能です。今回であればノートPC上でも充分利用できる負荷のかからない分析です。
<img width="1439" alt="スクリーンショット 2019-10-04 10.49.39.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/185759/9eac69b1-84a8-7487-70bd-82d7091452d4.png">
<img width="1431" alt="スクリーンショット 2019-10-04 10.49.53.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/185759/f6853511-7d62-129f-29cc-e8672f771dd7.png">

## 4. データの連携
- インストールしたsplunkにGoogle Spread SheetをAPI経由でインポートするAdd-onをインストール/設定していきます。手順は同じく、以下記事を参考にしてください。
    - [Google Spread Sheetの情報をSplunkのlookupに定期的に取り込む](https://qiita.com/odorusatoshi/items/2d00edbd074c9b267195)

- 参考：５分間隔でデータを取り込む場合の設定内容
<img width="1070" alt="スクリーンショット 2019-10-04 11.17.21.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/185759/627a0b21-13f3-a153-a1e4-1c1b793d233c.png">

- モバイルから記録を入力
<img width="414" alt="IMG_DDC065902EFB-1.jpeg" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/185759/266eb5bb-ad44-dfea-6ee4-a8fe28c09865.jpeg">

- しばらくするとデータがSplunkに取り込まれていることを確認
`|inputlookup tennis_questionnaire
`
- データ来てます！
<img width="1670" alt="スクリーンショット 2019-10-04 11.19.55.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/185759/3db07406-bab8-5ef0-97bf-8ba64f6930cd.png">


## 5. データの可視化
- あとは好きなようにサーチをして可視化

#### 例： 通算成績を可視化する場合
- サーチ

```shell-session
|inputlookup tennis_questionnaire
|chart count over date by won
| addcoltotals labelfield=date
|search date=total
```
- 集計結果
<img width="1133" alt="スクリーンショット 2019-10-04 11.26.12.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/185759/598dae8a-6a10-65bd-8c51-7e5f6957dc47.png">

- グラフ化
<img width="1130" alt="スクリーンショット 2019-10-04 11.28.01.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/185759/c6b4157e-f6d0-d4f1-47e8-189d6f47abbc.png">


まとめ
---
- データ入力用のwebフォームを考えたときにWebアプリケーションまで作らなくてもGoogleフォームで充分
- Googleフォーム結果を好きなように加工して、分析したい場合、Splunkへ連携さえしてしまえば簡単に分析までできる
- **Googleフォーム×Splunk=簡単に作れる記録ツール**