An e-commerce application deployed on Amazon ECS writes structured JSON logs to Amazon CloudWatch Logs. A developer needs to create a CloudWatch metric filter to count the occurrences of HTTP 504 Gateway Timeout errors. A sample log event is:
{
"request": {
"path": "/checkout",
"responseCode": 504
}
}
Which filter pattern must the developer use to correctly match this log event?
- { $.request.responseCode = 504 }Answer
- B{ $.request.responseCode == 504 }
- C{ request.responseCode = 504 }
- D[request.responseCode = 504]
Answer
The pattern `{ $.request.responseCode = 504 }` is the correct filter pattern.
The correct pattern is `{ .request.responseCode = 504 }`. In CloudWatch Logs filter pattern syntax, JSON log events are matched using curly braces `{ }`. The root of the JSON document is represented by ``, and nested properties are traversed using dot notation (e.g., `$.request.responseCode`). Additionally, equality comparison in CloudWatch filter patterns is performed using a single equals sign (`=`).
Step-by-Step Solution
Key Concept
CloudWatch Logs Metric Filter JSON Syntax