Syntheticモニタリング(外型監視)を利用した際に便利なドキュメント

:::note info
最新のアップデートの詳細はこちら。[New Relic アップデート](https://newrelic.com/jp/blog/nerdlog/new-relic-update "New Relic アップデート")
:::

# はじめに
New Relicの外型監視機能(英語名はSynthetic)は、定期的にサービスやシステムにポーリングを行って、想定された処理が行えるかを確認できる便利なサービスです。URLを指定して期待したレスポンスを返しているかといった簡易的なものから、スクリプトを記載してHTTP(S)以外のプロトコルを使ったポーリングを行わせることもできます。ポーリングを実施する拠点も、New Relicが提供したもの以外に、自前で用意することもできるので、社内のネットワーク上から社内システムにポーリングをさせて・・・といった利用もできるので、非常に柔軟性が優れています。

# New Relicの外型監視はどんなものがあるの？
『便利だというのはわかった・・・。じゃあ、具体的にどんなことができるんだい？』と思ってくれたなら、ありがとうございます!!! そんな疑問に応えるかの様に、[こんなブログ](https://newrelic.com/jp/blog/how-to-relic/newrelic-synthetics-overview)が公開されています。また、スクリプトを記載することなくWebアプリケーションへのアクセスを行うための[ノーコードモニタリング](https://newrelic.com/jp/blog/how-to-relic/synthetics/new-relic-synthetics_step-monitor)や、サービスの証明書期限チェックやページに埋め込まれたリンク検査などについても[こちら](https://newrelic.com/jp/blog/nerdlog/synthetics-sslcertificate-and-brokenlink)にまとめられています。
詳細についえは、上記のブログを見て貰えばと思いますが、簡単にまとめると以下の機能を活用することができます。

- **Ping** : 指定したURLに対してHTTPのポーリングを実施する
- **Certificate Check** : 対象URLの証明書期限を検査する
- **Broken Links Monitor** : 対象URLページに含まれるリンクの有効性を検査する
- **Simple browser** : 対象URLに含まれる他の要素(css, image, jsなど)を対象としたHTTPのポーリングを実施する
- **Scripted browser** : HTTPを前提とした任意のスクリプトの定期的な実行を行う
- **Scripted API** : HTTP以外のプロトコルを前提とした任意のスクリプトの定期的な実行を行う
- **Step Monitor** : スクリプトを記載することなく、Webアプリに対して複数の連続した処理を実施する

はじめは、**Simple browser**を用いて見るのが、外型監視を実現する取っ掛かりとして良いのではないかなと思います。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3534647/01c280bb-9f32-e748-6ecd-47c62aa060c7.png)


# スクリプトを記載するのって難しい？
『色々な機能があるみたいだけど、特にスクリプトって難しいんじゃないの？やってみたいことはあるんだけど・・・』と思った人は、さすがです!!もちろん、JavaScriptを理解していると圧倒的にハードルは下がるのですが、知らないからといって諦める必要はありません。[こんな](https://newrelic.com/jp/blog/nerdlog/proactively-monitor-non-http-connections-with-new-relic-synthetics)ブログが公開されています。また、[公式ドキュメント(日本語)](https://docs.newrelic.com/jp/)にも[こんな情報](https://docs.newrelic.com/jp/docs/synthetics/synthetic-monitoring/scripting-monitors/introduction-scripted-browser-monitors/)がまとまっています。


スクリプトを記載できないと難しいのかな・・・と思ったなら、是非、公式ドキュメント上にあるSelenium IDEを使ったスクリプトの作成方法を見て抱けると!!!(**英語やないかい(涙)**)
<iframe width="895" height="503" src="https://www.youtube.com/embed/Y0BCF-MSX44" title="Using Selenium IDE &amp; New Relic Synthetics Formatter" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>

**英語だと辛いなぁ・・・(奇遇ですね!!)** と思われた方は、是非[こちら](https://newrelic.com/jp/blog/how-to-relic/create-script-for-scriptbrowser-in-selenium-ide)のブログを見てください。上記の動画で説明していたSelenium IDEに加えて、Katalon Recorderというツールを利用する方法を紹介しています。(個人的にはKatalon Recorder推しです。)

ここまでくれば、Webアプリ上の処理をスクリプト化することができ、外型監視機能を用いて定期的に同じ処理を実行することができる様になります。

---
実際に外型監視機能を使うことで色々な結果を得ることができる様になるのですが、その結果を得て解決するためのヒントとしてエラーメッセージを活用する必要がでてきます。その際は、是非、[こちら](https://docs.newrelic.com/jp/docs/synthetics/synthetic-monitoring/troubleshooting/simple-scripted-or-scripted-api-non-ping-errors/)を参考にして解決のためのアクションを取ってもらえたら幸いです。

---
### 上級者向けの情報
より詳しい利用方法を知りたい上級者の方は、[こちら](https://docs.newrelic.com/jp/docs/synthetics/synthetic-monitoring/scripting-monitors/synthetic-scripted-browser-reference-monitor-versions-chrome-100/)や[こちら](https://newrelic.github.io/quickstarts-synthetics-library/#/)を参考にしてもらうと、良いヒントになるのではないでしょうか？

# 最後に
New Relicは、今回紹介した外型監視機能以外にも様々なサービスを提供しています。例えば、サーバの負荷状況を把握したり、アプリケーションの内部で発生しているエラーを検知したり・・・などなど、ここでは説明仕切れないのですが、もし実際に触って見たいという方は是非永久無償ライセンスを[こちら](https://newrelic.com/jp/sign-up-japan)から試して見てください。

:::note info
永久無料アカウントの詳細は[こちら](https://docs.newrelic.com/jp/docs/accounts/accounts-billing/account-setup/create-your-new-relic-account/)です。
:::