ストリーミング ユニット (SU) は、Azure Stream Analytics ジョブを実行するために割り当てられているコンピューティング リソースを表しています。 SU 数が大きいほど、ジョブに割り当てられる CPU とメモリのリソースが多くなります。
自動スケーリング機能では、ルール定義に基づいて SU を動的に調整します。 Stream Analytics ジョブの自動スケーリング設定は、Azure portal で構成することも、ローカル コンピューターの Stream Analytics 継続的インテグレーションおよび継続的デリバリー (CI/CD) ツールを使用して構成することもできます。
この記事では、Stream Analytics CI/CD ツールを使用して Stream Analytics ジョブの自動スケーリング設定を構成する方法について説明します。 Azure portal でのジョブの自動スケーリングの詳細については、「ストリーミング ユニットの自動スケーリング (プレビュー)」を参照してください。
Stream Analytics CI/CD ツールを使用すると、ストリーミング ユニットの最大数を指定し、ジョブの自動スケーリングを行うための一連のルールを構成できます。 その後、負荷の増加に対処するために SU を増加するか、コンピューティング リソースがアイドル状態の場合は SU の数を減らすかが決定されます。
自動スケーリング設定の例を次に示します。
- SU の最大数が 12 に設定されている場合、過去 2 分間のジョブの平均 SU 使用率が 75% を超えると SU が増加します。
前提条件
この記事の手順を完了するには、次のいずれかが必要です。
- ローカル コンピューター上の Stream Analytics プロジェクト。 こちらのガイドに従って作成します。
- Azure で実行中の Stream Analytics ジョブ。
自動スケーリング設定を構成する
シナリオ 1: ローカルの Stream Analytics プロジェクト用に設定を構成する
ローカル コンピューターに機能している Stream Analytics プロジェクトがある場合は、次の手順に従って自動スケーリング設定を構成します。
Visual Studio Code で Stream Analytics プロジェクトを開きます。
[ターミナル] パネルで、次のコマンドを実行して Stream Analytics CI/CD ツールをインストールします。
npm install -g azure-streamanalytics-cicd
azure-streamanalytics-cicd
でサポートされているコマンドの一覧を次に示します。コマンド 説明 build
Visual Studio Code で Stream Analytics プロジェクト用の標準の Azure Resource Manager テンプレート (ARM テンプレート) を生成します。 localrun
Visual Studio Code で Stream Analytics プロジェクト用にローカルで実行します。 test
Visual Studio Code で Stream Analytics プロジェクト用にテストします。 addtestcase
Visual Studio Code で Stream Analytics プロジェクト用のテスト ケースを追加します。 autoscale
自動スケーリング設定用の ARM テンプレート ファイルを生成します。 help
特定のコマンドに関する詳細情報を表示します。 プロジェクトをビルドします。
azure-streamanalytics-cicd build --v2 --project ./asaproj.json --outputPath ./Deploy
プロジェクトを正常にビルドすると、Deploy フォルダーの下に 2 つの JSON ファイルが作成されます。 1 つは ARM テンプレート ファイルで、もう 1 つはパラメーター ファイルです。
注意
更新された ARM テンプレート スキーマの
--v2
オプションを使用することを強くお勧めします。 更新されたスキーマはパラメーターが少なくなりますが、以前のバージョンと同じ機能が保持されています。古い ARM テンプレートは、今後非推奨になります。 その後は、
build --v2
を使用して作成されたテンプレートのみが、更新プログラムまたはバグ修正プログラムを受け取ります。自動スケーリング設定を構成します。
azure-streamanalytics-cicd autoscale
コマンドを使用して、パラメーター キーと値を追加します。パラメーター キー 値 例 capacity
最大 SU (1/3、2/3、1、最大 66 SU V2) 2
metrics
自動スケーリング ルールに使用されるメトリック ProcessCPUUsagePercentage
ResourceUtilization
targetJobName
プロジェクト名 ClickStream-Filter
outputPath
ARM テンプレートの出力パス ./Deploy
次に例を示します。
azure-streamanalytics-cicd autoscale --capacity 2 --metrics ProcessCPUUsagePercentage ResourceUtilization --targetJobName ClickStream-Filter --outputPath ./Deploy
自動スケーリング設定を正常に構成すると、Deploy フォルダーの下に 2 つの JSON ファイルが作成されます。 1 つは ARM テンプレート ファイルで、もう 1 つはパラメーター ファイルです。
次の表は、自動スケーリング ルールの定義に使用できるメトリックの一覧です。
メトリック REST API での名前 出荷単位 集計 Dimensions 期間粒度 DS エクスポート 失敗した関数の要求
失敗した関数の要求AMLCalloutFailedRequests
カウント 合計 (和) LogicalName
、PartitionId
、ProcessorInstance
,NodeName
PT1M はい 関数のイベント
関数のイベントAMLCalloutInputEvents
カウント 合計 (和) LogicalName
、PartitionId
、ProcessorInstance
,NodeName
PT1M はい 関数の要求
関数の要求AMLCalloutRequests
カウント 合計 (和) LogicalName
、PartitionId
、ProcessorInstance
,NodeName
PT1M はい データ変換エラー
データ変換エラーConversionErrors
カウント 合計 (和) LogicalName
、PartitionId
、ProcessorInstance
,NodeName
PT1M はい 逆シリアル化の入力エラー
逆シリアル化の入力エラーDeserializationError
カウント 合計 (和) LogicalName
、PartitionId
、ProcessorInstance
,NodeName
PT1M はい 順不同のイベント
順不同のイベントDroppedOrAdjustedEvents
カウント 合計 (和) LogicalName
、PartitionId
、ProcessorInstance
,NodeName
PT1M はい 初期入力イベント
初期入力イベントEarlyInputEvents
カウント 合計 (和) LogicalName
、PartitionId
、ProcessorInstance
,NodeName
PT1M はい 実行時エラー
実行時エラーErrors
カウント 合計 (和) LogicalName
、PartitionId
、ProcessorInstance
,NodeName
PT1M はい 入力イベントのバイト数
入力イベントのバイト数InputEventBytes
バイト 合計 (和) LogicalName
、PartitionId
、ProcessorInstance
,NodeName
PT1M はい 入力イベント
入力イベントInputEvents
カウント 合計 (和) LogicalName
、PartitionId
、ProcessorInstance
,NodeName
PT1M はい バックログされた入力イベント
バックログされた入力イベントInputEventsSourcesBacklogged
カウント Average、Maximum、Minimum LogicalName
、PartitionId
、ProcessorInstance
,NodeName
PT1M はい 受信した入力ソース
受信した入力ソースInputEventsSourcesPerSecond
カウント 合計 (和) LogicalName
、PartitionId
、ProcessorInstance
,NodeName
PT1M はい 遅延入力イベント
遅延入力イベントLateInputEvents
カウント 合計 (和) LogicalName
、PartitionId
、ProcessorInstance
,NodeName
PT1M はい 出力イベント
出力イベントOutputEvents
カウント 合計 (和) LogicalName
、PartitionId
、ProcessorInstance
,NodeName
PT1M はい 基準値の遅延
透かしの遅延OutputWatermarkDelaySeconds
秒 Average、Maximum、Minimum LogicalName
、PartitionId
、ProcessorInstance
,NodeName
PT1M はい CPU 使用率 (%)
CPU 使用率 (%)ProcessCPUUsagePercentage
パーセント 「平均」「最大」「最小」 LogicalName
、PartitionId
、ProcessorInstance
,NodeName
PT1M はい SU (メモリ) 使用率 (%)
SU (メモリ) 使用率 (%)ResourceUtilization
パーセント 「平均」「最大」「最小」 LogicalName
、PartitionId
、ProcessorInstance
,NodeName
PT1M はい すべてのメトリックしきい値の既定値は
70
です。 メトリックのしきい値を別の数値に設定する場合は、*.AutoscaleSettingTemplate.parameters.json ファイルを開き、Threshold
の値を変更します。自動スケーリング ルールの定義の詳細については、「自動スケーリング設定について」を参照してください。
Azure にデプロイします。
Azure アカウントに接続します。
# Connect to Azure Connect-AzAccount # Set the Azure subscription Set-AzContext [SubscriptionID/SubscriptionName]
Stream Analytics プロジェクトをデプロイします。
$templateFile = ".\Deploy\ClickStream-Filter.JobTemplate.json" $parameterFile = ".\Deploy\ClickStream-Filter.JobTemplate.parameters.json" New-AzResourceGroupDeployment ` -Name devenvironment ` -ResourceGroupName myResourceGroupDev ` -TemplateFile $templateFile ` -TemplateParameterFile $parameterFile
自動スケーリング設定をデプロイします。
$templateFile = ".\Deploy\ClickStream-Filter.AutoscaleSettingTemplate.json" $parameterFile = ".\Deploy\ClickStream-Filter.AutoscaleSettingTemplate.parameters.json" New-AzResourceGroupDeployment ` -Name devenvironment ` -ResourceGroupName myResourceGroupDev ` -TemplateFile $templateFile ` -TemplateParameterFile $parameterFile
プロジェクトが正常にデプロイされると、Azure portal で自動スケーリング設定を表示できます。
シナリオ 2: Azure で実行中の Stream Analytics ジョブの設定を構成する
Azure で実行中の Stream Analytics ジョブがある場合は、PowerShell で Stream Analytics CI/CD ツールを使用して自動スケーリング設定を構成できます。
次のコマンドを実行します。
$jobResourceId
を Stream Analytics ジョブのリソース ID に置き換えます。
azure-streamanalytics-cicd autoscale --capacity 2 --metrics ProcessCPUUsagePercentage ResourceUtilization --targetJobResourceId $jobResourceId --outputPath ./Deploy
設定を正しく構成すると、ARM テンプレートとパラメーター ファイルが現在のディレクトリに作成されます。
その後、シナリオ 1 のデプロイ手順に従って、自動スケーリング設定を Azure にデプロイできます。
ヘルプを取得
自動スケーリング設定の詳細については、PowerShell で次のコマンドを実行します。
azure-streamanalytics-cicd autoscale --help
Stream Analytics CI/CD ツールに問題がある場合は、GitHub で問題を報告できます。