はじめに
これはVisual Studio Team Servicesアドベントカレンダー20日目(ぇ)の記事です。
継続的インテグレーション、継続的デプロイ(デリバリー)はよく聞いたことがあると思います。最近VSTSの開発で継続的モニタリングという言葉もでてきました。VSTSのリリーステンプレートにも入っています。
どんなものかちょっと見てみましょう(CI/CDじゃなかったのかという突っ込みは…)。
リリース定義の作り方
リリース定義にAzure App Service Deployment with Continuous Monitoringがありますので、選んでみます。
二つEnvironmentがありますが、すでに一度作ったものに追加する形でキャプチャ撮ったので、スルーしてください。
モニタリングのテンプレートから作った場合、以下の三つのタスクが定義されています。
- Enable Continuous Monitoring
- Configure Application Insights..
- Azure App Service Deploy
これを見てわかると思いますが、「App ServiceにデプロイするついでにApplication Insightsを定義してやるよ」ということをリリース定義でやってくれるものです。Enable Continuous Monitoringは要はApplication Insights拡張機能を指定したWeb Appsに設定してくれるというものです。
次のConfigure Application Insightsタスクで、Application Insightsの監視ルールが設定できます。実はこのタスクで作った場合、既定の設定が選択されているので、その設定をそのまま使っても構いません。
- Availability が99%を下回った場合
- リクエスト失敗が5回より大きい
- サーバーの応答時間が5秒より大きい場合
- サーバーの例外が5回を上回った場合
ここでサブスクリプションの所有者、コントリビューター、読み取り権限のある人、その他指定した人にこのアラート条件を満たしたときにメールを送信する設定もできます(Subscription owners.. にチェック)。
これ以外の警告条件を指定したい場合もあります。Alert rulesの横をクリックして、条件設定をします。
警告名、メトリクス、条件、閾値を指定します。余り警告が来てもあれなので、許容できる範囲を合意しておきましょう。
メトリクスにはWebサーバーで大体要求されるような項目が入っていると思います。
App Serviceのデプロイには特に問題はありませんね。
実際これをリリースしてみると、Application Insightsの警告ルールに設定されています。
まとめ
Application Insightsにはメトリクスをとる機能と、ログを出力する機能があります。今まではどちらもVisual Studioのウィザードで設定することが多かったと思いますが、モニタリングに関してはCDのタスクで設定できるようになりました。
メトリクスルールもCDで構成できるので、これを仮に複数のリージョンに展開するとなったときでも既存のリリース定義から複製すればいいだけなので、Azureポータルでぽちぽち手作業するのにくらべて、間違いが起きなくなります。
また、リリースに含まれるので、アラートルールを変更する場合でもリリース定義を変えることにより、記録として残るので、とても便利だと思います。
使ってみてください。