View a markdown version of this page

指标过滤器示例 - Amazon Route 53

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

指标过滤器示例

本部分包含 Route 53 全球解析器 DNS 查询 CloudWatch 日志的示例指标筛选模式和亚马逊日志见解查询。

全球解析器屏蔽了查询

{ "logGroupName": "/aws/vendedlogs/route53globalresolver/global-resolver/GLOBAL_RESOLVER_LOGS/gr-<resolverId>", "filterName": "BlockedQueriesByGlobalResolverId", "filterPattern": "{ $.disposition = \"Blocked\" }", "metricTransformations": [ { "metricName": "BlockedQueriesByGlobalResolverId", "metricNamespace": "Route53GlobalResolver", "metricValue": "1", "dimensions": { "GlobalResolverId": "$.enrichments[0].value" } } ] }

访问源允许的查询

{ "logGroupName": "/aws/vendedlogs/route53globalresolver/global-resolver/GLOBAL_RESOLVER_LOGS/gr-<resolverId>", "filterName": "AllowedQueriesByAccessSourceCidr", "filterPattern": "{ $.disposition = \"Allowed\" }", "metricTransformations": [ { "metricName": "AllowedQueriesByAccessSourceCidr", "metricNamespace": "Route53GlobalResolver", "metricValue": "1", "dimensions": { "AccessSourceCidr": "$.enrichments[0].data.access_source_cidr" } } ] }

按访问令牌进行警报查询

{ "logGroupName": "/aws/vendedlogs/route53globalresolver/global-resolver/GLOBAL_RESOLVER_LOGS/gr-<resolverId>", "filterName": "AlertQueriesByAccessTokenId", "filterPattern": "{ $.disposition = \"Alert\" }", "metricTransformations": [ { "metricName": "AlertQueriesByAccessTokenId", "metricNamespace": "Route53GlobalResolver", "metricValue": "1", "dimensions": { "AccessTokenId": "$.enrichments[0].data.token_id" } } ] }

按 DNS 查看的查询总数

{ "logGroupName": "/aws/vendedlogs/route53globalresolver/global-resolver/GLOBAL_RESOLVER_LOGS/gr-<resolverId>", "filterName": "TotalQueriesByDNSViewId", "filterPattern": "{ $.query_time = * }", "metricTransformations": [ { "metricName": "TotalQueriesByDNSViewId", "metricNamespace": "Route53GlobalResolver", "metricValue": "1", "dimensions": { "DNSViewId": "$.enrichments[0].data.dns_view_id" } } ] }

全球解析器的 SERVFAIL

{ "logGroupName": "/aws/vendedlogs/route53globalresolver/global-resolver/GLOBAL_RESOLVER_LOGS/gr-<resolverId>", "filterName": "ServfailQueriesByGlobalResolverId", "filterPattern": "{ $.rcode = \"SERVFAIL\" }", "metricTransformations": [ { "metricName": "ServfailQueriesByGlobalResolverId", "metricNamespace": "Route53GlobalResolver", "metricValue": "1", "dimensions": { "GlobalResolverId": "$.enrichments[0].value" } } ] }

被访问源拒绝

{ "logGroupName": "/aws/vendedlogs/route53globalresolver/global-resolver/GLOBAL_RESOLVER_LOGS/gr-<resolverId>", "filterName": "RefusedQueriesByAccessSourceCidr", "filterPattern": "{ $.rcode = \"REFUSED\" }", "metricTransformations": [ { "metricName": "RefusedQueriesByAccessSourceCidr", "metricNamespace": "Route53GlobalResolver", "metricValue": "1", "dimensions": { "AccessSourceCidr": "$.enrichments[0].data.access_source_cidr" } } ] }

按访问令牌划分的 NXDOMAIN

{ "logGroupName": "/aws/vendedlogs/route53globalresolver/global-resolver/GLOBAL_RESOLVER_LOGS/gr-<resolverId>", "filterName": "NxdomainQueriesByAccessTokenId", "filterPattern": "{ $.rcode = \"NXDOMAIN\" }", "metricTransformations": [ { "metricName": "NxdomainQueriesByAccessTokenId", "metricNamespace": "Route53GlobalResolver", "metricValue": "1", "dimensions": { "AccessTokenId": "$.enrichments[0].data.token_id" } } ] }

通过 DNS 视图查看 NOERROR

{ "logGroupName": "/aws/vendedlogs/route53globalresolver/global-resolver/GLOBAL_RESOLVER_LOGS/gr-<resolverId>", "filterName": "NoerrorQueriesByDNSViewId", "filterPattern": "{ $.rcode = \"NOERROR\" }", "metricTransformations": [ { "metricName": "NoerrorQueriesByDNSViewId", "metricNamespace": "Route53GlobalResolver", "metricValue": "1", "dimensions": { "DNSViewId": "$.enrichments[0].data.dns_view_id" } } ] }

Amazon CloudWatch Logs Insights 查询 P90 响应时间

Global Resolver 的 P90 响应时间

fields @timestamp, enrichments.0.value as GlobalResolverId, (response_time - query_time) as ResponseTime | filter ispresent(response_time) and ispresent(query_time) | stats pct(ResponseTime, 90) as P90ResponseTime by GlobalResolverId

距离访问令牌到期的天数

fields @timestamp, enrichments.0.data.token_id as AccessTokenId, enrichments.0.data.token_ttl_days as DaysUntilExpiry | filter ispresent(enrichments.0.data.token_ttl_days) | stats latest(DaysUntilExpiry) by AccessTokenId