はじめに
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ソケット数をモニタリングする方法を紹介しました。