View a markdown version of this page

了解并优化 Amazon Managed Service for Prometheus 的成本 - Amazon Managed Service for Prometheus

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

了解并优化 Amazon Managed Service for Prometheus 的成本

以下常见问题及其答案可能有助于了解和优化与 Amazon Managed Service for Prometheus 相关的成本。

哪些因素会增加我的成本?

对于大多数客户而言,指标摄取占据了大部分成本。查询使用率高的客户也会看到一些基于已处理的查询样本的成本,而指标存储仅占总成本的一小部分。有关每个的价格的更多信息,请参阅“Amazon Managed Service for Prometheus 产业页面”中的定价

降低成本的最佳方法是什么? 如何降低摄取成本?

摄取率(不是指标的存储)是大多数客户的主要成本。您可以通过降低收集频率(增加收集间隔)或减少摄入的活跃系列数量来降低摄取率。

您可以从收集代理增加收集(抓取)间隔:Prometheus 服务器(在代理模式下运行)和 Distro for (ADOT) 收集器都 OpenTelemetry支持 AWS 该配置。scrape_interval例如,将收集间隔从 30 秒增加到 60 秒会将摄取使用量减少一半。

您也可以使用 <relabel_config> 筛选发送到 Amazon Managed Service for Prometheus 的指标。有关在 Prometheus 代理配置中重新标记的更多信息,请参阅 https://prometheus。 io/docs/prometheus/latest/configuration/configuration/#relabel_config 在 Prometheus 文档中。

降低我的查询成本的最佳方法是什么?

查询成本基于已处理的样本数量。您可以降低查询频率来降低查询成本。

要更深入地了解对您的查询费用影响最大的查询,请参阅在 Amazon Managed Service for Prometheus 中管理查询成本

如果我缩短指标的保留期,这会有助于减少我的账单总额吗?

您可以缩短保留期,但是,这不太可能大幅降低成本。

有关如何配置工作区的保留期的信息,请参阅配置工作区

如何降低警报查询成本?

警报功能会对数据进行查询,从而增加查询成本。以下是一些可以用来优化警报查询并降低成本的策略。

  • 使用 Amazon Managed Service for Prometheus 警报 – Amazon Managed Service for Prometheus 外部的警报系统可能需要额外的查询来增加弹性或高可用性,因为外部服务会从多个可用区或区域查询指标。这包括在 Grafana 中发出警报,以实现高可用性。这可能会使您的成本增加三倍或更多。Amazon Managed Service for Prometheus 中的警报功能经过优化,将以最少的查询次数为您提供高可用性和弹性。

    我们建议使用 Amazon Managed Service for Prometheus 中的原生警报,而不是外部警报系统。

  • 优化警报间隔 - 优化警报查询的一种快速方法是增加自动刷新间隔。如果您有一个每分钟查询一次的警报,但只需要每五分钟查询一次,那么增加自动刷新时间间隔可以为您节省五倍的警报查询成本。

  • 使用最佳回溯 - 查询中的回溯窗口越大,查询的成本就越高,因为它需要提取更多的数据。确保 PromQL 查询中的回溯窗口大小与需要警报的数据相匹配。例如,在下面的规则中,表达式包括一个十分钟的回溯窗口:

    - alert: metric:alerting_rule expr: avg(rate(container_cpu_usage_seconds_total[10m])) > 0 for: 2m

    expr 更改为 avg(rate(container_cpu_usage_seconds_total[5m])) > 0 有助于降低查询成本。

一般来说,查看您的警报规则,确保针对服务的最佳指标发出警报。在同一指标上创建重叠警报或提供相同信息的多个警报非常容易,尤其是当您随着时间的推移添加警报时。如果您发现经常有几组警报同时发出,您可以优化警报,不将所有警报都包括在内。

这些建议有助于您降低成本。最终,您必须在成本与创建一套正确的警报以了解系统状态之间取得平衡。

有关 Amazon Managed Service for Prometheus 中警报的更多信息,请参阅使用警报管理器在 Amazon Managed Service for Prometheus 中管理和转发警报

我可以随时查看账单吗?

