はじめに

Azure Functionsには、同時に利用できるTCPソケット数に上限数が設定されています。
そのため、同時利用するソケット数を抑えるようにアプリを実装していないと、処理量が増えた際に、 ソケットが枯渇してしまう可能性があります。

この記事では、Functionsが利用しているソケット数をモニタリングする方法を紹介します。

Functionsのソケット数の上限

従量課金プランのFunctionsの場合、送信接続数は、インスタンスあたり600アクティブに設定されています。

上記のように同時接続数に上限があるので、Functionsアプリケーションを開発する際は、 利用後終わったソケットは開き放しにせずに、すぐにクローズするなどベストプラクティスに基づいた実装が必要です。

https://docs.microsoft.com/ja-jp/azure/azure-functions/manage-connections?tabs=csharp

https://docs.microsoft.com/ja-jp/azure/azure-functions/functions-best-practices

Functionsのソケット数をモニタリング

ソケット数は、Azureポータルを使って、Functionsの診断設定や、Azure Monitorのメトリックからモニタリングできます。

取得できる接続数として、以下の2つがあります。

  • Connections : Functionsごとの接続するの瞬間値
  • TCP Established : 仮想マシン単位(App Service Plan)の瞬間値

Connections

  • Connections

Azure Monitor の Connectionsから取得できる項目です。 Functionsの関数アプリが利用している接続数をモニタリングできます。

  • TCP Established
    App Service Planの接続上限を超過する可能性がございます。

https://docs.microsoft.com/ja-jp/azure/azure-functions/functions-monitoring

おわりに

本記事ではAzure Functionsでの同時に利用できるTCPソケット数をモニタリングする方法を紹介しました。