intern2015 01
TRANSCRIPT
LINE インターン最終発表
所属部署 : 開発1センター
テーマ
• RedisCallTrackerのログ可視化ツール • RedisCallTrackerのログ回収パイプライン
RedisCallTrackerとは?
• talk-‐serverに対するAPIコールによって発行されるRedisクエリのトラッキングシステム
※talk-‐server: LINEメッセンジャーアプリのコアビジネスロジックを担当するサーバー
呍呍呍
Redis
メッセージ配信の流れ
APIコール Redisクエリ
talk-‐server Aさん
sendMessage GET a:contactList SET b:messageBox RPUSH jobq:poprev
• 一度のAPIコールで複数のRedisクエリを発行 • 例) sendMessageでは、一度のAPIコールで平均15.3回のRedisクエリを発行している
現状
• コードの抽象化 – Redisへ直接クエリを送る部分が隠蔽されている
• ロジックの複雑化 – 1つのAPIコールがたくさんのRedisクエリを生み出す
• 負荷管理の重要性の増大 – 安定したサービス提供を持続するために
テーマ
• RedisCallTrackerのログ可視化ツール – ログをもっと見やすく、分析しやすく
• RedisCallTrackerのログ回収パイプライン – talk-‐serverから自動的にログを集める – 将来的な拡張性・安定性のために、Apache Ka^aをログ配信に使用
可視化ツール紹介
可視化ツール紹介 • ストリーミングでログデータを取得
• 何ms以上でスロークエリとするかを指定可能
• 重複クエリやスロークエリが含まれているログをわかりやすく表示
アーキテクチャ&技術スタック
アーキテクチャ
NEXT STEP…
Next Step
• 安定性のあるシステムの構築 – 操作ミスなどでログ量が莫大になったときにどうするか…?
• 大規模解析を見据えた設計 – 将来的にログが活用できる可能性…
• 例)リリースバージョン毎の品質チェック
Next Step①
Next Step②
まとめ
• Redisのログ解析が簡単になった • 初めてのことが多く、すごく勉強になった – Scala, Play, Ka^a, アクターモデル, etc… – talk-‐serverのような大きなコードベース – 大規模サービスを支える考え方・技術
• スケールや安定性の面が課題
一ヶ月間ありがとうございました!