Lindorm 検索エンジンは、インデックスのステータス、クエリレイテンシー、リソースレベルをリアルタイムで監視し、検索サービスを安定的かつ効率的に維持するためにプロアクティブなアラートを送信します。
検索エンジンの監視 メトリクス
合計 CPU 使用率
このメトリクスは、CPU ユーザー (プロセス使用量)、CPU システム (システム使用量)、および CPU wio (I/O 待機) の合計です。合計使用率が長時間 90% を超え続けた場合、検索エンジンへの読み書きリクエストがキューに溜まり、レスポンスタイム (RT) が増加し、スループットが制限されます。CPU ボトルネックが発生している状況では、クライアントの同時実行数を増やしてもサーバーサイドのパフォーマンスは向上しません。
高い CPU 使用率は、通常、読み書きトラフィックの増加や大規模なクエリ (CPU ユーザーの急激な上昇として現れることが多い)、または形態素解析クエリなどの I/O 集中型ワークロード (CPU wio の大幅な上昇として現れることが多い) によって引き起こされます。トラブルシューティングを行うには、以下を確認してください:
-
読み書きトラフィックが増加していないか確認してください。ノードレベルのサーバーサイドメトリクスである
write TPSとquery QPSに注目してください。 -
大規模なクエリを引き起こしている可能性のあるクエリパターンの変更がないか確認してください。ノードレベルのサーバーサイドメトリクスであるクエリフェーズレイテンシーとフェッチフェーズレイテンシーに注目してください。
レイテンシーの影響を受けにくいワークロードの場合は、search thread rejected と write thread rejected メトリクスの監視を優先してください。これらのメトリクスは、リクエストキューの満杯によって引き起こされるリジェクションを直接反映しており、クライアント側では読み書きリクエストの失敗として現れます。一時的なスパイクではなく、持続的にゼロ以外の値が続く場合にアラートを設定してください。
メモリバックプレッシャー
リクエストを実行する前に、Lindorm 検索エンジン サーバーは、現在の JVM メモリ使用量とリクエストサイズに基づいて、十分なメモリが利用可能かどうかをチェックします。空きメモリが不足しており、フル GC でも十分な領域を解放できない場合、リクエストはリジェクトされます。ノードレベルのサービスダッシュボードにある Total Memory Backpressure Count メトリクスは、これらのリジェクションの頻度を直接反映しています。読み書きスレッドのリジェクションと同様に、クライアントトラフィックが減少したり、大規模なクエリが停止したりすると、システムはガベージコレクションによって JVM のメモリレベルを徐々に回復させ、バックプレッシャーの頻度はゼロに減少します。したがって、このメトリクスが長時間にわたってゼロ以外の状態を維持した場合にアラートを設定することを推奨します。
サービスのクエリと書き込みのレイテンシー
このメトリクスは、ノードレベルのビジネスサイドメトリクスにおいて search latency または bulk write latency という名称で利用でき、クライアントが search/bulk API を呼び出したときのリクエストのレスポンスタイム (RT) (平均と p99 を含む) を直接反映します。レイテンシーに敏感なワークロードの場合は、アラートテンプレートを使用して、search/bulk リクエストの平均または p99 レイテンシーに対するアラートを設定してください。
アラートルールの作成
Lindorm コンソールにログインします。ページの左上隅で、インスタンスのリージョンを選択します。Instances ページで、ターゲットインスタンスの ID をクリックするか、インスタンスの Actions 列で View Instance Details をクリックします。
-
左側のナビゲーションペインでAlertsをクリックすると、Lindorm アラートリストページが開き、インスタンスのアラートルールが表示されます。
-
[Lindorm アラートルールの作成] をクリックします。
-
[Lindorm アラートルールの作成] ページで、次のパラメーターを設定します。
パラメーター
説明
[アラート名]
アラートルールの名前です。
[検出タイプ]
[静的しきい値] を選択します。
[Lindorm クラスター]
このアラートルールが適用される現在のインスタンスです。
[アラートグループ]
Lindorm-Search 3.0を選択します。[アラートメトリクス]
利用可能なメトリクスは複数あり、合計 CPU 使用率、メモリバックプレッシャー、サービスのクエリと書き込みのレイテンシーなどが含まれます。
[アラート条件] セクションで、しきい値 (たとえば、0 より大きい) を設定します。