Amazon Q Metrics Details
AWS Q Developer CloudWatch Metrics Documentation
This page documents the CloudWatch metrics available for AWS Q Developer, including code examples and expected response formats.
Overview
The following metrics are available for monitoring AWS Q Developer usage and performance:
Metric Name | Period | Description |
|---|---|---|
DailyActiveUserTrend | 1 day (86400s) | Number of active users per day |
Invocations | 1 hour (3600s) | Total invocation count |
SubscriptionCount | 1 hour (3600s) | Number of users with paying subscriptions |
MonthlyActiveUniqueUsers | 30 days (2592000s) | Number of unique active users in a month |
GeneratedLineCount | 1 hour (3600s) | Number of lines generated by Amazon Q Developer |
CodeScanCount | 1 hour (3600s) | Number of code scans performed |
Metric 1: MonthlyActiveUniqueUsers
Description: Number of unique active users in a month
Request:
import boto3
session = boto3.Session(
aws_access_key_id='*******',
aws_secret_access_key='*****',
region_name='us-east-1'
)
import pdb
# Initialize CloudWatch client using existing session
cloudwatch = session.client('cloudwatch')
# Get metric data for Amazon Q monthly active users
response = cloudwatch.get_metric_data(
MetricDataQueries=[
{
'Id': 'amazonq_mau',
'MetricStat': {
'Metric': {
'Namespace': 'AWS/Q',
'MetricName': 'MonthlyActiveUniqueUsers',
'Dimensions': [{
'Name': 'Dimension',
'Value': 'UniqueUserCount'
}]
},
'Period': 60 * 60 * 24 * 7, # 7 day period
'Stat': 'Maximum'
}
}
],
StartTime='2025-08-01T00:00:00',
EndTime='2025-08-31T23:59:59'
)
from pprint import pprint
pprint(response['MetricDataResults'])
Response Format:
[{'Id': 'amazonq_mau',
'Label': 'MonthlyActiveUniqueUsers',
'StatusCode': 'Complete',
'Timestamps': [datetime.datetime(2025, 8, 8, 0, 0, tzinfo=tzutc())],
'Values': [1.0]}]
Metric 2: DailyActiveUserTrend
Description: Number of active users per day
Request:
import boto3
session = boto3.Session(
aws_access_key_id='****',
aws_secret_access_key='*******',
region_name='us-east-1'
)
# Initialize CloudWatch client using existing session
cloudwatch = session.client('cloudwatch')
# Get metric data for Amazon Q daily active user trend
response = cloudwatch.get_metric_data(
MetricDataQueries=[
{
'Id': 'amazonq_dau',
'MetricStat': {
'Metric': {
'Namespace': 'AWS/Q',
'MetricName': 'DailyActiveUserTrend',
'Dimensions': [{
'Name': 'Dimension',
'Value': 'UserCount'
}]
},
'Period': 60 * 60 * 24, # 1 day period
'Stat': 'Maximum'
}
}
],
StartTime='2025-08-01T00:00:00',
EndTime='2025-08-31T23:59:59'
)
from pprint import pprint
pprint(response['MetricDataResults'])
Response Format:
[{'Id': 'amazonq_dau',
'Label': 'DailyActiveUserTrend',
'StatusCode': 'Complete',
'Timestamps': [datetime.datetime(2025, 8, 12, 0, 0, tzinfo=tzutc()),
datetime.datetime(2025, 8, 11, 0, 0, tzinfo=tzutc())],
'Values': [1.0, 1.0]}]
Metric 3: Invocations
Description: Total invocation count
Request:
import boto3
session = boto3.Session(
aws_access_key_id='****',
aws_secret_access_key='*******',
region_name='us-east-1'
)
# Initialize CloudWatch client using existing session
cloudwatch = session.client('cloudwatch')
# Get metric data for Amazon Q invocations
response = cloudwatch.get_metric_data(
MetricDataQueries=[
{
'Id': 'amazonq_invocations',
'MetricStat': {
'Metric': {
'Namespace': 'AWS/Q',
'MetricName': 'Invocations',
'Dimensions': [{
'Name': 'Dimension',
'Value': 'Count'
}]
},
'Period': 60 * 60, # 1 hour period
'Stat': 'Sum'
}
}
],
StartTime='2025-08-01T00:00:00',
EndTime='2025-08-31T23:59:59'
)
from pprint import pprint
pprint(response['MetricDataResults'])
Response Format:
[{'Id': 'amazonq_dau',
'Label': 'Invocations',
'StatusCode': 'Complete',
'Timestamps': [datetime.datetime(2025, 8, 12, 0, 0, tzinfo=tzutc()),
datetime.datetime(2025, 8, 11, 0, 0, tzinfo=tzutc())],
'Values': [1.0, 1.0]}]
Metric 4: SubscriptionCount
Description: Number of users with paying subscriptions
Request:
import boto3
session = boto3.Session(
aws_access_key_id='****',
aws_secret_access_key='*******',
region_name='us-east-1'
)
# Initialize CloudWatch client using existing session
cloudwatch = session.client('cloudwatch')
# Get metric data for Amazon Q subscription count
response = cloudwatch.get_metric_data(
MetricDataQueries=[
{
'Id': 'amazonq_subscriptions',
'MetricStat': {
'Metric': {
'Namespace': 'AWS/Q',
'MetricName': 'SubscriptionCount',
'Dimensions': [{
'Name': 'Dimension',
'Value': 'SubscriptionUserCount'
}]
},
'Period': 60 * 60, # 1 hour period
'Stat': 'Maximum'
}
}
],
StartTime='2025-08-01T00:00:00',
EndTime='2025-08-31T23:59:59'
)
from pprint import pprint
pprint(response['MetricDataResults'])
Response Format:
[{'Id': 'amazonq_dau',
'Label': 'SubscriptionCount',
'StatusCode': 'Complete',
'Timestamps': [],
'Values': []}]Metric 5: GeneratedLineCount
Description: Number of lines generated by Amazon Q Developer
Request:
import boto3
session = boto3.Session(
aws_access_key_id='****',
aws_secret_access_key='*******',
region_name='us-east-1'
)
# Initialize CloudWatch client using existing session
cloudwatch = session.client('cloudwatch')
# Get metric data for Amazon Q generated line count
response = cloudwatch.get_metric_data(
MetricDataQueries=[
{
'Id': 'amazonq_generated_lines',
'MetricStat': {
'Metric': {
'Namespace': 'AWS/Q',
'MetricName': 'GeneratedLineCount',
'Dimensions': [{
'Name': 'Dimension',
'Value': 'LineCount'
}]
},
'Period': 60 * 60, # 1 hour period
'Stat': 'Sum'
}
}
],
StartTime='2025-08-01T00:00:00',
EndTime='2025-08-31T23:59:59'
)
from pprint import pprint
pprint(response['MetricDataResults'])
Response Format:
[{'Id': 'amazonq_generated_lines',
'Label': 'GeneratedLineCount',
'StatusCode': 'Complete',
'Timestamps': [datetime.datetime(2025, 8, 1, 0, 0, tzinfo=tzutc()),
datetime.datetime(2025, 8, 1, 1, 0, tzinfo=tzutc()),
datetime.datetime(2025, 8, 1, 2, 0, tzinfo=tzutc())],
'Values': [2450.0, 1890.0, 3120.0]}]
Metric 6: CodeScanCount
Description: Number of code scans performed
Request:
import boto3
session = boto3.Session(
aws_access_key_id='****',
aws_secret_access_key='*******',
region_name='us-east-1'
)
# Initialize CloudWatch client using existing session
cloudwatch = session.client('cloudwatch')
# Get metric data for Amazon Q code scan count
response = cloudwatch.get_metric_data(
MetricDataQueries=[
{
'Id': 'amazonq_code_scans',
'MetricStat': {
'Metric': {
'Namespace': 'AWS/Q',
'MetricName': 'CodeScanCount',
'Dimensions': [{
'Name': 'Dimension',
'Value': 'ScanCount'
}]
},
'Period': 60 * 60, # 1 hour period
'Stat': 'Sum'
}
}
],
StartTime='2025-08-01T00:00:00',
EndTime='2025-08-31T23:59:59'
)
from pprint import pprint
pprint(response['MetricDataResults'])
Response Format:
[{'Id': 'amazonq_code_scans',
'Label': 'CodeScanCount',
'StatusCode': 'Complete',
'Timestamps': [datetime.datetime(2025, 8, 1, 0, 0, tzinfo=tzutc()),
datetime.datetime(2025, 8, 1, 1, 0, tzinfo=tzutc()),
datetime.datetime(2025, 8, 1, 2, 0, tzinfo=tzutc())],
'Values': [12.0, 8.0, 15.0]}]
Notes
Replace the
aws_access_key_idandaws_secret_access_keywith your actual AWS credentialsAdjust the
StartTimeandEndTimeparameters as needed for your specific time rangeThe
Periodvalues are based on the metric definitions providedThe
Statparameter can be adjusted based on your requirements (Sum, Maximum, Average, etc.)Some metrics may require different dimension names - verify with AWS documentation