次の方法で共有


ASA CI/CD ツールを使用して Stream Analytics ジョブの自動スケーリング設定を構成する

ストリーミング ユニット (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 プロジェクトがある場合は、次の手順に従って自動スケーリング設定を構成します。

  1. Visual Studio Code で Stream Analytics プロジェクトを開きます。

  2. [ターミナル] パネルで、次のコマンドを実行して 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 特定のコマンドに関する詳細情報を表示します。
  3. プロジェクトをビルドします。

    azure-streamanalytics-cicd build --v2 --project ./asaproj.json --outputPath ./Deploy
    

    プロジェクトを正常にビルドすると、Deploy フォルダーの下に 2 つの JSON ファイルが作成されます。 1 つは ARM テンプレート ファイルで、もう 1 つはパラメーター ファイルです。

    プロジェクトのビルド後に生成されたファイルを示すスクリーンショット。

    注意

    更新された ARM テンプレート スキーマの --v2 オプションを使用することを強くお勧めします。 更新されたスキーマはパラメーターが少なくなりますが、以前のバージョンと同じ機能が保持されています。

    古い ARM テンプレートは、今後非推奨になります。 その後は、build --v2 を使用して作成されたテンプレートのみが、更新プログラムまたはバグ修正プログラムを受け取ります。

  4. 自動スケーリング設定を構成します。 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 カウント 合計 (和) LogicalNamePartitionIdProcessorInstance, NodeName PT1M はい
    関数のイベント

    関数のイベント
    AMLCalloutInputEvents カウント 合計 (和) LogicalNamePartitionIdProcessorInstance, NodeName PT1M はい
    関数の要求

    関数の要求
    AMLCalloutRequests カウント 合計 (和) LogicalNamePartitionIdProcessorInstance, NodeName PT1M はい
    データ変換エラー

    データ変換エラー
    ConversionErrors カウント 合計 (和) LogicalNamePartitionIdProcessorInstance, NodeName PT1M はい
    逆シリアル化の入力エラー

    逆シリアル化の入力エラー
    DeserializationError カウント 合計 (和) LogicalNamePartitionIdProcessorInstance, NodeName PT1M はい
    順不同のイベント

    順不同のイベント
    DroppedOrAdjustedEvents カウント 合計 (和) LogicalNamePartitionIdProcessorInstance, NodeName PT1M はい
    初期入力イベント

    初期入力イベント
    EarlyInputEvents カウント 合計 (和) LogicalNamePartitionIdProcessorInstance, NodeName PT1M はい
    実行時エラー

    実行時エラー
    Errors カウント 合計 (和) LogicalNamePartitionIdProcessorInstance, NodeName PT1M はい
    入力イベントのバイト数

    入力イベントのバイト数
    InputEventBytes バイト 合計 (和) LogicalNamePartitionIdProcessorInstance, NodeName PT1M はい
    入力イベント

    入力イベント
    InputEvents カウント 合計 (和) LogicalNamePartitionIdProcessorInstance, NodeName PT1M はい
    バックログされた入力イベント

    バックログされた入力イベント
    InputEventsSourcesBacklogged カウント Average、Maximum、Minimum LogicalNamePartitionIdProcessorInstance, NodeName PT1M はい
    受信した入力ソース

    受信した入力ソース
    InputEventsSourcesPerSecond カウント 合計 (和) LogicalNamePartitionIdProcessorInstance, NodeName PT1M はい
    遅延入力イベント

    遅延入力イベント
    LateInputEvents カウント 合計 (和) LogicalNamePartitionIdProcessorInstance, NodeName PT1M はい
    出力イベント

    出力イベント
    OutputEvents カウント 合計 (和) LogicalNamePartitionIdProcessorInstance, NodeName PT1M はい
    基準値の遅延

    透かしの遅延
    OutputWatermarkDelaySeconds Average、Maximum、Minimum LogicalNamePartitionIdProcessorInstance, NodeName PT1M はい
    CPU 使用率 (%)

    CPU 使用率 (%)
    ProcessCPUUsagePercentage パーセント 「平均」「最大」「最小」 LogicalNamePartitionIdProcessorInstance, NodeName PT1M はい
    SU (メモリ) 使用率 (%)

    SU (メモリ) 使用率 (%)
    ResourceUtilization パーセント 「平均」「最大」「最小」 LogicalNamePartitionIdProcessorInstance, NodeName PT1M はい

    すべてのメトリックしきい値の既定値は 70 です。 メトリックのしきい値を別の数値に設定する場合は、*.AutoscaleSettingTemplate.parameters.json ファイルを開き、Threshold の値を変更します。

    パラメーター ファイルでメトリックしきい値を設定する方法を示すスクリーンショット。

    自動スケーリング ルールの定義の詳細については、「自動スケーリング設定について」を参照してください。

  5. Azure にデプロイします。

    1. Azure アカウントに接続します。

      # Connect to Azure
      Connect-AzAccount
      
      # Set the Azure subscription
      Set-AzContext [SubscriptionID/SubscriptionName]
      
    2. 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
      
    3. 自動スケーリング設定をデプロイします。

      $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 で問題を報告できます。