AWS CloudWatch は、アプリケーション、システム、サービスのパフォーマンスと健全性を理解するのに役立つモニタリング、ログ管理、メトリクス収集サービスです。 AWS が提供するフル機能のサービスである AWS CloudWatch は、ユーザーによる AWS リソースの監視と管理、およびアプリケーションとサービスの監視を支援します。
Go で AWS CloudWatch を使用すると、アプリケーションを簡単に監視し、パフォーマンスの問題が発見されたらすぐに解決できます。この記事では、Go 言語で AWS CloudWatch を使用するための完全なガイドを紹介します。
AWS CloudWatch の使用を開始する前に、Go 言語で AWS SDK をセットアップする必要があります。 AWS SDK は、サービスとの通信と認証に必要な機能を提供します。次のコマンドを使用して、Go に AWS SDK をインストールできます:
go get -u github.com/aws/aws-sdk-go/aws
AWS CloudWatch を有効にする前に、AWS 認証情報を使用して AWS アカウントを認証する必要があります。次のコマンドを使用して Go で AWS 認証情報を設定できます:
sess, err := session.NewSession(&aws.Config{
Regional: aws.String("us-west-2"),
Credentials: credentials.NewStaticCredentials("ACCESS_KEY_ID", "SECRET_ACCESS_KEY", "TOKEN"),
})
上記の例では、ACCESS_KEY_ID と SECRET_ACCESS_KEY は AWS アカウントとキーのアクセス キーです。 。 TOKEN パラメータは、AWS サーバーによって生成される一時的なセキュリティ認証情報です。
これで、CloudWatch クライアントを作成し、AWS CloudWatch 機能の使用を開始できます。次のコマンドを使用して、Go で CloudWatch クライアントを作成できます:
svc := cloudwatch.New(sess)
上記の例では、既存の AWS SDK A の New 関数を使用します。新しい CloudWatch クライアントがセッション内に作成されます。
これで、AWS CloudWatch 機能の使用を開始する準備が整いました。 PutMetricData 関数を使用して、メトリクス データを AWS CloudWatch に送信できます。次のコマンドを使用して Go でメトリクス データを送信できます:
input := &cloudwatch.PutMetricDataInput{
MetricData: []*cloudwatch.MetricDatum{
&cloudwatch.MetricDatum{ MetricName: aws.String("PageViews"), Dimensions: []*cloudwatch.Dimension{ &cloudwatch.Dimension{ Name: aws.String("Page"), Value: aws.String("SiteA"), }, }, Unit: aws.String("Count"), Value: aws.Float64(1.0), },
},
Namespace : aws.String("Site/PageViews"),
}
__, err := svc.PutMetricData(input)
上記の例では、PutMetricDataInput 構造内にいます。インジケーター名、インジケーターの寸法、測定単位が定義されます。その後、PutMetricData 関数を呼び出し、入力をパラメーターとして渡します。
AWS CloudWatch には、メトリクス データのフィルタリングと取得に役立つメトリクス データ フィルタも用意されています。 Go で次のコマンドを使用してメトリクス データ フィルターを作成できます:
input := &cloudwatch.GetMetricDataInput{
MetricDataQueries: []*cloudwatch.MetricDataQuery{
&cloudwatch.MetricDataQuery{ Id: aws.String("m1"), MetricStat: &cloudwatch.MetricStat{}, ReturnData: aws.Bool(true), },
},
StartTime: aws.Time(time.Now().Add(-time.Hour)),
EndTime: aws.Time(time.Now()),
}
_ , err := svc.GetMetricData(input)
上記の例では、GetMetricData 関数と GetMetricDataInput 構造体を使用してメトリック データを取得します。クエリ ID とクエリ結果を定義でき、クエリの時間範囲も定義できます。
AWS CloudWatch は、AWS リソースが所定のしきい値に達したときにトリガーされるイベント アラームもサポートしています。次のコマンドを使用して、Go で CloudWatch アラームを作成できます:
input := &cloudwatch.PutMetricAlarmInput{
AlarmName: aws.String("High Load Average"),
ComparisonOperator: aws.String ("GreaterThanOrEqualToThreshold"),
評価期間: aws.Int64(3),
メトリクス名: aws.String("LoadAverage"),
名前空間: aws.String("AWS/EC2"),
期間: aws.Int64(60),
しきい値: aws.Float64(1.0),
AlarmActions: []*string{
aws.String("arn:aws:sns:us-west-2:5466498xxxx:OpsAlert"),
},
}
_, err := svc.PutMetricAlarm(input)
上記の例では、アラーム名、比較演算子、評価期間、メトリック名、メトリック名前空間、統計期間、およびアラームしきい値を定義しました。また、アラート アクションを定義し、それを SNS トピックの ARN として設定します。
概要
AWS CloudWatch は、強力なモニタリング、ログ管理、メトリクス収集サービスです。 Go で AWS SDK を使用すると、AWS CloudWatch と簡単に統合し、アプリケーションとサービスのパフォーマンスと健全性の監視を開始できます。 AWS CloudWatch を使用すると、パフォーマンスの問題を即座に特定し、それらを解決するために適切なアクションを実行し、アプリケーションとサービスの安定性と可用性を確保できます。
以上がGo での AWS CloudWatch の使用: 完全ガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。