它会 AWS 成本和使用情况报告 跟踪您的 AWS 使用情况,并提供账单周期内与您的账户相关的预估费用。有关更多信息,请参阅什么是 AWS 成本和使用情况报告? 在《AWS 成本和使用情况报告用户指南》

我可以使用哪些指标来监控我的成本?

您采集的指标样本是亚马逊 Prometheus 托管服务的主要成本驱动因素。摄取的样本数量直接决定了您的每月费用,因此监控和了解您的摄入模式至关重要。

AWS Cost Explorer是监控您的亚马逊托管服务 Prometheus 成本的真实来源。您可以从多个维度监控 Cost Explorer, day-by-day了解适用于Prometheus的亚马逊托管服务的历史和成本趋势,包括摄取的样本。AWS 成本异常检测还可以让您监控支出模式的意外变化。

使用IngestionRate指标提供了一种辅助方法来监控与成本直接相关的摄取趋势。IngestionRate用作附加指标的好处包括:

  • 工作空间级别的跟踪 — 以每个工作空间为基础监控摄取情况,而不仅仅是账户级别。

  • 精细可见性 — 每小时甚至每小时跟踪一次摄取模式, minute-by-minute以获得实时见解。

  • 主动监控-设置 CloudWatch警报,在使用量峰值出现在账单中之前对其进行检测。

注意

IngestionRate可用于估算成本和趋势或归因每个工作空间的成本,但并非 100% 准确。由于IngestionRate报告每隔 1 分钟采样的平均速率,因此将该速率乘以时间可以得出摄取的样本的近似值,而不是确切的样本数。此外,Amaz CloudWatch on 的数据保留政策会影响历史查询的可用粒度,超过 63 天的数据间隔限制为 1 小时。

有关监控 Amazon Prometheus 托管服务指标的更多信息,请参阅。 CloudWatch 使用 CloudWatch 指标监控亚马逊托管服务的 Prometheus 资源

如何查看我的费用 AWS Cost Explorer?

作为亚马逊Prometheus托管服务费 AWS Cost Explorer 用的真实来源,提供您对Prometheus样本的亚马逊托管服务的实际账单使用量和费用,包括按月份和地区划分的历史账单数据。使用 Cost Explorer 查看最终账单金额和 day-by-day成本趋势。

要查看您的 Amazon Prometheus 托管服务费用,请执行以下操作:

访问权限 AWS Cost Explorer
  1. 登录到 AWS 管理控制台。

  2. 导航至 “账单和成本管理” 控制面板。

  3. 从左侧导航菜单中选择 Cos t Explorer

  4. 选择 Launch Cost Explorer(如果你是第一次使用它)。

配置报告
  1. 将您的时间范围设置为所需的账单周期(例如,2025 年 3 月至 2026 年 2 月)。

  2. 在 “筛选器” 下,选择:

    • 服务:选择 “适用于 Prometheus 的亚马逊托管服务”。

    • 使用类型:筛选 “MetricSampleCount” 以隔离样本摄取费用。

对数据进行分组和查看
  1. 在 “分组依据” 下,选择 “区域” 以查看每个区域的成本和使用情况数据。

  2. 选择您的首选可视化效果(条形图、折线图或表格)。

  3. 选择 “应用” 以生成报告。

导出数据(可选)
  1. 选择右上角的下载 CSV 以导出数据。

  2. CSV 文件将包含:账单周期、区域、使用类型、账单金额和使用量(计费样本数量)。

注意

Cost Explorer 的数据通常会延迟 24 小时。对于最新的账单周期,数据可能要等到第二天才可用。

如何计算一个月内摄入的样本数量?

您可以使用带有 Amazon CloudWatch 的IngestionRate指标来计算采集的大致样本数量。 AWS Command Line Interface这对于查看月度账单和了解跨工作空间的使用模式非常有用。

要检索摄取数据,请执行以下操作:

aws cloudwatch get-metric-data \ --region your-region \ --start-time start-timestamp \ --end-time end-timestamp \ --metric-data-queries '[ { "Id": "e1", "Expression": "SUM(METRICS())", "Period": 3600 }, { "Id": "ws1", "MetricStat": { "Metric": { "Namespace": "AWS/Usage", "MetricName": "ResourceCount", "Dimensions": [ {"Name": "Service", "Value": "Prometheus"}, {"Name": "Resource", "Value": "IngestionRate"}, {"Name": "Type", "Value": "Resource"}, {"Name": "Class", "Value": "None"}, {"Name": "ResourceId", "Value": "YOUR_AMP_WORKSPACE_ID"} ] }, "Period": 3600, "Stat": "Average" } } ]'

