2016/02/18 デブサミ2016【18-B-2】データ分析で始めるサービス改善最初の一歩 #devsumiB
Esperとは、CEP(複合イベント処理)エンジン。SQLライクにイベントデータの操作が可能。ログ収集に活用(一定時間ごとにログを集計し、アクセス総件数や処理時間の最大値・平均値など計算。Elasticsearchには集計した値のみ投入。Flumeに組み込む) #devsumiB
2016-02-18 11:25:59Flumeをカスタマイズした。自作InterceptorでEsperを走らせる→結果、ログの量を1/10に抑えられた。何ヶ月分かは蓄積できそうになって、目的を達成できた。 #devsumiB
2016-02-18 11:27:31cabanaではアクスセス件数、HTTPメソッドの割合(PUT, GET等)、処理時間の分布などを可視化 #devsumiB
2016-02-18 11:28:30可視化する項目を選ぶ際に試行錯誤した。Cabanaでelastic searchの可視化をするにはMapping Template(DBでいうスキーマ)を設定する必要がある。項目の選択・可視化を繰り返して有用な可視化対象の項目を探した #devsumiB
2016-02-18 11:29:40Elastic searchに投入する際の注意点:indexの定期的な削除が必要(インデックスはGBオーダー) #devsumiB
2016-02-18 11:30:18現状アクセス傾向はつかめるようになったし、elasticsearchをkibanaで可視化するのは簡単。でも、収集すること前提に設計するべき。(ログフォーマットの統一、収集する情報の選別、ログレベルを整える) #devsumiB
2016-02-18 11:32:21可視化だけでは不足していた(人の目に頼った判断・情報が落ちている)→より詳細に傾向の変化を把握して、能動的に改善していきたい(Hiveで全アクセスログ集計,R使う) #devsumiB
2016-02-18 11:34:00解析の流れ(1)アクセスログの取得(flume)(2)IIJ GIOでデータの整形・フィルタ(Hive) (3) 解析アルゴリズムの適用 (4) データ・アルゴリズムへのフィードバック(R言語) (5) IIJ GIOにフィードバック #devsumiB
2016-02-18 11:35:22Webサーバ何台くらいからFlumeで投げてるんかな?受ける側のスペック気になる。ESのクラスタ構成とか。 #devsumiB
2016-02-18 11:36:471.データの収集。Flumeでアクセスログを収集(Sinkに相当する部分を自作・カスタマイズし、オブジェクトストレージにPUTする)し、IIJ GIOの解析APIで解析・クレンジングする。 #devsumiB
2016-02-18 11:36:59Hiveでログを全量手に入れて分析できたけど、解析の観点・結果の判断において属人性が高い。→判断まで自動化し属人性を低くするために機械学習を導入! #devsumiB
2016-02-18 11:39:03外向けサービスだけじゃなくて、イントラツールの利用状況を分析するのにもこういうの使えそう #devsumiB
2016-02-18 11:41:15異常値に関する指標を探す。速度・バイト数に最初は着目したが、顧客環境に影響を受けるためうまくいかない・・・・→方針転換して機械学習のアルゴリズムを使うことにし、閾値による検出から、ユーザの利用傾向の変化による検出へ。 #devsumiB
2016-02-18 11:42:51