前言

云原生技术,如 Kubernetes 和容器化,已经成为现代应用部署和管理的标准。Prometheus 作为云原生生态中的核心监控工具,其设计初衷就是为了与这些技术无缝集成。许多云原生工具和平台,如 Kubernetes、Istio 和 Envoy,已经内置了对 Prometheus 的支持。而且原生应用通常是动态和弹性的,Prometheus 的监控系统能够适应这种动态性,提供实时的监控数据,这对于确保应用的高可用性和性能至关重要。

Prometheus 拥有一个活跃的开源社区,不断有新的 Exporter 和集成被开发和贡献。这种广泛的社区支持使得 Prometheus 能够监控几乎任何类型的服务和应用,并且由于 Prometheus 的开源特性,企业可以利用 Prometheus 及其生态系统中的免费工具来构建监控解决方案,从而降低成本。此外,Prometheus 的社区支持和广泛的文档资源也有助于降低学习成本。

观测云是一个强大的监控和观测平台,它通过深度集成 Prometheus 生态系统,为用户提供了一个全面而灵活的监控解决方案。观测云通过全面支持 Prometheus 生态的关键组件,如 Exporter、Pushgateway、Remote Write、Prometheus CRD 和 PromQL,为用户提供了一个强大而灵活的监控平台。这种支持不仅确保了与 Prometheus 生态的兼容性,还扩展了观测云的监控能力和灵活性,使其成为企业和开发者在监控和观测方面的理想选择。

Prometheus Exporter 支持

Prometheus Exporter 是一种工具,用于将各种服务的指标数据暴露给 Prometheus,从而实现监控。支持 Prometheus Exporter 对于兼容 Prometheus 生态至关重要,它能够允许观测云直接接入 Prometheus 社区广泛使用的监控工具和指标,极大地扩展了观测云的监控能力。对于 Prometheus Exporter,观测云支持如下特性:

  • 指标采集:观测云 DataKit 可以配置 Prometheus Exporter 的 URL,自动采集指标数据。
  • 自定义配置:用户可以通过修改 DataKit 的配置文件,来指定 Exporter 的采集间隔、标签过滤等。
  • 指标集管理:观测云将 Prometheus 的指标名称转换为指标集和字段,方便管理和查询。

具体配置可参考观测云文档:https://docs.guance.com/integrations/prom/

图片

Prometheus Pushgateway 支持

Pushgateway 是 Prometheus 生态系统中的一个组件,主要用于解决 Prometheus 默认的 pull(拉取)模式在某些情况下无法获取数据的问题,监控源通过主动发送监控数据到 Pushgateway,再由 Prometheus 定时拉取指标。观测云通过 DataKit 支持 Pushgateway,提供了一个简单而高效的方式来接收和处理这些指标数据,支持如下特性:

  • 配置灵活:可以通过配置文件或环境变量来开启 Pushgateway 采集器,并指定路由前缀、指标集名称等。
  • 数据解码:支持解码 gzip 数据,并处理 Prometheus 文本数据和 Protobuf 数据。
  • 标签处理:在 Pushgateway URL 上可以指定 labels 和 base64 labels,也可以指定指标集名称。
  • 完全 push 模式:解决了原生 Prometheus Pushgateway 单点故障,数据清理以及监控状态不准确的问题。

具体配置可参考观测云文档:https://docs.guance.com/integrations/pushgateway/

图片

Prometheus Remote Write 支持

在云原生生态中,Prometheus 的 Remote Write 功能是一个关键特性,它允许 Prometheus 将数据异步地写入到其他存储系统中。观测云 DataKit 支持 Prometheus 通过 Remote Write 的方式将数据写入,提供全面的指标管理能力,主要支持特性如下:

  • 配置灵活:观测云对 Prometheus Remote Write 写入配置提供了全面的兼容,包括上传协议的支持,以及对 snappy 压缩协议的支持等。
  • 标签处理:观测云提供了灵活的标签管理功能,包括忽略特定标签、使用正则表达式忽略标签、标签白名单以及标签重命名,使用户能够精确控制数据的标签信息。
  • 指标管理:观测云提供对指标过滤的能力,可以通过指定指标集和指标名来选择性上传所需要的指标。

具体配置可参考观测云文档:https://docs.guance.com/integrations/prom_remote_write/

图片

Prometheus CRD 支持

Prometheus-Operator 提供了一种在 Kubernetes 集群中管理 Prometheus 实例的方法。观测云通过 DataKit 支持 Prometheus-Operator 的 CRD(自定义资源定义),如 PodMonitor 和 ServiceMonitor,进一步扩展了其在 Kubernetes 环境中的监控能力。观测云支持特性如下:

  • CRD 资源支持:DataKit 支持 Prometheus-Operator 的 PodMonitor 和 ServiceMonitor CRD。
  • 自动发现:根据 CRD 实例的配置,DataKit 可以自动发现并采集指标。
  • 指标集管理:支持将指标名称转换为指标集和字段,方便管理和查询,并可以自定义指标集。

具体配置可参考观测云文档:https://docs.guance.com/integrations/kubernetes-prometheus-operator-crd/

图片

PromQL 查询支持

PromQL 是 Prometheus 的查询语言,用于查询和分析监控数据。观测云查询语言支持 PromQL,允许用户使用这种强大的查询语言来检索和处理监控数据。对于 PromQL 的支持,观测云主要提供以下的能力:

  • 指标分析:观测云指标分析模式支持用户输入 PromQL 语法对指标数据进行分析。
  • 仪表板支持:观测云仪表支持 PromQL 语法拉取数据,支持25+图表组件,能力媲美 Grafana。
  • 监控告警支持:观测云监控器支持 PromQL 语法创建告警,相对于 AlertManager,配置更加直观,支持能力更加丰富。

图片

图片

Grafana 面板导入支持

在 Prometheus 生态中,Grafana 已成为展示和分析监控数据的黄金标准。观测云对 Grafana 导入的全面支持,不仅提供了一种高效的数据迁移工具,更在监控生态系统中架起了一座桥梁。

Guance CLI 工具是观测云提供的 Grafana 仪表板导入工具,主要支持以下能力:

  • 支持 Grafana 实例搜索并导入:通过 Grafana 实例的 URL 和 API 密钥,执行特定命令来搜索并导入仪表板到观测云。
  • 支持从 Grafana 模板导入:支持从 Grafana Dashboard Templates 下载仪表板并导入到观测云。
  • 支持从文件导入:将 Grafana 的仪表板 JSON 模型保存到本地文件, 执行命令从文件直接导入到观测云。
  • 支持导出 Terraform 文件:支持 Observability as Code 的最佳实践,Guance CLI 可以将 Grafana 仪表板导出为 Terraform 文件,可使用 Terraform 来管理观测云仪表板。

具体参考文档:https://cli.guance.io/docs/how-to-guides/grafana Demo 体验:https://killercoda.com/guance-cloud/course/official/grafana-importer

图片

结语

观测云对 Prometheus 生态的全面兼容,为用户提供了一个强大、灵活且可扩展的监控平台。这种深度集成不仅简化了 Prometheus 的使用,也使得用户能够充分利用 Prometheus 生态系统的强大功能。随着云原生技术的不断发展,观测云将继续致力于提供与 Prometheus 生态系统兼容的先进监控解决方案。