AWS OpenSearch サービスを監視する
AWS によって公開されるメトリック
AWS OpenSearch サービスは、クラスターの健全性、リソース使用率、検索のパフォーマンスを網羅する包括的なメトリックを CloudWatch に公開します。一般的に監視されるメトリックは次のとおりです。
ClusterStatus.green/yellow/red: クラスター全体の健全性を示します。FreeStorageSpace: データ ノード上で使用可能なディスク容量。CPUUtilization: ノード全体の CPU 使用率。JVMMemoryPressure: JVM ヒープ利用状況。パフォーマンスに影響する可能性があります。MasterCPUUtilization: マスター ノードの CPU 使用率。SearchLatencyとIndexingLatency: 検索およびインデックス化のパフォーマンス。AutomatedSnapshotFailure: 自動スナップショットのステータス。
推奨される CloudWatch アラーム
OpenSearch の監視に関するほとんどのニーズについては、「Recommended CloudWatch alarms for Amazon OpenSearch Service」ガイドに従うことをおすすめします。このガイダンスでは、クラスターの健全性、ストレージ、CPU、JVM のメモリ負荷、ノード可用性などの重要なメトリックについて説明します。これらの標準アラームは、OpenSearch クラスターの健全性とパフォーマンスを維持するための強力な基盤となります。
AWS の推奨事項に加えて、特定の高度なメトリックは Jira ワークロードや特殊なユースケースに特に重要になる場合があります。以下のメトリックのアラームを設定することを検討してください。
CurrentPointInTime: 5 分間 (連続して 2 回) にわたり、最大値が 10 より大きい場合に、アラームをトリガーします。AvgPointInTimeAliveTime: 5 分間 (連続して 2 回) にわたり、平均値が 5 分を超えた場合に、アラームをトリガーします。ScrollCurrent: 5 分間 (連続して 2 回) にわたり、最大値が 5 より大きい場合に、アラームをトリガーします。これは特にdelete_by_queryなどの操作に関係しています。
これらの追加のアラームは、Jira で一般的に使用されるポイントインタイム (PIT) 検索やスクロール コンテキストに関連する問題を検出するのに役立ちますが、AWS の既定の推奨事項ではカバーされない場合があります。上記のしきい値と期間は推奨の既定値です。ドメイン、ワークロード パターン、運用 SLO に合わせて調整してください。
アラームの設定
AWS コンソール、AWS CLI、または CloudFormation などの自動化ツールを使用して CloudWatch のアラームとダッシュボードを設定できます。標準的なアラームの場合は、「OpenSearch CloudWatch アラーム」ガイドを使用できます。このガイドには、AWS ドキュメントで推奨されているメトリックが記載されています。
CurrentPointInTime、AvgPointInTimeAliveTime、ScrollCurrent などの Jira 固有のカスタム アラームについては、ユーザーが定義する必要があります。以下は、これらのカスタム アラーム用の CloudFormation YAML スニペットの例です。
アラートを適時に受け取るためには、SNS などの通知サービスと統合することをお勧めします。CloudWatch ダッシュボードとアラームを利用すると、追加の AWS 料金が発生する場合があることにご注意ください。
# Alarm for CurrentPointInTime
CurrentPointInTimeAlarm:
Type: AWS::CloudWatch::Alarm
Properties:
AlarmName: "CurrentPointInTime-High"
MetricName: "CurrentPointInTime"
Namespace: "AWS/ES"
Statistic: "Maximum"
Period: 300
EvaluationPeriods: 2
Threshold: 10
ComparisonOperator: "GreaterThanThreshold"
Dimensions:
- Name: DomainName
Value: !Ref OpenSearchDomainName
AlarmActions:
- !Ref AlarmNotificationTopic
# Alarm for AvgPointInTimeAliveTime
AvgPointInTimeAliveTimeAlarm:
Type: AWS::CloudWatch::Alarm
Properties:
AlarmName: "AvgPointInTimeAliveTime-High"
MetricName: "AvgPointInTimeAliveTime"
Namespace: "AWS/ES"
Statistic: "Average"
Period: 300
EvaluationPeriods: 2
Threshold: 300
ComparisonOperator: "GreaterThanThreshold"
Dimensions:
- Name: DomainName
Value: !Ref OpenSearchDomainName
AlarmActions:
- !Ref AlarmNotificationTopic
# Alarm for ScrollCurrent
ScrollCurrentAlarm:
Type: AWS::CloudWatch::Alarm
Properties:
AlarmName: "ScrollCurrent-High"
MetricName: "ScrollCurrent"
Namespace: "AWS/ES"
Statistic: "Maximum"
Period: 300
EvaluationPeriods: 2
Threshold: 5
ComparisonOperator: "GreaterThanThreshold"
Dimensions:
- Name: DomainName
Value: !Ref OpenSearchDomainName
AlarmActions:
- !Ref AlarmNotificationTopic