Azure Monitor ログのコストの計算とオプション
ほとんどの Azure Monitor 実装に対する最も重要な料金は、通常、Log Analytics ワークスペース内のデータの取り込みと保持に関するものです。 Azure Monitor のいくつかの機能には直接コストはかかりませんが、収集されるワークスペース データに追加されます。 この記事では、Log Analytics ワークスペースに対するデータ料金の計算方法と、コストに影響するさまざまな構成オプションについて説明します。
ヒント
Azure Monitor のコストを削減するための戦略については、「コストの最適化と Azure Monitor」を参照してください。
価格モデル
Log Analytics の既定の料金は、取り込まれたデータ ボリュームとデータ保有期間に基づく従量課金制モデルです。 各 Log Analytics ワークスペースは個々のサービスとして課金され、Azure サブスクリプションの課金内容に加えられます。 Log Analytics の価格 は地域ごとに設定されます。 データ インジェストの量は、次に大きく依存する可能性があります。
- 有効にされている管理ソリューションのセットとその構成。
- 監視対象リソースの数と種類。
- 各監視対象リソースから収集されたデータの型。
Azure Monitor の課金メーター名の一覧については、こちらを参照してください。
データ サイズの計算
データ ボリュームは、格納するデータのサイズとして測定され、GB (10^9 バイト) 単位で測定されます。 単一レコードのデータ サイズは、そのレコードの Log Analytics ワークスペースに格納されている列の文字列表記から計算されます。 データがエージェントから送信されるか、取り込みプロセス中に追加されるかは関係ありません。 この計算には、ログ インジェスト API によって追加されたカスタム列、変換、またはデータが収集されてワークスペースに格納されるときに追加されるカスタム フィールドが含まれます。
注意
この課金対象データ量計算は、通常、入ってくる JavaScript Object Notation パッケージ イベント全体のサイズよりもずっと小さくなります。 すべてのイベントの種類で平均して、課金されるサイズは受信データ サイズより約 25% 小さくなります。 小さなイベントの場合、最大 50% になる可能性があります。 この割合には、課金から除外された標準列の影響が含まれます。 コストを見積もり、他の価格モデルと比較する際には、課金対象データ サイズのこの計算について理解することが不可欠です。
除外される列
次の標準列は、すべてのテーブルに共通であり、レコード サイズの計算から除外されます。 Log Analytics に格納されている他のすべての列は、レコード サイズの計算に含まれます。 標準列は次のとおりです。
_ResourceId
_SubscriptionId
_ItemId
_IsBillable
_BilledSize
Type
除外されるテーブル
たとえば AzureActivity、Heartbeat、Usage、Operation などの一部のテーブルについては、データ インジェストの料金は一切かかりません。 この情報は常に _IsBillable 列によって示されます。これは、レコードがデータ インジェストと保持の課金から除外されたかどうかを示します。
その他のソリューションとサービスの料金
一部のソリューションには、無料データ取り込みに関するより具体的なポリシーがあります。 たとえば、Azure Migrate の場合、サーバー評価の最初の 180 日間は依存関係視覚化データが無料になります。 Microsoft Defender for Cloud、Microsoft Sentinel、構成管理などのサービスには、独自の価格モデルがあります。
固有の課金計算については、さまざまなサービスとソリューションのドキュメントを参照してください。
コミットメント レベル
従量課金制モデルに加えて、Log Analytics には "コミットメント レベル" があります。これにより、従量課金制の料金と比較して 30% も節約できます。 コミットメント レベルの価格を使用すると、従量課金制の価格より低い価格でワークスペースに対するデータ インジェストを 100 GB/日から購入することを確約できます。 コミットメント レベルを超える使用量 (超過分) については、現在のコミットメント レベルで提供されている同じ GB あたりの価格で請求されます。 (超過分は、同じコミットメント レベルの課金メーターを使用して課金されます。たとえば、ワークスペースが 1 日あたり 200 GB のコミットメント レベルにあり、1 日に 300 GB を取り込む場合、その使用量は 1 日あたり 200 GB のコミットメント レベルの 1.5 ユニットとして課金されます。)コミットメント レベルには、コミットメント レベルが選択または変更された時間から 31 日間のコミットメント期間があります。
- コミットメント期間中に、より高いコミットメント レベルに変更できます。これにより、31 日間のコミットメント期間が再開されます。 コミットメント期間が終了するまで、従量課金制やより低いコミットメント レベルに戻すことはできません。
- コミットメント期間の終了時に、ワークスペースに対して選択されているコミットメント レベルはそのまま維持されます。ワークスペースを従量課金制に、または低いコミットメント レベルに移動することはいつでもできます。
- ワークスペースを誤ってコミットメント レベルに移動してしまった場合は、Microsoft サポートに連絡してコミットメント期間をリセットしてください。これで従量課金制価格レベルに戻すことができます。
コミットメント レベルの課金は、 1 日単位でワークスペースごとに行われます。 ワークスペースが専用クラスターの一部である場合は、クラスターの課金が行われます。 次の「専用クラスター」セクションを参照してください。 コミットメント レベルとその価格の一覧については、「Azure Monitor の価格」を参照してください。
Azure コミットメント割引 (Microsoft Enterprise Agreement から受け取った割引など) は、従量課金制の価格と同様に、Azure Monitor ログのコミットメント レベルの価格に適用されます。 割引は、使用量がワークスペースごとまたは専用クラスターごとに課金されるかにかかわらず、適用されます。
ヒント
各 Log Analytics ワークスペースの [使用とコストの見積もり] メニュー項目には、各コミットメント レベルでのデータ インジェスト料金の見積もりが表示され、データ インジェスト パターンに最適なコミットメント レベルを選択するのに役立ちます。 この情報を定期的に確認して、別のレベルに移行することで料金を下げられるかどうかを判断します。 このビューの詳細については、「使用量と推定コスト」を参照してください。 実際の料金を確認するには、Azure Cost Management = Billing を使用します。
Dedicated クラスター
Azure Monitor ログ専用クラスターは、単一のマネージド Azure Data Explorer クラスター内のワークスペースのコレクションです。 専用クラスターでは、カスタマー マネージド キーなどの高度な機能がサポートされ、ワークスペースと同じコミットメント レベルの価格モデルが使用されますが、コミットメント レベルは少なくとも 100 GB/日である必要があります。 コミットメント レベルを超える使用量 (超過分) については、現在のコミットメント レベルで提供されている同じ GB あたりの価格で請求されます。 クラスターの従量課金制オプションはありません。
このクラスターのコミットメント レベルには、コミットメント レベルが上がった後に 31 日間のコミットメント期間があります。 コミットメント期間中は、コミットメント レベルを下げることはできませんが、上げることはいつでも可能です。 ワークスペースがクラスターに関連付けられている場合、それらのワークスペースのデータ インジェストの課金は、構成されているコミットメント レベルを使用してクラスター レベルで行われます。
クラスターの作成時に指定するクラスターには、2 つの課金モードがあります。
クラスター (既定) : 取り込まれたデータの課金は、クラスター レベルで行われます。 クラスターに関連付けられている各ワークスペースが取り込んだデータ量が集計され、クラスターの日次請求が計算されます。 Microsoft Defender for Cloud からのノードごとの割り当ては、クラスター内の全ワークスペースのデータ集計前に、ワークスペース レベルで適用されます。
ワークスペース: クラスターのコミットメント レベルのコストは、(各ワークスペースの Microsoft Defender for Cloud からのノードごとの割り当てを考慮した後) 各ワークスペースのデータ インジェスト量に応じて、クラスター内のワークスペースに比例して割り当てられます。
クラスターに 1 日で取り込まれたデータ量合計がコミットメント レベルより少ない場合、各ワークスペースにはコミットメント レベルの一部を課金することで、その取り込まれたデータが有効な GB 単位のコミットメント レベル レートで課金されます。 その後、コミットメント レベルの未使用部分はクラスター リソースに課金されます。
1 日の間にクラスターに取り込まれたデータ ボリュームの合計がコミットメント レベルよりも多い場合は、ワークスペースごとに、その日に取り込まれたデータの割合に基づいてコミットメント レベルの割合で課金され、コミットメント レベルを超えて取り込まれたデータの割合についてワークスペースごとに課金されます。 1 日の間にワークスペースに取り込まれたデータ ボリュームの合計がコミットメント レベルを超えている場合、クラスター リソースには何も課金されません。
これらの各モードでクラスターの課金が行われる方法の例については、こちらをご覧ください。
データ保持に対しては、クラスターに参加していないワークスペースの場合と同じように、ワークスペースごとに課金されます。
クラスターが作成されると、ワークスペースがそのクラスターに関連付けられるかどうかに関係なく、クラスターの課金が開始されます。
ワークスペースをクラスターにリンクすると、価格レベルがクラスターに変更され、取り込みはクラスターのコミットメント レベルに基づいて課金されます。 クラスターに関連付けられたワークスペースには、独自の価格レベルはなくなります。 ワークスペースはいつでもクラスターからリンク解除できます。その場合、価格レベルが GB 単位に変更される場合があります。
リンクされたワークスペースで従来のノードごとの価格レベルが使用されている場合、クラスターのコミットメント レベルに対するデータ インジェストに基づいて課金され、ノードごとには課金されなくなります。 Microsoft Defender for Cloud からのノードごとのデータ割り当ては、引き続き行われます。
クラスターが削除された場合、クラスターが 31 日間のコミットメント期間内であっても、クラスターの課金は停止します。
専用クラスターを作成し、その課金の種類を指定する方法の詳細については、「専用クラスターを作成する」を参照してください。
Basic と Auxiliary のテーブル プラン
Basic と Auxiliary のテーブル プランを使用するように Log Analytics ワークスペース内の特定のテーブルを構成することができます。 これらのテーブル内のデータでは取り込み料金が大幅に削減されます。 これらのテーブルのデータのクエリには料金がかかります。
Basic と Auxiliary のテーブルのデータに対するクエリの料金は、検索の実行時にスキャンされるデータの GB に基づきます。
Basic と Auxiliary のテーブル プランについて詳しくは、「Azure Monitor ログの概要: テーブル プラン」を参照してください。
ログ データ保持
データ インジェストに加え、各 Log Analytics ワークスペースでのデータの保有には料金がかかります。 ワークスペース全体または各テーブルの保有期間を設定できます。 この期間が経過すると、データは削除されるか、長期保有されます。 長期保有期間中は、データ保持料金が下がり、検索ジョブを使用したデータの取得に料金がかかります。 長期保有を使用して、コンプライアンスや不定期の調査のために格納する必要があるデータのコストを減らします。
カスタム テーブルを削除しても、そのテーブルに関連付けられているデータは削除されないため、対話型および長期保有の料金は引き続き適用されます。
これらの設定の構成方法や長期保有のデータへのアクセス方法など、データ保持の詳細については、「Log Analytics ワークスペース内のデータ保持を管理する」を参照してください。
Note
Log Analytics 消去機能を使用して Log Analytics ワークスペースからデータを削除しても、保持コストには影響しません。 保持コストを削減するには、"ワークスペースまたは特定のテーブルの保持期間を短くします。"
検索ジョブ
検索ジョブを実行して、長期保有からデータを取得します。 検索ジョブは、詳細な分析のために、ワークスペース内の新しい検索テーブルにレコードをフェッチする非同期クエリです。 検索ジョブは、検索を実行するためにアクセスされる各日にスキャンされるデータの GB 数によって課金されます。
ログ データの復元
大量のデータまたは長期保有のデータに対して、完全な分析クエリ機能を使用して集中的にクエリを実行する必要がある場合は、データ復元機能が強力なツールとなります。 復元操作により、高パフォーマンスのクエリのために、テーブル内の特定の時間範囲のデータがホット キャッシュで使用できるようになります。 完了したら、後でデータを破棄できます。 ログ データの復元は、復元されたデータの量と、復元がアクティブな状態に保たれる時間によって課金されます。 データ復元に対して課金される最小値は 2 TB および 12 時間です。 2 TB を超えるか、期間が 12 時間を超える復元データは、日割り計算で課金されます。
ログ データのエクスポート
Log Analytics ワークスペースでデータ エクスポートを使用すると、Azure Monitor パイプラインに届く際に、ワークスペース内の選択されたテーブルごとにデータを Azure Storage アカウントまたは Azure Event Hubs に連続してエクスポートできます。 データ エクスポートの使用料金は、エクスポートされるデータの量に基づきます。 エクスポートされるデータのサイズは、エクスポートされる JSON 形式データのバイト数です。
Application Insights の課金
ワークスペースベースの Application Insights リソースでは Log Analytics ワークスペースにデータが格納されるため、Application Insights データが配置されているワークスペースによって、データ インジェストとデータ保持に対する課金が行われます。 このため、Log Analytics 価格モデルのすべてのオプション ( コミットメント レベルを含む) と従量課金制を使用できます。
ヒント
Application Insights テーブルの保持設定を調整しますか? ワークスペース ベースのコンポーネントのテーブル名が変更されました。「Application Insights テーブルの構造」を参照してください
従来の Application Insights リソースのデータ インジェストとデータ保持では、ワークスペースベースのリソースと同じ従量課金制の料金に従いますが、コミットメント レベルを使用することはできません。
ping テストと複数ステップ テストからのテレメトリについては、アプリの他のテレメトリのデータ使用量と同じ料金が請求されます。 Web テストの使用およびカスタム メトリック ディメンションに対するアラートの有効化は、引き続き Application Insights を通じて報告されます。 Live Metrics Stream を使用するためのデータ ボリューム料金はありません。
Application Insights の早期導入者が使用できる従来のレベルに関する詳細は、「Application Insights の従来のエンタープライズ (ノードごとの) 価格レベル」を参照してください。
Microsoft Sentinel を含むワークスペース
Log Analytics ワークスペースで Microsoft Sentinel が有効になっている場合、そのワークスペースで収集されるすべてのデータには、Log Analytics の料金とともに Microsoft Sentinel の料金が適用されます。 このため、運用データに対して Microsoft Sentinel の料金が発生しないように、セキュリティおよび運用データを異なるワークスペースに分割することがよくあります。
シナリオによっては、このデータを組み合わせることでコストを削減できます。 通常、この状況は、それぞれがコミットメント レベルに達するのに十分なセキュリティおよび運用データを収集していないものの、まとめられたデータがコミットメント レベルに達するのに十分な場合に発生します。 詳細については、以下を参照してください:
Microsoft Defender for Cloud を含むワークスペース
Microsoft Defender for Servers (Defender for Cloud の一部) は、監視対象サービスの数で課金されます。 これにより、次のセキュリティ データ型のサブセットに適用される、サーバーあたり 500 MB/日 のデータ割り当てが提供されます。
- SecurityAlert
- SecurityBaseline
- SecurityBaselineSummary
- SecurityDetection
- SecurityEvent
- WindowsFirewall
- SysmonEvent
- ProtectionStatus
- ワークスペースで Update Management ソリューションが実行されていないか、ソリューションのターゲット設定が有効になっている場合は、Update と UpdateSummary。
- MDCFileIntegrityMonitoringEvents
ワークスペースが従来のノードごとの価格レベルである場合、Defender for Cloud と Log Analytics の割り当てが結合されて、取り込まれたすべての課金対象データにまとめて適用されます。 ワークスペースで Sentinel が有効になっていて、Sentinel が従来の価格レベルを使用している場合、Defender データの割り当ては Log Analytics データ インジェストの課金にのみ適用され、従来の Sentinel の課金には適用されません。 Sentinel が簡略化された価格レベルを使用している場合、Defender データの割り当ては統合された Sentinel の課金に適用されます。 Microsoft Sentinel のお客様がどのようにメリットを得られるかについて詳しくは、Microsoft Sentinel の価格ページを参照してください。
監視対象サーバーの数は、1 時間単位の細分性で計算されます。 各監視対象サーバーからの毎日のデータ割り当ては、ワークスペース レベルで集計されます。 ワークスペースが従来の Per Node 価格レベルである場合、Microsoft Defender for Cloud と Log Analytics の割り当てが結合されて、取り込まれたすべての課金対象データにまとめて適用されます。
レガシ価格レベル
2018 年 4 月 2 日に Log Analytics ワークスペースまたは Application Insights リソースが含まれていたか、2019 年 2 月 1 日より前に開始され、まだアクティブな Enterprise Agreement にリンクされているサブスクリプションでは、以下のレガシ価格レベルを引き続き利用できます。
- スタンドアロン (GB あたり)
- ノードあたり (Operations Management Suite [OMS])
従来の無料試用版価格レベルへのアクセスは、2022 年 7 月 1 日に制限されました。 スタンドアロンおよびノードごとの価格レベルの価格情報については、こちらを参照してください。
これらのレガシ レベルを含む Azure Monitor の課金メーター名の一覧については、こちらを参照してください。
重要
レガシ価格レベルでは、コスト効率の高い Basic と Auxiliary のテーブル プランでテーブルにデータを取り込むなど、Log Analytics の最新機能の一部へのアクセスはサポートされていません。
無料試用版の価格レベル
無料試用版価格レベルのワークスペースでは、毎日のデータ インジェストの上限が 500 MB になります (Microsoft Defender for Cloud によって収集されるセキュリティ データ型を除く)。 データ保持は 7 日間に制限されます。 無料試用版価格レベルは、評価目的の使用のみを意図しており、本番ワークロード用の使用は想定していません。 無料試用版レベルに対して、SLA は提供されません。
注意
2022 年 7 月 1 日までは、レガシの無料試用版の価格レベルで新しいワークスペースを作成する (または既存のワークスペースを移動してくる) ことができました。
スタンドアロンの価格レベル
スタンドアロン価格レベルでの使用量は、取り込まれたデータ ボリューム単位で請求されます。 これは Log Analytics サービスで報告され、メーターには "分析対象データ" という名前が付けられます。スタンドアロン価格レベルのワークスペースには、30 日から 730 日までのユーザーが構成可能なリテンション期間があります。 スタンドアロンの価格レベルのワークスペースでは、Basic と Auxiliary のテーブル プランの使用はサポートされていません。
ノードごとの価格レベル
ノードごとの価格レベルは、1 時間単位の細分性で監視対象の VM (ノード) ごとに課金されます。 監視対象のノードごとに、ワークスペースには 1 日あたり 500 MB の課金されないデータが割り当てられます。 この割り当ては、1 時間ごとの細分性で計算され、毎日ワークスペース レベルで集計されます。 集計される 1 日のデータ割り当てを超えて取り込まれたデータは、データ超過分として GB 単位で課金されます。 ノードごとの価格レベルは、レガシ価格レベルの要件を満たす既存のサブスクリプションでのみ使用できるレガシ レベルです。
請求書では、ワークスペースがノードごとの価格レベルの場合、サービスは Log Analytics の利用状況の Insight and Analytics になります。 ノードごとの価格レベルのワークスペースには、30 日から 730 日までのユーザーが構成可能なリテンション期間が含まれています。 ノードごとの価格レベルのワークスペースでは、Basic と Auxiliary のテーブル プランの使用はサポートされていません。 使用量は、次の 3 つのメーターで報告されます。
- ノード: ノード月の単位での監視対象ノード (VM) 数に対応した使用量です。
- ノードごとのデータの超過分: 集計されたデータの割り当てを超える取り込まれたデータの GB 数です。
- ノードごとに含まれるデータ: 集計されたデータの割り当ての範囲に含まれる取り込まれたデータ量です。 このメーターは、すべての価格レベルにワークスペースが存在する場合に、Microsoft Defender for Cloud によって提供される範囲のデータ量を示すためにも使用されます。
ヒント
ワークスペースでノードごとの価格レベルにアクセスできるが、従量課金制レベルよりもコストが低いかどうかを知りたい場合は、次のクエリを使用して推奨内容を確認してください。
Standard価格レベルとPremium価格レベル
2016 年 10 月 1 日以降、ワークスペースを Standard または Premium 価格レベルで作成すること、またはそれらに移動することはできません。 これらの価格レベルに既に存在するワークスペースは引き続き使用できますが、ワークスペースをこれらのレベルから移動した場合、元に戻すことはできません。 Standard と Premium の価格レベルのデータ保有は、それぞれ 30 日と 365 日に固定されています。 これらの価格レベルのワークスペースでは、Basic と Auxiliary のテーブル プランおよび長期データ保持の使用はサポートされていません。 これらの従来のレベルでの Azure 請求書のデータ インジェストのメーターは、"分析対象データ" と呼ばれています。
レガシ価格レベルを使用する Microsoft Defender for Cloud
次の考慮事項は、従来の Log Analytics レベルと、Microsoft Defender for Cloud の使用量に対する課金方法に関連しています。
- ワークスペースが従来の Standard レベルまたは Premium レベルの場合、Microsoft Defender for Cloud はノードごとではなく Log Analytics データ インジェストに対してのみ課金されます。
- ワークスペースが従来の Per Node レベルの場合、Microsoft Defender for Cloud は、現在の Microsoft Defender for Cloud のノードベースの価格モデルを使用して課金されます。
- 他の価格レベル (コミットメント レベルを含む) では、2017 年 6 月 19 日より前に Microsoft Defender for Cloud が有効になっている場合、Microsoft Defender for Cloud は Log Analytics データ インジェストに対してのみ課金されます。 それ以外の場合、Microsoft Defender for Cloud は、現在の Microsoft Defender for Cloud のノードベースの価格モデルを使用して課金されます。
価格レベルの制限に関する詳細は、「Azure サブスクリプションとサービスの制限、クォータ、制約」にあります。
レガシ価格レベルには、リージョンベースの価格はありません。
Note
OMS E1 Suite、OMS E2 Suite、または OMS Add-On for System Center のいずれかを購入することによって得られる資格を使用するには、OMS Log Analytics のノード単位の価格レベルを選択します。
ノードごとのレガシ価格レベルを評価する
多くの場合、ノードごとのレガシ価格レベルにアクセスできるワークスペースで、そのレベルの方が適しているのか、または現在の従量課金制またはコミットメント レベルの方が適しているのかを判断するのは容易ではありません。 ノードごとの価格レベルでの監視対象ノードあたりの固定費とそれに含まれる 500 MB/ノード/日のデータ割り当てと、従量課金制 (GB 単位) レベルでの取り込まれたデータに対して支払うコストとの間のトレードオフを理解する必要があります。
次のクエリを使用して、ワークスペースの使用パターンに基づいて最適な価格レベルを推奨します。 このクエリは、監視対象ノードと、過去 7 日間にワークスペースに取り込まれたデータを調べます。 各日でどの価格レベルが最適であるかが評価されます。 このクエリを使用するには、次を指定する必要があります。
- ワークスペースが Microsoft Defender for Cloud を使用するかどうかを、
workspaceHasSecurityCenter
をtrue
またはfalse
に設定して指定する。 - 特定の割引がある場合は価格を更新する。
- さかのぼって分析する日数を指定するには、
daysToEvaluate
を設定します。 このオプションは、クエリで 7 日間のデータの検索に時間がかかりすぎている場合に便利です。
// Set these parameters before running query
// For pay-as-you-go (per-GB) and commitment tier pricing details, see https://azure.microsoft.com/pricing/details/monitor/.
// You can see your per-node costs in your Azure usage and charge data. For more information, see https://learn.microsoft.com/azure/cost-management-billing/understand/download-azure-daily-usage.
let workspaceHasSecurityCenter = true;
let daysToEvaluate = 7;
let PerNodePrice = 15.; // Monthly price per monitored node
let PerNodeOveragePrice = 2.30; // Price per GB for data overage in the Per Node pricing tier
let PerGBPrice = 2.30; // Enter the pay-as-you-go price for your workspace's region (from https://azure.microsoft.com/pricing/details/monitor/)
let CommitmentTier100Price = 196.; // Enter your price for the 100 GB/day commitment tier
let CommitmentTier200Price = 368.; // Enter your price for the 200 GB/day commitment tier
let CommitmentTier300Price = 540.; // Enter your price for the 300 GB/day commitment tier
let CommitmentTier400Price = 704.; // Enter your price for the 400 GB/day commitment tier
let CommitmentTier500Price = 865.; // Enter your price for the 500 GB/day commitment tier
let CommitmentTier1000Price = 1700.; // Enter your price for the 1000 GB/day commitment tier
let CommitmentTier2000Price = 3320.; // Enter your price for the 2000 GB/day commitment tier
let CommitmentTier5000Price = 8050.; // Enter your price for the 5000 GB/day commitment tier
// ---------------------------------------
let SecurityDataTypes=dynamic(["SecurityAlert", "SecurityBaseline", "SecurityBaselineSummary", "SecurityDetection", "SecurityEvent", "WindowsFirewall", "MaliciousIPCommunication", "LinuxAuditLog", "SysmonEvent", "ProtectionStatus", "WindowsEvent", "Update", "UpdateSummary"]);
let StartDate = startofday(datetime_add("Day",-1*daysToEvaluate,now()));
let EndDate = startofday(now());
union *
| where TimeGenerated >= StartDate and TimeGenerated < EndDate
| extend computerName = tolower(tostring(split(Computer, '.')[0]))
| where computerName != ""
| summarize nodesPerHour = dcount(computerName) by bin(TimeGenerated, 1h)
| summarize nodesPerDay = sum(nodesPerHour)/24. by day=bin(TimeGenerated, 1d)
| join kind=leftouter (
Heartbeat
| where TimeGenerated >= StartDate and TimeGenerated < EndDate
| where Computer != ""
| summarize ASCnodesPerHour = dcount(Computer) by bin(TimeGenerated, 1h)
| extend ASCnodesPerHour = iff(workspaceHasSecurityCenter, ASCnodesPerHour, 0)
| summarize ASCnodesPerDay = sum(ASCnodesPerHour)/24. by day=bin(TimeGenerated, 1d)
) on day
| join (
Usage
| where TimeGenerated >= StartDate and TimeGenerated < EndDate
| where IsBillable == true
| extend NonSecurityData = iff(DataType !in (SecurityDataTypes), Quantity, 0.)
| extend SecurityData = iff(DataType in (SecurityDataTypes), Quantity, 0.)
| summarize DataGB=sum(Quantity)/1000., NonSecurityDataGB=sum(NonSecurityData)/1000., SecurityDataGB=sum(SecurityData)/1000. by day=bin(StartTime, 1d)
) on day
| extend AvgGbPerNode = NonSecurityDataGB / nodesPerDay
| extend OverageGB = iff(workspaceHasSecurityCenter,
max_of(DataGB - 0.5*nodesPerDay - 0.5*ASCnodesPerDay, 0.),
max_of(DataGB - 0.5*nodesPerDay, 0.))
| extend PerNodeDailyCost = nodesPerDay * PerNodePrice / 31. + OverageGB * PerNodeOveragePrice
| extend billableGB = iff(workspaceHasSecurityCenter,
(NonSecurityDataGB + max_of(SecurityDataGB - 0.5*ASCnodesPerDay, 0.)), DataGB )
| extend PerGBDailyCost = billableGB * PerGBPrice
| extend CommitmentTier100DailyCost = CommitmentTier100Price + max_of(billableGB - 100, 0.)* CommitmentTier100Price/100.
| extend CommitmentTier200DailyCost = CommitmentTier200Price + max_of(billableGB - 200, 0.)* CommitmentTier200Price/200.
| extend CommitmentTier300DailyCost = CommitmentTier300Price + max_of(billableGB - 300, 0.)* CommitmentTier300Price/300.
| extend CommitmentTier400DailyCost = CommitmentTier400Price + max_of(billableGB - 400, 0.)* CommitmentTier400Price/400.
| extend CommitmentTier500DailyCost = CommitmentTier500Price + max_of(billableGB - 500, 0.)* CommitmentTier500Price/500.
| extend CommitmentTier1000DailyCost = CommitmentTier1000Price + max_of(billableGB - 1000, 0.)* CommitmentTier1000Price/1000.
| extend CommitmentTier2000DailyCost = CommitmentTier2000Price + max_of(billableGB - 2000, 0.)* CommitmentTier2000Price/2000.
| extend CommitmentTier5000DailyCost = CommitmentTier5000Price + max_of(billableGB - 5000, 0.)* CommitmentTier5000Price/5000.
| extend MinCost = min_of(
PerNodeDailyCost,PerGBDailyCost,CommitmentTier100DailyCost,CommitmentTier200DailyCost,
CommitmentTier300DailyCost, CommitmentTier400DailyCost, CommitmentTier500DailyCost, CommitmentTier1000DailyCost, CommitmentTier2000DailyCost, CommitmentTier5000DailyCost)
| extend Recommendation = case(
MinCost == PerNodeDailyCost, "Per node tier",
MinCost == PerGBDailyCost, "Pay-as-you-go tier",
MinCost == CommitmentTier100DailyCost, "Commitment tier (100 GB/day)",
MinCost == CommitmentTier200DailyCost, "Commitment tier (200 GB/day)",
MinCost == CommitmentTier300DailyCost, "Commitment tier (300 GB/day)",
MinCost == CommitmentTier400DailyCost, "Commitment tier (400 GB/day)",
MinCost == CommitmentTier500DailyCost, "Commitment tier (500 GB/day)",
MinCost == CommitmentTier1000DailyCost, "Commitment tier (1000 GB/day)",
MinCost == CommitmentTier2000DailyCost, "Commitment tier (2000 GB/day)",
MinCost == CommitmentTier5000DailyCost, "Commitment tier (5000 GB/day)",
"Error"
)
| project day, nodesPerDay, ASCnodesPerDay, NonSecurityDataGB, SecurityDataGB, OverageGB, AvgGbPerNode, PerGBDailyCost, PerNodeDailyCost,
CommitmentTier100DailyCost, CommitmentTier200DailyCost, CommitmentTier300DailyCost, CommitmentTier400DailyCost, CommitmentTier500DailyCost, CommitmentTier1000DailyCost, CommitmentTier2000DailyCost, CommitmentTier5000DailyCost, Recommendation
| sort by day asc
//| project day, Recommendation // Comment this line to see details
| sort by day asc
このクエリは、使用量の計算方法を正確に複製するものではなく、ほとんどの場合、価格レベルの推奨を提供するために使用されます。
Note
OMS E1 Suite、OMS E2 Suite、または OMS Add-On for System Center のいずれかを購入することによって得られる資格を使用するには、OMS Log Analytics のノード単位の価格レベルを選択します。
次のステップ
- さまざまな種類の Azure Monitor 料金の説明と、Azure 請求書での分析方法については、「Azure Monitor のコストと使用量」を参照してください。
- ワークスペース内のデータの分析の詳細については、「Log Analytics ワークスペースでの使用量の分析」を参照し、使用量が予想よりも多いソースと、収集されるデータ量を減らせる機会を確認してください。
- 毎日ワークスペースに取り込まれる可能性のある最大ボリュームを構成してコストを制御する場合は、「Log Analytics ワークスペースの日次上限を設定する」を参照してください。
- 料金を最小限に抑えるための Azure Monitor の構成と管理に関するベスト プラクティスについては、「Azure Monitor のベスト プラクティス - コスト管理」を参照してください。