New Relic社内勉強会を開催しました

GA technologies SREチームの永冶です。 先日2019年7月18日弊社オフィスで、エンジニア向けにNew Relicの使い方を教える社内勉強会をNew Relicの方に開催していただきました。 今回はこの社内勉強会の内容について報告します。

f:id:t_nagaya:20190723081258j:plain:w400
New Relic社内勉強会の様子

社内勉強会開催の目的

弊社ではアプリケーションのモニタリングのためNew Relicを導入しています。
しかし「俺たちは雰囲気でNew Relicをやっている」という感じだったので、
体系的にNew Relicの見方、勘所を理解することを目的として、勉強会を開催するに至りました。

勉強会メモ

勉強会の中で特に惹かれた機能についてまとめます。

Service maps

最初に解説していただいたのは「Service maps」という機能です。 Service mapsはアプリケーション間の連携や依存関係を可視化してくれます。

f:id:t_nagaya:20190723083413j:plain:w800
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秒にしています。

f:id:t_nagaya:20190723091052p:plain
1.0 [0.5]とありますが、これはApdex scoreが1.0でApdex T値が0.5ということです。

Transaction traces

Transaction tracesはApdex T値が4倍以上の遅い処理をトレースし、どのコンポーネントの処理に時間がかかっているのかを可視化してくれます。 これで遅い処理のボトルネックを特定し、チューニングすることが可能になります。

f:id:t_nagaya:20190725084401j:plain
Transaction tracesの一覧画面
f:id:t_nagaya:20190725085532j:plain
Transaction tracesの1リクエストのサマリー

Insights

New Relicが収集したデータから自分が必要なデータを検索、可視化してくれるツールです。SQLに似たクエリを使ってデータの抽出ができます。

f:id:t_nagaya:20190725092153p:plain
クエリの補完が効くのでクエリの学習コストが低くて良いです
例えば、SELECT count(transactionName) FROM TransactionError FACET transactionName SINCE 1 week agoというクエリは、 過去1週間で発生したトランザクションエラーの発生件数をトランザクションの名前でグループ化してくれます。
f:id:t_nagaya:20190725093019j:plain
クエリの実行結果は円グラフなどでも表示することができます
また、クエリの結果はダッシュボードに追加することができるので、毎回クエリを書かなくても見たいタイミングでデータを確認することができます。

まとめ

当初の目的通りNew Relicの見所と勘所が分かり、New Relicで今後どのような監視設定をしていくか道筋が見えた気がしました。
あとは実際に手を動かしてInsightsダッシュボードなどを設定し、より実践的な設定があればブログで共有しようと思います。