该命令返回每小时平均IngestionRate值,以每秒采样数为单位。要计算一个月内摄取的样本的大致数量,请将每个小时的数据点乘以 3600(每小时秒),得出该小时内摄取的样本,然后将该月所有每小时的总量相加:

Monthly samples ≈ Σ (hourly IngestionRate average × 3600)

例如,如果一个小时平均IngestionRate每秒返回 500 个样本,则该小时贡献了大约 500 × 3600 = 1,800,000 个样本。每月每小时重复此操作,然后将结果相加,得出大概的每月摄取次数。

关键参数:

  • Period: 3600(以秒为单位 1 小时)

  • StartTime: 您的月初(例如,2026-02-01T00:00:00Z

  • EndTime: 您的月底(例如,2026-03-01T00:00:00Z

  • Stat: 平均

要找到您的工作空间,请执行 IDs以下操作:

aws amp list-workspaces --region your-region

使用工作空间 ID 筛选指标以仅显示指定工作空间的数据,而不是聚合该区域的所有 Prometheus 资源。

哪些数据粒度可用于历史成本分析?

Amaz CloudWatch on 的数据保留政策会影响历史查询的可用粒度:

  • 存储时间@@ 少于 15 天的数据:以 1 分钟为间隔进行查询 (Period: 60)

  • 15—63 天前的数据:以 5 分钟为间隔进行查询 (Period: 300)

  • 超过 63 天的数据:限制在 1 小时间隔内 (Period: 3600)

对于超过 63 天的历史分析, CloudWatch 自动将数据缩减至至少 1 小时的时间段。在查看超过 63 天的月份的账单时,必须使用每小时的汇总数据。月度样本计算使用这些小时平均值的数据点,将每个值相加乘以整个月的 3600。

这种精细度的降低进一步促成了为什么要为旧数据IngestionRate提供估算值而不是精确计数——请务必参阅 Cost Explorer 了解您的权威账单金额。

有关 CloudWatch 指标保留的更多详情,请参阅 Amazon CloudWatch 用户指南中的指标保留率

监控亚马逊托管服务 Prometheus 成本的最佳做法是什么?

为了有效管理和优化您的 Amazon 托管服务 Prometheus 支出,请考虑实施以下监控实践:

  • 定期监控 Cost Explorer,跟踪实际支出趋势,识别多个维度的成本异常,包括摄取的样本。

  • 启用 “ AWS 成本异常检测” 以接收提醒,提醒您的亚马逊托管服务 Prometheus 支出出现意外成本增加。

  • 将 CloudWatch 警报设置IngestionRate为开启,以便在工作空间级别进行监控,并尽早发现摄入峰值。

  • 定期导出 Cost Explorer 数据以进行长期成本分析和报告。

为什么我月初的账单高于月末?

Amazon Managed Service for Prometheus 采用分层定价模式,这会导致您的初始使用费用较高。当您的使用量达到更高的摄取等级时,如果费用较低,您的费用就会降低。有关定价(包括摄取等级)的更多信息,请参阅“Amazon Managed Service for Prometheus 产业页面”中的定价

注意
  • 等级是针对区域内的使用情况,而不是跨区域的使用情况。一个区域内的使用量必须达到下一等级,才能使用较低的费率。

  • 在中的组织中 AWS Organizations,等级使用是按付款人账户计算的,而不是按账户计算的(付款人账户始终是组织管理账户)。当一个组织内所有账户的摄取指标总量(在一个区域内)达到下一等级时,所有账户都将按照较低的费率收费。

我删除了我所有的 Amazon Managed Service for Prometheus 工作区,但似乎仍在收费。这可能是怎么回事?

在这种情况下,一种可能性是,您仍然有 AWS 托管抓取器,这些抓取器设置为将指标发送到已删除的工作区。按照说明查找和删除抓取程序