AWS Cloudwatch貢献者洞察.便利ですか.
15712 ワード
貢献者洞察でログをチェックしてください
右!それで、我々はログを持っています.我々はCloudWatchログの洞察を使用してクエリをすることができます、我々はCloudWatchログを介してそれを観察することができますし、我々は今、多くの、多くのことを行うことができます.最後に、我々はそれらを持っている!
AWSは我々に貢献者洞察と呼ばれるもう一つのツールを与えます.このサービスは、ログを分析し、時系列を作成し、このデータを表示するために使用できます.それはかなり強力です!
CloudWatchサービス、寄稿者の洞察に移動します.クリック
Create rule
. ドロップダウンでLog group(s)
私たちのAPIのログを選択します.初めて選択しますSample rule
, API Gateway
and Calls by route and HTTP method (CLF)
. 実際には、JSONまたはCLF(この場合)を選択する場合は問題ではありません.そのままの構成を保ってください.
Log format: CLF (or JSON if you selected it earlier)
Contribution: ip
Aggregation: Count
クリックNext
ルール名を指定します.私の名前はAPIGW_byCount
.アフター・クリック
Create rule
, 任意のデータを参照するには数分(AWS主張5)を待つ必要があります.これは分析と集約を構築します.画面では4つの異なるIPSを見ます( IPSですか?
上の例は自動生成されます.
我々がカスタムのものをつくることができるならば、見ましょう.
エディタに移動
Syntax
画面をテキストエディタに変更します.この例は次のようになります.
{
"Schema": {
"Name": "CloudWatchLogRule",
"Version": 1
},
"LogGroupNames": [
"API-Gateway-Execution-Logs_9fcv1s573l/Prod"
],
"LogFormat": "JSON",
"Contribution": {
"Keys": [
"$.ip"
],
"Filters": []
},
"AggregateOn": "Count"
}
ここでは、クエリを使用して再生を開始することができます.我々が問うものを視覚化しましょう
我々の仕事を視覚化する時間です.クリック
Actions
, View in CloudWatch Metrics
と選択Unique contributors
. 時間内に私は別のIPSからいくつかのより多くの要求を受け、下に視覚化を見ることができます.
役に立つようにしましょう
まあ我々が今見るものはそうです.ではなく、本当に便利?正しい.この視覚化は、IPSについてではありません.それは多くの要素のいくつかのミックスです.何か知ってる?これは忘れなさい.それを正しくしましょう.
私たちがする必要があるのは、AWSによって提供されたサンプルの仕事であり、それらを書き換えるか、または私たち自身を作成することです.または、これが我々がすることです、我々はAPIが生成しているログを書き直します.まあ、我々はとにかくそれを行う必要があります.
よろしい.APIサービスに行って、適切なAPIを選びましょう
Stages
, Prod
を選択し、Logs/Tracing
タブ.クリック
Enable Access Logging
, 使用Insert Example
JSON用.デフォルトのログ(実際にデフォルトのデフォルトログとは異なる)を持ちます.以下の例のようにもう一つのフィールドを加えましょう.{ "requestId":"$context.requestId", "ip": "$context.identity.sourceIp", "caller":"$context.identity.caller", "user":"$context.identity.user","requestTime":"$context.requestTime", "httpMethod":"$context.httpMethod","resourcePath":"$context.resourcePath", "status":"$context.status","protocol":"$context.protocol", "responseLength":"$context.responseLength","traceId":"$context.xrayTraceId" }
文字列の最後にtraceId
フィールド.私も少し修正
Log Destination ARN
ログ間の振る舞いを区別するために.それはあなたのために読みやすくなります.では、ルールの構文は以下のようになります.
{
"AggregateOn": "Count",
"Contribution": {
"Filters": [],
"Keys": [
"$.ip"
]
},
"LogFormat": "JSON",
"LogGroupNames": [
"API-Gateway-Execution-Logs_9fcv1s573l"
],
"Schema": {
"Name": "CloudWatchLogRule",
"Version": 1
}
}
また、適切な(新しいものを使用してください!)ロググループ(覚えて、あなたのものは私のものとは異なります!)まず第一に、あなたは全く別のログを見ることができます.より短く、より明確に構造化.
そして、それは貢献者洞察にどのように見えますか?まあ、すごい!
SAMテンプレート
テンプレートを変更する時です.
AWSTemplateFormatVersion: 2010-09-09
Transform: AWS::Serverless-2016-10-31
Description: simple Lambda
Resources:
accessLogGroup:
Type: AWS::Logs::LogGroup
lambdaDemoApi:
Type: AWS::Serverless::Api
Properties:
StageName: Prod
Description: 'Prod stage'
TracingEnabled: true
MethodSettings:
- HttpMethod: '*'
LoggingLevel: INFO
ResourcePath: '/*'
MetricsEnabled: true
DataTraceEnabled: true
AccessLogSetting:
DestinationArn: !GetAtt accessLogGroup.Arn
Format: >-
'{ "requestId":"$context.requestId",
"ip": "$context.identity.sourceIp",
"caller":"$context.identity.caller",
"user":"$context.identity.user",
"requestTime":"$context.requestTime",
"httpMethod":"$context.httpMethod",
"resourcePath":"$context.resourcePath",
"status":"$context.status",
"protocol":"$context.protocol",
"responseLength":"$context.responseLength",
"traceId":"$context.xrayTraceId" }'
lambdaFunction:
Type: AWS::Serverless::Function
Properties:
Handler: simplefunction.handler
CodeUri: lambdafunction/
Runtime: python3.8
Policies:
- CloudWatchLambdaInsightsExecutionRolePolicy
AutoPublishAlias: live
Description: Simple demo function
MemorySize: 128
Timeout: 10
Tracing: Active
Layers:
- !Sub "arn:aws:lambda:${AWS::Region}:580247275435:layer:LambdaInsightsExtension:14"
Events:
simpleApi:
Type: Api
Properties:
RestApiId:
!Ref lambdaDemoApi
Path: /
Method: get
ご覧の通り、一つのリソースを追加しました.AccessLogGroup
and AccessLogSettings
のプロパティでlambdaDemoApi
.今、あなたは夢中になることができます.APIのログを構築し、それを視覚化する多くの可能性があります.今すぐ知っています:)
カバーイメージHebi B. からPixabay
Reference
この問題について(AWS Cloudwatch貢献者洞察.便利ですか.), 我々は、より多くの情報をここで見つけました https://dev.to/aws-builders/aws-cloudwatch-contributor-insights-is-it-useful-32n8テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol