# Serverless TPS制限到達アラート

Serverless TPS制限到達アラートは、EMQX Cloud Serverlessデプロイメントのリアルタイムメッセージスループットが、ティア制限である1,000 TPSに達するか超過したことを示します。

この状態では、パブリッシュされたメッセージがドロップされる可能性があります。主な原因としては、業務ピーク時のトラフィック急増や、メッセージを過剰に高速でパブリッシュするクライアントの不具合が挙げられます。

## メッセージトラフィックの急増

### 症状

業務ピークやバッチジョブにより、短時間で多数のメッセージがパブリッシュされ、リアルタイムTPSがServerlessデプロイメントの制限を超過します。

デプロイメントの**Overview**ページでは、リアルタイムのインバウンドおよびアウトバウンドメッセージTPSが制限に達するか超過します。

### 主な原因

- 業務ピーク時にメッセージが集中する。
- 同一の短時間内にバッチやスケジュールジョブが開始される。

### 対応策

- ピーク時のメッセージスループットを事前に見積もる。
- 継続的に高スループットが必要な場合は、**Dedicatedデプロイメント**に切り替え、需要に応じてスケールアウトする。

## クライアントの過剰なパブリッシュレート

### 症状

一部または少数のクライアントがレート制限なしに高頻度で連続的にパブリッシュし、利用可能なTPSを過剰に消費します。

リアルタイムのインバウンドおよびアウトバウンドメッセージTPSが制限に達するか超過する一方で、接続数は安定しています。

### 主な原因

- クライアントの不具合により同一メッセージを繰り返し送信している。
- クライアント側でパブリッシュレート制限を実施していない。

### 対応策

- 重複メッセージを送信しているクライアントロジックを確認する。
- クライアント側にパブリッシュレート制限を追加する。
- パブリッシュレート制限ログを利用して該当する`clientid`を特定し、**Monitor** -> **Clients**で該当クライアントを確認する。

## トラブルシューティング

1. EMQX Cloudコンソールにログインします。

2. デプロイメントの**Overview**ページを開き、**Inbound and Outbound Message TPS**を確認します。リアルタイムTPSが制限に達しているか超過しているかを確認してください。

   ![デプロイメントOverviewページのインバウンドおよびアウトバウンドメッセージTPS](./_assets/sls_tps_limit_overview.png)

## 監視と統計

- **Metrics** -> **Real-time Metrics** -> **Total TPS**に移動し、現在のTPSを確認してデプロイメントが高負荷状態かどうかを判断します。

  ![リアルタイムメトリクスのTotal TPS](./_assets/sls_tps_limit_stats.png)

- **Metrics** -> **Timeline** -> **Message In/Out**に移動し、時間ごとのメッセージ量を確認します。データポイントの合計メッセージ数を60秒で割ることで、その分の平均TPSを計算できます。

  ![監視タイムライン上のメッセージ量](./_assets/sls_tps_limit_monitor.png)

## 影響範囲

- このアラートは**EMQX Cloud Serverlessデプロイメント**のみに適用されます。
- アラート発生後もデプロイメントは稼働を継続し、アラート自体による追加料金は発生しません。
- TPSが制限を超過し続ける場合、メッセージがドロップされる可能性があります。速やかに負荷を調査し軽減してください。
