ARMS Prometheus 监控全面对接开源 Prometheus 生态,支持类型丰富的组件监控,提供多种开箱即用的预置监控大盘,且提供全面托管的 Prometheus 服务。

什么是 Prometheus?

Prometheus 是一套开源的系统监控和报警框架,灵感源自 Google 的 Borgmon 监控系统。2012 年,SoundCloud 的 Google 前员工创造了 Prometheus,并作为社区开源项目进行开发。2015 年,该项目正式发布。2016 年,Prometheus 加入云原生计算基金会(Cloud Native Computing Foundation),成为受欢迎度仅次于 Kubernetes 的项目。

Prometheus 具有以下特性:

  • 多维的数据模型(基于时间序列的 Key/Value 键值对)
  • 灵活的查询和聚合语言 PromQL
  • 提供本地存储和分布式存储
  • 通过基于 HTTP 的 Pull 模型采集时间序列数据
  • 可利用 Pushgateway(Prometheus 的可选中间件)实现 Push 模式
  • 可通过动态服务发现或静态配置发现目标机器
  • 支持多种图表和数据大盘

ARMS Prometheus 监控和开源 Prometheus 监控对比的优势

整体而言,与开源 Prometheus 监控相比,ARMS Prometheus 监控的优势体现为:

  • 更轻量、更稳定、更准确
  • 数据量无上限
  • 完全兼容开源生态
  • 节省成本

更轻量、更稳定、更准确

  • 与开源 Prometheus 监控相比,ARMS Prometheus 监控的整体结构更加轻量化。您无需自行搭建 Prometheus 监控系统,仅需安装 ARMS Prometheus 监控探针 PromAgent 即可开始监控业务。dg_arms_prometheus_advantage
  • 在系统稳定性方面,开源 Prometheus 监控一般会占用 16GB~128GB 的内存,而 ARMS Prometheus 监控仅占用 200MB~1GB 的内存和 1 核 CPU。相比开源 Prometheus 监控,ARMS Prometheus 监控更加稳定。
  • 在抓取和写入数据的准确性方面,开源 Prometheus 监控仅抓取 1 次数据,并且瞬时写入存储组件时存在丢弃逻辑。而 ARMS Prometheus 监控抓取数据会重试 5 次,持续并发写入存储组件,不存在丢弃逻辑。

数据量无上限

  • 开源 Prometheus 监控的数据采集能力上限为百万条 Metrics 级别,而 ARMS Prometheus 监控的数据采集能力可以按照 K8s 副本数水平扩展,从而均衡分解采集任务。
  • 开源 Prometheus 监控的数据存储能力上限受本地磁盘大小的限制,而 ARMS Prometheus 监控使用中心云存储服务,理论上存储能力无上限。

完全兼容开源生态

  • ARMS Prometheus 监控完全兼容 Prometheus 监控开源生态链路中的客户端和查询语言部分,兼容并优化开源生态链路中的采集规则和使用价值部分。dg_arms_prometheus_ecology
  • ARMS Prometheus 监控兼容并提供三种主流采集规则的实现,包括标准开源 prometheus.yaml 采集规则配置文件、适合自定义 K8s 内监控的采集规则 ServiceMonitor、以及默认采集规则 Annotation。与开源 Prometheus 监控相比,ARMS Prometheus 监控无需重启,即可使用 prometheus.yaml 配置文件动态更新采集规则。在 Deployment 文件里也无需编写多行代码,仅需增加以下 3 个 Annotation 注解即可。
    prometheus.io/scrape: "true"
    prometheus.io/port: "9090"
    prometheus.io/path: "/metrics"
  • ARMS Prometheus 监控兼容可视化 Grafana。通过配置 Prometheus HTTP API URL 即可在 Grafana 中完成数据源的多租户隔离,以及 Grafana 大盘的多租户隔离。ARMS Prometheus 监控还兼容 Grafana 的 Explore 数据调试模块。
  • ARMS Prometheus 监控兼容开源 Prometheus 监控的 HTTP API 模块,完整支持 query、query_range 和 labelValues 3 个标准数据查询接口,并通过在数据 URL 中添加 /userId/clusterId/regionId/ 这组 ID 达到多租户隔离的效果。
  • ARMS Prometheus 监控虽然使用 ARMS 已有的告警系统,但完全兼容开源 Prometheus 监控的告警规则 PromQL。

节省成本

  • ARMS Prometheus 监控支持默认 K8s 监控。在您安装默认 K8s 监控后,ARMS Prometheus 监控会自动为您创建默认的 Exporter、采集规则、Grafana 大盘以及 ARMS 告警。您的时间成本可由原来使用开源 Prometheus 监控 K8s 的 3 天左右降低至 10 分钟左右。pg_prom_default_k8s_dashboard
  • ARMS Prometheus 监控支持开源组件监控。您仅需输入阿里云账号的 AccessKeyId 和 AccessKeySecret、以及 RDS 和 Redis 组件的账号和密码,ARMS Prometheus 监控即可为您默认生成这些组件的 Exporter,并为您创建默认的组件大盘。您的时间成本可由原来使用开源 Prometheus 监控开源组件的 7 天左右降低至 3 分钟左右。pg_prom_mysql_dashboard
  • ARMS Prometheus 监控支持一键安装、一键卸载,以及通过健康检查功能调试 Prometheus 监控。您的时间成本可由原来使用开源 Prometheus 监控的 1 天左右降低至 3 分钟左右。