New Relicの最新機能として、サービスレベル設定をTerraformコードとして出力できるようになりました。この機能により、インフラ構築とモニタリング設定の一元管理が実現し、より効率的な運用が可能となります。
コードによる管理
サービスレベル設定をTerraformコードとして管理することで、GitHubなどのバージョン管理システムでの管理が可能になります。これにより、設定変更の履歴追跡、ロールバック、共有、および再利用が容易になります。
インフラストラクチャとの連携
Terraformを利用してインフラとモニタリング設定を一元的に管理することで、環境構築から監視設定までの一連の作業を自動化できます。これにより、手動設定のミスを減らし、迅速な環境構築が可能です。
環境の一貫性
コードによる設定管理により、ある設定をテンプレートとしたうえで、開発環境、ステージング環境、本番環境など、複数の環境間で一貫した設定を適用できます。これにより、環境間の差異による問題を最小限に抑えることができます。
自動化とCI/CD
TerraformのコードをCI/CDパイプラインに組み込むことで、サービスレベル設定の変更を自動的に適用できます。これにより、迅速なリリースと高い信頼性を実現できます。
ServiceLevel.tf
resource "newrelic_service_level" "ad_service_-_latency" {
guid = "### ENTITY_GUID ###"
name = "Ad Service - Latency"
description = "Proportion of requests that are served faster than a threshold."
events {
account_id = XXXXXXX
valid_events {
from = "Transaction"
select {
attribute = "*"
function = "COUNT"
threshold = 0
}
where = "entityGuid = '### ENTITY_GUID ###' AND (transactionType="Web")"
}
good_events {
from = "Transaction"
select {
attribute = "*"
function = "COUNT"
threshold = 0
}
where = "entityGuid = '### ENTITY_GUID ###' AND (transactionType="Web") AND duration
}
}
objective {
target = 95
time_window {
rolling {
count = 7
unit = "DAY"
}
}
}
}
このコードでポイントとなるのは、SLIとした値が何かという点もそうなのですが、SLI及びSLOターゲットを同様にコード管理できるというところです。
SLOはあくまで目標であり、実際には運用に合わせて見直していただく指標となります。
SLIの変更も同様にコードの変更で可能です。good_eventsで定義される条件がそのままSLIとして機能する値となる(上記コードの場合は応答時間が0.04秒未満となる)ため、その管理も同様に容易です。
Terraformでのコード管理を行っていただくことで、例えば機能リリース時のSLOターゲット変更を同時に行っていただいたり、なぜこのSLIが設定されているのかをコミットメッセージのログとして保存していただくことができます。
Terraformでコードを出力する方法としては、importがありますが、このコードはNew RelicのUIから直接出力が可能です。
テンプレートとするSLMを設定した上でそのメニューに「View as Terrafrom code」というものがありますので、そちらをクリックするだけでコードが表示されます。
直接コードのコピーもできるので、手元のTerraformコードにすぐに追加ができます。
これまではTerraformでNew Relicを活用していただくにはimportなどを使ってTerraform内で操作を行っていただく必要がありました。今回のアップデートでService Levelについてはより簡単にそのコードを利用していただくことができるようになりましたので、ぜひサービスレベル管理にご活用ください。
New Relicでは、新しい機能やその活用方法について、QiitaやXで発信しています!
無料でアカウント作成も可能なのでぜひお試しください!
Views: 0