Slide 1

Slide 1 text

Change Tracking でデプロイを記録して パフォーマンスへの影響を分析しやすくしよう New Relic User Group Vol.9 株式会社TVer 髙品純大

Slide 2

Slide 2 text

Speaker ● 名前 ○ 髙品純大 ● 仕事 ○ TVer 広告関連システムの 開発, 構築, 運用 ● 職種 ○ インフラエンジニア・SRE Neovim 好き

Slide 3

Slide 3 text

お話すること ● Change Tracking という便利な機能の紹介 ● Change Tracking の開始方法

Slide 4

Slide 4 text

Change Tracking とは? ● アプリケーションのデプロイ(変更)を New Relic に記録する機能 ○ APM, Browser, Mobile で利用可能 ● メリット ○ デプロイとパフォーマンスの変化に関連があるか分かりやすい ■ デプロイ前後の速度, スループット, エラーの変化 ○ 影響を与えたデプロイをすぐに特定できる

Slide 5

Slide 5 text

こんなときどうしますか? ● Web transactions time の メトリクスがおかしい ● 関連が疑われるイベントの 有無と内容を確認する ○ デプロイ? ○ 基盤の問題? ○ 外部要因? APM の Web transactions time

Slide 6

Slide 6 text

Change Tracking あり ● デプロイの記録とメトリクスを同時に確認 できるので、2つの事象に関係があるか 分析しやすい ● Web transactions time を悪化させた 可能性がある変更内容を特定しやすい メトリクスとデプロイの記録を同時に 確認することができる

Slide 7

Slide 7 text

Change Tracking なし ● メトリクスから読み取れるのは、 Web transactions time が遅くなった という事実だけ ● デプロイが原因かもしれないし、 そうではないかもしれない メトリクスのみ

Slide 8

Slide 8 text

Change Tracking はなぜ便利なのか なにかおかしいメトリクスを分析するときの思考 1. 原因となりそうなイベントを複数思い浮かべる 2. イベントの有無と内容を調べ、原因を特定していく Change Tracking はこの思考において 2 の効率を高めてくれるから便利

Slide 9

Slide 9 text

Change Tracking 開始方法 ● CI / CD パイプラインの中に New Relic へデータを送信する処理を 追加する ● 公式の GitHub Action, Jenkins Plugin がある ● お好きな言語でスクリプトを 書いてもOK New Relic の公式 GitHub Action

Slide 10

Slide 10 text

GitHub Action アプリケーションのバージョンを取得 する newrelic/deployment-marker-action に必要な情報を渡す GitHub Actions workflow workflowに10行程度追記するだけ 使用開始するハードルが低い

Slide 11

Slide 11 text

シェルスクリプト NerdGraph API Explorer で curl コマンドを生成できる NerdGraph API Explorer の画面 生成されたコマンドを参考に シェルスクリプトを作成する 参考ブログ https://techblog.tver.co.jp/entr y/takashina/tver-advent-calen dar-2023-newrelic-change-tra cking

Slide 12

Slide 12 text

まとめ ● Change Tracking はアプリケーションのパフォーマンス分析、調査の 効率を高める ○ デプロイの記録とメトリクスを重ねて見ることで、 パフォーマンスへの影響が理解しやすくなる ● 簡単に使い始めることができる ○ New Relic に変更情報を送信する方法は複数用意されているので、 CI /CD ツールと組み合わせやすい