
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
![Quay容器][quay] ![Docker Hub容器][docker]
YACE(全称yet another cloudwatch exporter)是一款用于AWS CloudWatch指标的Prometheus导出器,采用Go语言编写,并使用官方AWS SDK。
自2024年11月起,YACE已加入https://github.com/prometheus-community%E3%80%82%E6%9B%B4%E5%A4%9A%E8%AF%A6%E6%83%85%E8%AF%B7%E5%8F%82%E9%98%85%E4%BB%A5%E4%B8%8B%E5%85%AC%E5%91%8A%EF%BC%9A
如果您倾向于Java实现,可考虑使用官方的https://github.com/prometheus/cloudwatch_exporter%E3%80%82
由于YACE版本尚未达到1.0.0,任何新版本均可能引入不兼容变更。变更详情将记录在CHANGELOG.md中。
在可行情况下,功能将先标记为弃用而非立即修改或移除,这意味着YACE仍可正常运行但可能输出警告日志。弃用功能预计将在未来2-3个版本中永久变更或移除。
有关如何报告安全漏洞,请参阅SECURITY.md。
仅最新版本会接收安全更新,不支持旧版本。
/aws/sagemaker/Endpoints - SageMaker端点/aws/sagemaker/InferenceRecommendationsJobs - SageMaker推理推荐作业/aws/sagemaker/ProcessingJobs - SageMaker处理作业/aws/sagemaker/TrainingJobs - SageMaker训练作业/aws/sagemaker/TransformJobs - SageMaker批处理转换作业AmazonMWAA - 托管Apache AirflowAWS/ACMPrivateCA - ACM私有CAAWS/AmazonMQ - 托管消息代理服务AWS/AOSS - OpenSearch无服务器AWS/ApiGateway - ApiGateway(V1和V2)AWS/ApplicationELB - 应用程序负载均衡器AWS/AppRunner - 托管容器应用服务AWS/AppStream - AppStreamAWS/AppSync - AppSyncAWS/Athena - AthenaAWS/AutoScaling - 自动扩展组AWS/Backup - 备份AWS/Bedrock - 生成式AIAWS/Billing - 账单AWS/Cassandra - CassandraAWS/CertificateManager - 证书管理器AWS/ClientVPN - 基于客户端的***AWS/CloudFront - CloudFrontAWS/Cognito - CognitoAWS/DataSync - DataSyncAWS/DDoSProtection - 分布式拒绝服务(DDoS)保护服务AWS/DirectoryService - 目录服务(MicrosoftAD)AWS/DMS - 数据库迁移服务AWS/DocDB - DocumentDB(兼容MongoDB)AWS/DX - Direct ConnectAWS/DynamoDB - NoSQL键值数据库AWS/EBS - 弹性块存储服务AWS/EC2 - 弹性计算云AWS/EC2Spot - 弹性计算云Spot实例AWS/ECR - 弹性容器注册表AWS/ECS - 弹性容器服务(服务指标)AWS/EFS - 弹性文件系统AWS/ElastiCache - ElastiCacheAWS/ElasticBeanstalk - Elastic BeanstalkAWS/ElasticMapReduce - Elastic MapReduceAWS/ELB - 弹性负载均衡器AWS/EMRServerless - Amazon EMR无服务器AWS/ES - ElasticSearchAWS/Events - EventBridgeAWS/Firehose - 托管流服务AWS/FSx - FSx文件系统AWS/GameLift - GameLiftAWS/GatewayELB - 网关负载均衡器AWS/GlobalAccelerator - AWS全球加速器AWS/IoT - IoTAWS/IPAM - IP地址管理器AWS/Kafka - 托管Apache KafkaAWS/KafkaConnect - AWS MSK连接器AWS/Kinesis - Kinesis数据流AWS/KinesisAnalytics - Kinesis数据分析SQL应用AWS/KMS - 密钥管理服务AWS/Lambda - Lambda函数AWS/Logs - CloudWatch日志AWS/MediaConnect - AWS Elemental MediaConnectAWS/MediaConvert - AWS Elemental MediaConvertAWS/MediaLive - AWS Elemental MediaLiveAWS/MediaPackage - AWS Elemental MediaPackageAWS/MediaTailor - AWS Elemental MediaTailorAWS/MemoryDB - AWS MemoryDBAWS/MWAA - 托管Apache Airflow(容器、队列和数据库指标)AWS/NATGateway - NAT网关AWS/Neptune - NeptuneAWS/NetworkELB - 网络负载均衡器AWS/NetworkFirewall - 网络防火墙AWS/Network Manager - 网络管理器AWS/PrivateLinkEndpoints - VPC端点AWS/PrivateLinkServices - VPC端点服务AWS/Prometheus - 托管Prometheus服务AWS/QLDB - 量子账本数据库AWS/QuickSight - QuickSight(商业智能)AWS/RDS - 关系型数据库服务AWS/Redshift - Redshift数据库AWS/Redshift-Serverless - Redshift无服务器AWS/Route53 - Route53健康检查AWS/Route53Resolver - Route53解析器AWS/RUM - 真实用户监控AWS/S3 - 对象存储AWS/Sagemaker/ModelBuildingPipeline - SageMaker模型构建管道AWS/SageMaker - SageMaker调用AWS/Scheduler - EventBridge调度器AWS/SecretsManager - 密钥管理器AWS/SES - 简单电子邮件服务AWS/SNS - 简单通知服务AWS/SQS - 简单队列服务AWS/States - Step FunctionsAWS/StorageGateway - 本地访问云存储AWS/Timestream - 时序数据库服务AWS/TransitGateway - 中转网关AWS/TrustedAdvisor - Trusted AdvisorAWS/Usage - 部分AWS资源和API的使用情况AWS/VpcLattice - VPC LatticeAWS/VPN - ***连接AWS/WAFV2 - Web应用防火墙v2AWS/WorkSpaces - WorkSpacesContainerInsights - EKS ContainerInsights(依赖CloudWatch代理)CWAgent - CloudWatch代理ECS/ContainerInsights - ECS/ContainerInsights(Fargate指标)Glue - AWS Glue作业为提供向后兼容性,YACE的部分新功能或破坏性变更可能受特性标志保护。详情请参阅docs/feature_flags.md。
请参考安装指南。
导出器需要在有权限访问AWS的环境中运行。导出器使用https://aws.github.io/aws-sdk-go-v2/docs/getting-started/%EF%BC%8C%E5%B9%B6%E6%94%AF%E6%8C%81%E9%80%9A%E8%BF%87https://aws.github.io/aws-sdk-go-v2/docs/configuring-sdk/#specifying-credentials%E6%8F%90%E4%BE%9B%E8%AE%A4%E8%AF%81%E3%80%82%E6%97%A0%E8%AE%BA%E4%BD%BF%E7%94%A8%E4%BD%95%E7%A7%8D%E6%96%B9%E5%BC%8F%E8%8E%B7%E5%8F%96%E5%87%AD%E8%AF%81%EF%BC%8C%E5%AF%BC%E5%87%BA%E5%99%A8%E9%83%BD%E9%9C%80%E8%A6%81%E6%9F%90%E4%BA%9B%E6%9D%83%E9%99%90%E6%89%8D%E8%83%BD%E6%AD%A3%E5%B8%B8%E5%B7%A5%E4%BD%9C%E3%80%82
作为快速入门,以下IAM策略可授予YACE所需的所有权限:
json{ "Version": "2012-10-17", "Statement": [ { "Action": [ "tag:GetResources", "cloudwatch:GetMetricData", "cloudwatch:GetMetricStatistics", "cloudwatch:ListMetrics", "apigateway:GET", "aps:ListWorkspaces", "autoscaling:DescribeAutoScalingGroups", "dms:DescribeReplicationInstances", "dms:DescribeReplicationTasks", "ec2:DescribeTransitGatewayAttachments", "ec2:DescribeSpotFleetRequests", "shield:ListProtections", "storagegateway:ListGateways", "storagegateway:ListTagsForResource", "iam:ListAccountAliases" ], "Effect": "Allow", "Resource": "*" } ] }
如果需要根据需求移除某些权限,可根据要刮取的CloudWatch命名空间调整策略:
运行静态和发现作业所需的最低权限:
json"tag:GetResources", "cloudwatch:GetMetricData", "cloudwatch:GetMetricStatistics", "cloudwatch:ListMetrics"
刮取AWS/ApiGateway命名空间资源发现所需权限:
json"apigateway:GET"
刮取AWS/AutoScaling命名空间资源发现所需权限:
json"autoscaling:DescribeAutoScalingGroups"
刮取AWS/DMS命名空间资源发现所需权限:
json"dms:DescribeReplicationInstances", "dms:DescribeReplicationTasks"
刮取AWS/EC2Spot命名空间资源发现所需权限:
json"ec2:DescribeSpotFleetRequests"
刮取AWS/Prometheus命名空间资源发现所需权限:
json"aps:ListWorkspaces"
刮取AWS/StorageGateway命名空间资源发现所需权限:
json"storagegateway:ListGateways", "storagegateway:ListTagsForResource"
刮取AWS/TransitGateway命名空间资源发现所需权限:
json"ec2:DescribeTransitGatewayAttachments"
刮取AWS/DDoSProtection命名空间受保护资源发现所需权限:
json"shield:ListProtections"
AWS IAM API支持创建账户别名,这是易于识别账户的友好名称。每个账户最多可有一个别名(文档)。以下权限用于获取账户别名(导出为aws_account_info指标的标签):
json"iam:ListAccountAliases"
如果在AWS EC2实例中运行YACE,导出器会自动尝试关联IAM角色。如需禁用此行为,可设置环境变量AWS_EC2_METADATA_DISABLED=true关闭元数据端点使用。
请参考配置文档。
text### 带有exportedTagsOnMetrics的指标 aws_ec2_cpuutilization_maximum{dimension_InstanceId="i-someid", name="arn:aws:ec2:eu-west-1:472724724:instance/i-someid", tag_Name="jenkins"} 57.2916666666667 ### 带有标签的信息辅助指标 aws_elb_info{name="arn:aws:elasticloadbalancing:eu-west-1:472724724:loadbalancer/a815b16g3417211e7738a02fcc13bbf9",tag_KubernetesCluster="production-19",tag_Name="",tag_kubernetes_io_cluster_production_19="owned",tag_kubernetes_io_service_name="nginx-ingress/private-ext",region="eu-west-1"} 0 aws_ec2_info{name="arn:aws:ec2:eu-west-1:472724724:instance/i-someid",tag_Name="jenkins"} 0 ### 跟踪CloudWatch请求以计算成本 yace_cloudwatch_requests_total 168
text# CPU利用率 + 实例ID的Name标签 - 监控无需实例ID aws_ec2_cpuutilization_average + on (name) group_left(tag_Name) aws_ec2_info # 弹性搜索集群的可用存储空间(MB)+ Type标签 (aws_es_free_storage_space_sum + on (name) group_left(tag_Type) aws_es_info) / 1024 # 为4xx ELB指标添加Kubernetes/kops标签 (aws_elb_httpcode_backend_4_xx_sum + on (name) group_left(tag_KubernetesCluster,tag_kubernetes_io_service_name) aws_elb_info) # ELB可用性指标(成功请求/总请求)+ k8s服务名称 # 所有指标需设置nilToZero,否则无法工作 ((aws_elb_request_count_sum - on (name) group_left() aws_elb_httpcode_backend_4_xx_sum) - on (name) group_left() aws_elb_httpcode_backend_5_xx_sum) + on (name) group_left(tag_kubernetes_io_service_name) aws_elb_info # 预测7天后弹性搜索磁盘大小并带有type和version标签 predict_linear(aws_es_free_storage_space_minimum[2d], 86400 * 7) + on (name) group_left(tag_type, tag_version) aws_es_info # 基于过去10分钟预测未来32天CloudWatch成本 # 前1000000次请求免费 # 每1000次GetMetricStatistics API请求0.01美元(https://aws.amazon.com/cloudwatch/pricing/) ((increase(yace_cloudwatch_requests_total[10m]) * 6 * 24 * 32) - 1000000) / 1000 * 0.01
为支持本地测试,可通过设置环境变量AWS_ENDPOINT_URL覆盖所有AWS URL:
shelldocker run -d --rm -v $PWD/credentials:/exporter/.aws/credentials -v $PWD/config.yml:/tmp/config.yml \ -e AWS_ENDPOINT_URL=http://localhost:4766 -p 5000:5000 --name yace quay.io/prometheuscommunity/yet-another-cloudwatch-exporter:latest
多RoleArns适用于监控多账户环境(所有账户使用相同AWS服务)。例如,在监控账户运行YACE,其他账户(如newspapers、radio、television)运行ECS集群,每个账户授予YACE假设本地IAM角色的权限。此类场景配置示例:
yamlapiVersion: v1alpha1 sts-region: eu-west-1 discovery: jobs: - type: AWS/ECS regions: - eu-north-1 roles: - roleArn: "arn:aws:iam::1111111111111:role/prometheus" # newspaper - roleArn: "arn:aws:iam::2222222222222:role/prometheus" # radio - roleArn: "arn:aws:iam::3333333333333:role/prometheus" # television metrics: - name: MemoryReservation statistics: - Average - Minimum - Maximum period: 6
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。


来自真实用户的反馈,见证轩辕镜像的优质服务