使用时间序列平台实时洞察 AWS 支出

导航至

Houghton Mifflin Harcourt (HMH) 的工程总监 Robert Allen 表示:“过去,在不了解费用去向的情况下,这就像一个黑匣子。” 他也是公司 Bedrock 平台技术服务团队的成员。

Houghton Mifflin Harcourt (HMH) 总部位于波士顿,是一家拥有近 200 年历史的出版公司,其内容可通过多种媒体获取。作为一家全球学习公司,HMH 专注于学前到 12 年级的教育内容、服务以及面向当今不断变化的环境的前沿技术解决方案。

HMH 团队希望获得实时可见性、价值实现时间和控制力,以便更好地将绩效与基础设施运营的信托责任方面相协调。他们面临的三个业务挑战是:

  • 实时了解其 AWS 支出,这涵盖了多个业务部门和许多开发团队的多个账户。公司需要实时了解其众多账户的成本,每个账户都管理着自己的服务。
  • 优化其 DevOps 监控(以优化每个单独产品的基础设施成本)。工程师们被激励去让基础设施工作起来,而没有真正认真考虑成本是多少。他们缺乏关于基础设施决策成本的闭环反馈。
  • 收集和跟踪 KPI 以衡量公司在线教育业务的绩效。HMH 团队一直在使用 Elasticsearch 以非常机械的方式通过日志解析来收集他们的大部分 KPI 信息。他们需要一种更动态和自动化的方式来跟踪这些指标。

这三个挑战有一个共同点:它们都涉及时间序列数据。考虑到时间序列工作负载的独特属性——涉及更多数据点、更多数据源、更多监控和更多控制——HMH 意识到他们需要一个专为时间戳数据构建的企业级时间序列平台。

使用一个时间序列平台解决多个问题

HMH 选择了 InfluxDB Enterprise,它是开源核心 TICK 堆栈的强化版本。他们充分利用了 InfluxDB Enterprise 独特的功能集——例如高可用性、水平可扩展性以及 LDAP 和 OAuth 支持。

他们目前有大约 25 个职能团队在公司内部致力于解决特定的产品或平台服务问题。每个团队都能够使用 InfluxDB 维护自己的数据库和保留策略。

HMH 还部署了 InfluxData 的开源指标收集代理 Telegraf,以优化支出和性能并为决策提供信息。Telegraf 被证明非常适合他们的基于容器的环境,因为它适应非常特定的指标收集方式,并且可以在容器中与给定进程一起运行并在本地对其进行监控。

切换到 Telegraf 很简单,因为 Telegraf 能够:

  • 消费基础设施各个方面的指标
  • 轻松开发用于指标捕获的自定义插件和应用程序
  • 一次捕获并由多个服务摄取
  • 对一对多指标源进行操作

他们还使用了 InfluxData 的 Kapacitor,即平台的原生数据处理引擎。Kapacitor 可以处理来自 InfluxDB 的流数据和批处理数据,并通过其编程语言 TICKscript 实时处理这些数据。Kapacitor 的强大功能帮助解决了 HMH 反复出现的数据挑战:

  • 团队维护自己的工作流程
  • 各种工作流程的模板化
  • 编写用户定义函数(可以与 Kapacitor 通信以处理数据的函数)的能力。
  • 为 PagerDuty、Slack、Webhook 等发出警报。
  • 高级降采样和转换工作流程(使他们能够保留最重要的数据,以便他们仍然可以查看数据中的总体趋势)

Houghton Mifflin Harcourt 的 DevOps 监控和实时分析解决方案

HMH DevOps 监控和实时分析解决方案还使用 InfluxDB 来监控 AWS 账单。AWS Programmatic Billing 提供非常详细的数据(一种以大型 CSV 文件形式提供的多账单)。本质上,这些数据以一小时为间隔汇总。用户可以使用自定义标签或其他形式的报告文件来详细或广泛地定义其维度。

HMH 发现,当启用时间序列索引 (TSI) 时,InfluxDB Enterprise 可以非常好地处理高基数。基数是数据库存储的唯一时间序列的数量,而 TSI 使序列的数量不受服务器硬件上内存量的限制。

每个月,HMH 从 AWS 摄取大约 2300 万行项目(AWS 成本和使用情况报告包含 AWS 账户使用的每个 AWS 产品、使用类型和操作的唯一组合的行项目)。这些行项目中的每一个都转换为点,并且粒度为一小时,因此每个行项目代表一小时的账单。

InfluxDB monitoring AWS billing

显示 InfluxDB 监控 AWS 账单的屏幕截图

通过使用 InfluxDB 灵活的内置保留策略功能,HMH 自定义了数据存储持续时间以满足他们的需求。他们为两种不同的数据类型设置了两个保留策略:一个 5 周的保留策略(存储未开票数据,用于日常监控和调查目的)和一个无限保留策略(存储所有已开票数据,永不过期)。

InfluxDB retention policies

两个保留策略:5 周和无限

为了能够详细地报告应用程序/阶段级别的成本分析,他们使用了自定义标签(用户或 AWS 分配给 AWS 资源的标签)。激活成本分配标签后,AWS 会使用它们在成本分配报告中组织资源成本,以便于分类和跟踪 AWS 成本。

track AWS costs

用于启用项目成本分配的成本分配标签

至于捕获遥测 KPI 数据,他们使用 Telegraf。KPI 数据作为事件、计数器和指标存储在 InfluxDB 中。由于 HMH 团队现在具有高基数的灵活性,因此他们能够收集这些指标并使用时间序列数据将其汇总。

将实时可见性转化为业务价值

凭借 InfluxDB Enterprise 提供的实时可见性、价值实现时间和控制力,Houghton Mifflin Harcourt 的 Bedrock 平台技术服务团队现在可以:

  • 执行数据向下钻取,以发现公司产品如何消耗 AWS 服务
  • 查看成本变化,以识别与他们的期望与已知情况的偏差
  • 按产品、每小时成本查看支出,并按某些产品细分其运行率。
  • 使数百名工程师能够共存和开发,而不会对其同事的工作产生不利影响
  • 更好地控制他们收集哪些指标以及如何收集这些指标

InfluxDB 时间序列数据库的多功能性使 Houghton Mifflin Harcourt 能够将其用于各种应用程序,以监控账单指标、DevOps 指标和 KPI。

通过阅读完整的案例研究,了解有关此 InfluxData 用例的更多信息。