AWS Certified Solutions Architect – Professional — Question 788
A company wants to record key performance indicators (KPIs) from its application as part of a strategy to convert to a user-based licensing schema. The application is a multi-tier application with a web-based UI. The company saves all log files to Amazon CloudWatch by using the CloudWatch agent. All logins to the application are saved in a log file.
As part of the new license schema, the company needs to find out how many unique users each client has on a daily basis, weekly basis, and monthly basis.
Which solution will provide this information with the LEAST change to the application?
Answer options
- A. Configure an Amazon CloudWatch Logs metric filter that saves each successful login as a metric. Configure the user name and client name as dimensions for the metric.
- B. Change the application logic to make each successful login generate a call to the AWS SDK to increment a custom metric that records user name and client name dimensions in CloudWatch.
- C. Configure the CloudWatch agent to extract successful login metrics from the logs. Additionally, configure the CloudWatch agent to save the successful login metrics as a custom metric that uses the user name and client name as dimensions for the metric.
- D. Configure an AWS Lambda function to consume an Amazon CloudWatch Logs stream of the application logs. Additionally, configure the Lambda function to increment a custom CloudWatch that uses the user name and client name as dimensions for the metric.
Correct answer: A
Explanation
Option A is the correct answer because configuring an Amazon CloudWatch Logs metric filter requires zero modifications to the application code, as the logs are already being sent to CloudWatch. Option B is incorrect because modifying the application logic to call the AWS SDK violates the requirement for minimal application changes. Options C and D are incorrect because the CloudWatch agent cannot natively publish custom multi-dimensional metrics from parsed log lines, and using AWS Lambda introduces unnecessary operational overhead compared to using a native metric filter.