CDK API 网关指标未显示

问题描述 投票:0回答:1

我是 AWS CDK 世界的新手。我正在尝试为 API 网关启用指标,因此在创建 API 时我做了以下操作(特别是对于

deploy_options
,它应该执行指标操作)

api = aws_apigateway.RestApi(
    stack,
    id_,
    rest_api_name=name,
    description=description,
    endpoint_configuration=aws_apigateway.EndpointConfiguration(
        types=[aws_apigateway.EndpointType.PRIVATE], vpc_endpoints=[vpce]
    ),
    policy=my_policy_document,
    deploy_options=aws_apigateway.StageOptions(
        metrics_enabled=True,
        logging_level=aws_apigateway.MethodLoggingLevel.INFO,
        data_trace_enabled=True,
        tracing_enabled=True,  # Enable X-Ray tracing
    ),
)

# Retrieve and output various metrics
error_4xx_metric = api.metric_client_error()
error_5xx_metric = api.metric_server_error()
latency_metric = api.metric_latency()
request_count_metric = api.metric_count()

core.CfnOutput(stack, f"{id_}4xxErrorMetric", value=error_4xx_metric.metric_name)
core.CfnOutput(stack, f"{id_}5xxErrorMetric", value=error_5xx_metric.metric_name)
core.CfnOutput(stack, f"{id_}LatencyMetric", value=latency_metric.metric_name)
core.CfnOutput(
    stack, f"{id_}RequestCountMetric", value=request_count_metric.metric_name
)

我可以在 CloudFormation 中看到预期的输出,但是当我尝试在 API Gateway 仪表板(甚至在 CloudWatch Metrics)中检查它们时,我根本看不到任何指标。这让我发疯,我花了一天的大部分时间试图让这项工作成功。

PS:API Gateway > Stages下的日志和跟踪已启用: enter image description here

我缺少什么?

amazon-web-services aws-cloudformation amazon-cloudwatch aws-cdk
1个回答
0
投票

因此有两件事可能导致此问题:

1 - 您需要确保与 API 网关关联的 IAM 角色具有将指标和日志写入 CloudWatch 的正确权限:

cloudwatch:PutMetricData
logs:CreateLogStream
logs:PutLogEvents

这些权限应该是与 API 网关执行角色关联的策略的一部分。

2 - 日志可能需要一些时间才能显示,您是否尝试发送许多请求然后检查日志?

© www.soinside.com 2019 - 2024. All rights reserved.