GA technologies SREチームの永冶です。 先日2019年7月18日弊社オフィスで、エンジニア向けにNew Relicの使い方を教える社内勉強会をNew Relicの方に開催していただきました。 今回はこの社内勉強会の内容について報告します。
社内勉強会開催の目的
弊社ではアプリケーションのモニタリングのためNew Relicを導入しています。
しかし「俺たちは雰囲気でNew Relicをやっている」という感じだったので、
体系的にNew Relicの見方、勘所を理解することを目的として、勉強会を開催するに至りました。
勉強会メモ
勉強会の中で特に惹かれた機能についてまとめます。
Service maps
最初に解説していただいたのは「Service maps」という機能です。
Service mapsはアプリケーション間の連携や依存関係を可視化してくれます。
添付画像のように、アプリケーションからのDB、Redisへのアクセスや、ブラウザーからのアプリケーションへのアクセス、別のアプリケーションからのAPIアクセスも可視化されています。
アプリケーションの構成図をNew Relicが自動で作ってくれる優れものです。
さらに、連携するアプリケーションのレスポンスタイムやリクエスト数をこの画面から確認することができるので、レスポンスタイムに問題が発生した場合、ボトルネックがどこにあるのかもすぐにわかります。
Apdex score
Apdexはアプリケーションの応答時間やサービスの応答時間を基にユーザー満足度を測定するための業界標準の指標です。1だと満足度が最大となり、0に近づくと不満の割合が高いということになります。New RelicではOverviewのページの右側で確認することができます。
Apdex scoreを計測する上でApdex T値というものをアプリごとに設定できます。Apdex T値は応答時間の閾値です。Apdex T値以下でアプリケーションが応答すれば顧客は満足するレベルにあると言えます。New RelicではデフォルトでApdex T値を0.5秒にしています。
Transaction traces
Transaction tracesはApdex T値が4倍以上の遅い処理をトレースし、どのコンポーネントの処理に時間がかかっているのかを可視化してくれます。 これで遅い処理のボトルネックを特定し、チューニングすることが可能になります。
Insights
New Relicが収集したデータから自分が必要なデータを検索、可視化してくれるツールです。SQLに似たクエリを使ってデータの抽出ができます。
例えば、SELECT count(transactionName) FROM TransactionError FACET transactionName SINCE 1 week ago
というクエリは、 過去1週間で発生したトランザクションエラーの発生件数をトランザクションの名前でグループ化してくれます。
また、クエリの結果はダッシュボードに追加することができるので、毎回クエリを書かなくても見たいタイミングでデータを確認することができます。
まとめ
当初の目的通りNew Relicの見所と勘所が分かり、New Relicで今後どのような監視設定をしていくか道筋が見えた気がしました。
あとは実際に手を動かしてInsightsダッシュボードなどを設定し、より実践的な設定があればブログで共有しようと思います。