导语:本文将探讨某新能源车企如何借助腾讯云可观测平台,实施可观测性方案,从而缓解运维焦虑,实现更高效的系统管理。
雷畅
腾讯高级工程师/腾讯云可观测方案架构师。具有多年可观测领域研发经验,对业务端到端监控有深刻理解。
案例背景
在新能源汽车行业的快速发展中,企业面临着日益复杂的运维挑战。可观测性技术的引入,不仅提供了更先进的监控工具,更成为现代互联网软件基础设施的重要组成部分,帮助企业迅速识别潜在问题、优化资源配置,并降低运维成本和风险。
云上业务
在 IT 系统的基础架构层面,该车企客户采用了混合云架构(公有云与本地数据中心相结合),在腾讯云上的重点业务包括智能营销、外呼平台和线上签约等。
在这些业务中,大数据驱动,尤其是实时分析场景,是其使用腾讯云的核心。特别是 EMR 大数据平台(基于云原生和泛 Hadoop 生态构建的弹性 MapReduce),它承载着智能营销等关键业务,帮助企业从海量数据中提取有价值的洞察,实现数据驱动的实时决策。
监控体系
为了提升对上述系统的可观测性,客户在本地数据中心构建了统一监控平台,该平台基于开源技术 Prometheus 和 Grafana 实现。
针对关键业务的有效监控,客户还依托腾讯云的可观测平台,采集 EMR、TKE、CLB 等云产品的监控指标,并在云上配置相应的告警策略。这些监控指标将通过腾讯云的 Prometheus 远程写入本地的 Prometheus,从而支持本地 Grafana 大盘的统一展示。
客户痛点
1.如何高效构建大数据平台的可观测性?
2.在新车直播发布、或者双十一大促这类流量高峰时,如何保障对业务系统的有效监控?
3.如何基于垂直领域知识,合理配置监控大盘和告警策略?
方案概要
为了解决客户的上述痛点,腾讯云可观测平台结合了 Prometheus 开源生态、腾讯云基础设施、和团队的自研创新能力,设计的解决方案概要如下:
1.EMR 监控,一键集成。
2.弹性扩容,无惧洪峰。
3.专家知识,预设提供。
方案详述
1.EMR 监控,一键集成
在腾讯云 Prometheus 实现对 EMR 的一键监控集成之前,若要满足对云上 EMR 对实时监控的需求,需由客户自行实现对泛 Hadoop 生态的大数据组件的指标采集和获取:在每个 EMR 节点上,手工部署 Java agent、jmx-exporter 等工具,再针对各个组件进行繁琐的采集配置,后续还要持续投入对这批组件的维护和更新。
而如今,腾讯云 Prometheus 已经实现了对 EMR 平台的监控集成,只需控制台几次点击,即可免去上述所有运维负担,直接开启对 EMR 组件的监控。针对同样的 EMR 组件采集,两种方案的运维工作量对比如下:
在腾讯云 Prometheus 一键集成 EMR 监控的背后,究竟托管了哪些监控组件,隐藏了哪些运维动作? 下面将详解借助 Prometheus 社区提供的开源方案,自行构建对 EMR 这类泛 Hadoop 大数据平台的可观测性——这也正是腾讯云 Prometheus 已替客户“大包大揽”、从而节约客户运维精力的核心所在。
从下面 EMR 的架构图可以看出,一个 EMR 集群建立在底层基础设施之上,包含了多种数据接入和计算引擎组件,可与多种数据源交互吞吐数据,最终形成大数据驱动的分析决策。
构建 EMR 这类泛 Hadoop 大数据平台的可观测性,旨在了解构成集群的全栈设施和组件的健康和性能状况,手段是通过对下至基础设施层、上至中间件和应用程序层的可观测数据进行收集、关联、聚合和分析,以探知系统的运行状况和健康趋势。
基于 Prometheus + Grafana 这组开源可观测领域的“最强 cp”、结合丰富的社区生态组件,则能很好地为泛 Hadoop 大数据平台提供立体全面的可观测性解决方案。
通过 Prometheus 相关组件将待监控的大数据组件的指标采集并存储后,用户就可以通过 Grafana 等可视化工具,对 Prometheus 中的指标数据进行查询和展示;用户还可通过设置告警规则,适时发送告警消息,以及时响应系统异常、减少故障恢复时间。
由于泛 Hadoop 生态各层设施和组件与 Prometheus 生态的集成成熟度也不同,接下来,我们将其分成几个大类、各个击破,实现对各层次组件的指标采集。
原生支持
对于底层算力基础设施中的 TKE 来说,作为 Kubernetes 容器平台,它对 Prometheus 的支持力度是最高的,体现在其内置的服务发现、直接暴露指标的能力,以及与 Kubernetes 生态系统中其他组件(如 kube-state-metrics 和 node-exporter)的良好集成。
因此,使用 TKE 作为底层算力资源,用户可以减少对额外 exporter 组件的依赖,大大简化了监控的配置和管理过程。
exporter 方式
exporter 是 Prometheus 开源生态中一个非常强大的功能,它可用于将第三方系统中现有的指标导出为 Prometheus 指标。这在无法直接使用 Prometheus 指标监控特定系统的情况下,是非常有用的。
例如:CVM exporter 是一个用于收集和暴露 CVM(Cloud Virtual Machine,云虚拟机)相关指标的工具,它可以从云虚拟机中提取性能数据和状态信息,并将这些数据转换为 Prometheus 可以理解的格式,从而使用户能够监控云虚拟机的运行状况和性能。
Prometheus 官方以及 Github 上开源的 exporter 非常丰富。腾讯云可观测也集成了诸多 exporter,可供客户一键开启对各类组件和云服务的集成。仍以 CVM 为例,只需一键,即可集成,免去服务发现和安装 exporter 的负担:
Java agent + exporter
JMX(Java Management Extensions)是用来管理和监控 Java 应用程序和系统的一种标准方式,而 Hadoop 生态系统中的许多组件都支持通过 JMX 来采集指标,例如:
此外,还有一些基于 Java 平台的中间件,也支持通过 JMX 暴露监控指标:
针对 JMX,Prometheus 开源社区提供了 jmx-exporter,用于将 JMX 暴露的指标转换成 TaskTracker 可通过 JMX 监控作业执行情况、任务状态和资源使用。
在最佳实践中,我们可将 jmx-exporter 以 Java agent 模式运行在 EMR 的每个节点,暴露 HTTP 服务器,以提供本地 JVM 的指标。
直接暴露
在 Spark 3.0 之前,它也需通过上述 Java agent 暴露指标;但是 Spark 3.0 之后, 其节点能在现有端口以 Prometheus 格式暴露指标,而无需再像上述 Java agent 那样,使用额外开放端口的代理方法。
此外,业务应用也能以类似的方式,自行定义指标埋点,并以 Prometheus 协议暴露出去。
众所周知,Promethes 获取指标,有推/拉两种模式,其中又以拉模式最为常用:
在 EMR 集群中,通常情况下,监控指标是通过 Pull 模式来收集的,即 Prometheus 以一定的时间间隔,定期从各个节点(如 NameNode、DataNode、ResourceManager、NodeManager 等)拉取指标。
然而,在某些特殊情况下,使用 Push 模式推送指标是有必要的。
例如:某些 Flink 作业的生命周期可能非常短、在下一次拉取指标的间隔到来之前,任务就已经完成。这种情况下,使用 Push 模式,作业就可以先将其指标推送到 Pushgateway 组件,再由 Prometheus 从该组件拉取,以确保 Prometheus 能获取到这些数据。
2.弹性扩容,无惧洪峰
如下图所示的高可用架构,是腾讯云 Prometheus 的一大核心优势:
实现方式是在腾讯云底层的海量算力和存储能力之上,又基于 TKE 的容器化、弹性伸缩等云原生能力,自研落地了一套分布式、集群化、存算分离的技术架构,以及高可用、高效率的采集节点调度方案和存储节点分片方案。
可扩展性优化
高可用优化
存储优化
正是借助上述弹性伸缩等高可用能力,客户在新车发布直播、双十一大促等流量高峰期,使用自建 Prometheus + Grafana 和云上 Prometheus + Grafana 进行双重保障,大大降低了在重大活动时的运维风险。
3.专家知识,预设提供
通过预设的 Grafana 大盘和基于业务场景的告警模板,腾讯云可观测平台不仅简化了客户的监控配置流程,还确保了关键指标的精准覆盖。
预设 Grafana 大盘 腾讯云 Grafana 除了兼容开源 Grafana 外,还提供了对常见云产品及组件的开箱即用、一键集成的监控功能。此外,针对不同业务场景,腾讯云 Grafana 预设了多种大盘模板。借助这些集成能力和预设大盘,客户可以快速实现从基础设施到应用和服务的监控可视化,显著减少指标梳理和面板制作的工作量。
如下图所示,在腾讯云 Prometheus 的集成中心,当客户一键安装 EMR 监控集成后,即可开箱即用相关 EMR 组件的 Grafana 大盘:
预设告警模板 腾讯云可观测平台提供了强大的告警能力,预设了针对不同产品和组件的业务场景告警模板。这些模板帮助客户快速配置告警规则,确保关键指标的实时监控。
通过这种方式,客户能够及时识别潜在问题,减少系统故障的响应时间,提升业务连续性。此外,预设的告警模板降低了客户在告警配置上的复杂性,使得即使是缺乏专业知识的用户也能轻松上手,从而显著提高了运维效率和决策能力。
如下图所示,当客户想要新建一条告警策略,可以直接从列表里选中某个云产品例如 EMR,则系统会自动弹出针对 EMR 各个组件所预设的各种告警规则,供客户直接使用,或在此基础上自主修改:
沉淀专家知识
仍以客户对 EMR 的监控为例,预设告警策略不仅基于行业实践提供通用模板,还结合腾讯云 EMR + 腾讯云 Prometheus 双方的专家知识,共同定制升级了一些告警策略,以提高告警效率,帮助客户“避坑”。
例如:EMR 原生指标 service_status 在服务异常或者用户手动停止这两种情况下,都会显示 0,因此无法针对异常服务精准告警。
于是, 腾讯云 Prometheus 在预设告警模板时,新增了辅助指标 emr_additional_service_status 来代表用户手动停止服务的信息 ,以跟原生指标组合,实现对异常服务的精确告警。
这样一来,当原生指标显示 service 状态异常时,结合腾讯云 Prometheus 提供的额外的辅助指标,其真值逻辑如下表所示:
原生指标 | 辅助指标 | 是否告警 |
---|---|---|
service 状态异常 | 是用户手动停止的 | 否 |
service 状态异常 | 不是用户手动停止的 | 是 |
由上表很容易看出,结合辅助指标后,该告警模板能过滤掉手动停止造成状态异常所导致的无效告警,大大节约了客户对 EMR 的运维精力。
落地效果
结语
该车企客户的监控平台依托腾讯云可观测平台的 Prometheus、Grafana 及告警功能,不仅实现了对 EMR 大数据平台等云产品和组件的高效监控,还落地了应对流量洪峰的云上云下一体化方案,并借力各领域专家知识优化了可视化大盘和告警策略。
这一系列举措显著提升了监控效率、节约了运维成本、降低了系统风险,为客户的业务稳定性提供了坚实保障。
腾讯云可观测平台已覆盖出行行业几乎所有头部车企,积累了丰富的行业案例和最佳实践,为客户提供 Prometheus + Grafana 指标监控、APM 分布式链路追踪、RUM 前端/终端性能监控,以及云拨测、云压测等全栈多维度可观测能力。
若有任何可观测需求,欢迎随时前来咨询。我们将竭诚为您提供专业的服务与支持,帮助您实现更高效的业务监控与优化。
联系我们
如有任何疑问,欢迎加入官方技术交流群
关于腾讯云可观测平台
腾讯云可观测平台(Tencent Cloud Observability Platform,TCOP)基于指标、链路、日志、事件的全类型监控数据,结合强大的可视化和告警能力,为您提供一体化监控解决方案。满足您全链路、端到端的统一监控诉求,提高运维排障效率,为业务的健康和稳定保驾护航。功能模块有: