New Relicの利用を促進するために行った取り組みについて

本記事は [New Relic Advent Calendar 2022](https://qiita.com/advent-calendar/2022/newrelic) 24日目です:christmas_tree::gift:

メリークリスマスイヴ:santa:

気付いたらクリスマスイヴというわけですが、エンジニア諸氏の皆々様におかれましては各々の要件に基づいて厳かにそこはかとなく聖なる夜をお過ごし頂いているかと存じますがいかがお過ごしでしょうか？

私はと申し上げますと今年もアドベントカレンダーなるものを締め切りに間に合わせるためにヒイヒイ言いながら筆を走らせているわけですが、NRUG SRE支部運営メンバーたる者、New Relicのアドベントカレンダーをスルーすることは言語道断高橋ダンというわけで、New Relicの利用を促進するために行なった取り組みについて張り切って書いていきたいと思います。

# New Relicをみんなに使って欲しい
New Relicに限らずですが、こういったSaaSやツールなどは導入で終わりではなく、導入後に活用していくのが大事ですよね。

そして活用を進めるためには多くの人に利用してもらって導入したSaaSやツールの良さ、便利さに気付いてもらう必要があります。

個人的にこういったSaaS、ツール導入時の設計として以下の点を意識しています。

- 使わざるを得ない状況を作る
- 使っていくうちにその便利さに依存させる

文面だけ見るとヤバい感じしかしませんが、大事な設計方針としています（してません

# New Relic導入に対してどのようにその設計を落とし込むか
弊社の場合、運用監視については基本的にMSPへ委託していたこともあり、自分が入社した時点ですでにNew Relicは導入されていたのですが、一部のサービスでAPMのみを導入していただけに留まり、活用はできていない状況でした。

また、太っ腹にも社員には原則みんな大好き`FullPlatformUser`が配布されていたのですが、前述の通り弊社は元々運用監視の大部分をMSPへ委託していることもあり、New Relicを使っているメンバーはほぼいないという中々あれな状況でした。

というわけでまず以下の流れで本格的な導入および活用を進めていきました。

- 原則`BasicUser`利用としてNRQLを中心に利用してもらう
- New Relicをログ基盤として利用
- 全サービスへInfrastructure、APMを導入
- DataPlusプランへ加入し、データ保持期間もMaxの13ヶ月へ延長

## 原則`BasicUser`利用として、NRQLを中心に利用してもらう
前述の通り、ほとんどNew Relicは利用されていないにも関わらず社員エンジニアには`FullPlatformUser`を配布するというブルジョワだったので、New Relicをo11y基盤の中心に据える方針を打ち出し、伴ってデータ量での課金も増えることが想定されていたのとNew Relicは機能が多くあまり利用されていない状況で全ての機能が使える状況だと利用が進まない懸念があり最初は原則`BasicUser`での運用にすることにしました。

これによりAPMなどの画面を見ることができないのですが、`BasicUser`でもNRQLを使えばほとんどのメトリクスをクエリすることができるしNew Relic活用の鍵はNRQLにあると考えていたので、まずはNew Relicでデータを見るときはNRQLでクエリするものだということを前提に啓蒙していき、NRQL力の向上を促すようにしました。

幸い弊社はバックエンドエンジニアの比率が高くSQLは大体の人が扱える状況であったので割と抵抗なく受け入れてもらえたのはラッキーでした。


## New Relicをログ基盤として利用
旧ログ基盤は`td-agent`によりログサーバーへ集約されていた程度の非常に簡素なもので、ログを確認するためには、各アプリケーション、WEBサーバーまたはログサーバーにSSHで入って各種Linuxコマンドを駆使して分析、閲覧する必要があり、ここをNew Relicで代替することにより利便性の向上とNRQL力の向上および今後のNew Relic活用促進のための第一歩としてログ基盤としての利用を進めていきました。

AWS環境に関しては基本的にNew RelicとS3へ送るようにして、普段確認するログ基盤としてははNew Relicを利用し、監査など長期保管用にS3+Athenaという使い分けをするようにし、基本的にログの確認にはNew Relicを見てもらうように啓蒙してNRQLの使い方やLogの見方なども併せて啓蒙していきました。

今ではNew Relicはログ基盤としても認知され、NRQLでログ検索したりその結果を短縮URLで共有したりダッシュボード、アラートの作成などが自然に行われるようになっていきました。

元々全ての開発者が利用していたログ基盤をNew Relicに置き換えることにより、ログ中心ではありますがNRQLやNew Relicの利用にも慣れていき今後の活用のための第一歩を歩み始めることができました。

## 全サービスへInfrastructure, APMの導入を実施
当初一部のサービスにしか入っていなかったInfrastructure, APMの全サービスへの導入を進め、すべてのサービスで必要なメトリクスをNew Relicへ集めるようにしていきました。

`BasicUser`でもNRQLでInfrastructureやAPMのメトリクスのクエリやダッシュボードの作成などはできるのでログのクエリだけではなくよりNRQLの活用およびNew Relicの活用が進んでいきました。


## DataPlusプランへ加入し、データ保持期間も13ヶ月へ延長
社内でのNew Relic活用が進み、New Relicの便利さが社内で認知され始め、より過去のデータを見たいなどの要望が段々と出てくるようになりました。

元々ライセンス削減によるコスト削減は行なっていたものの、活用が進む中でデータ量での課金が増え、すでに当初全社員`FullPlatformUser`利用時のコストに近い状況になっていました。

しかし、今後よりNew Relicを活用していくためには思い切ってData Plusプランの加入とデータ保持期間を13ヶ月へ延長することが必要になるとの判断をし、DataPlus加入＆データ保持期間延長によるコスト増分の追加予算獲得のためのプレゼンを行い無事予算を獲得することができ、New Relic活用のための背水の陣が無事(?)完成しました。


# おわりに
New Relicは機能も多く、組織のレベルや規模、フェーズによっては中々導入、活用を進めるのに苦労することもあるかと思いますが、個人的には中長期のプランを描き、`BasicUser`縛りでログ基盤としての活用からNRQL力を向上させていくという取り組みがNew Relicの利用促進にとても効果的だったと思いました。

今では、SlackのやりとりでもNRQLでクエリしたデータの短縮URLのやり取りが頻繁に行われるようになり、NRQLの習熟度とNew Relicの存在感が日に日に増してきているのを感じます。

現状もまだまだ`FullPlatformUser`の数は当初の数より増やせていないですが、New Relicの活用を促進することでもっと`FullPlatformUser`を増やしてそのコストに見合う成果を出せていけるようにここからさらなる本格的な活用を進めていきたいと思います。

それでは皆様も良きNew Relicライフをお過ごしください！

# 追伸
なんか特別賞貰えました🎉

https://twitter.com/tocyuki/status/1626533389548531713?s=46&t=0zMFg2RWvN6oRDkx4Xn8_A