在构建任何软件应用程序时,选择合适的数据库至关重要。所有数据库在性能方面都有不同的优势和劣势,因此,针对您的特定用例和数据模型,决定哪种数据库的优势最大,劣势最小,是一项重要的决策。下面您将找到 Mimir 和 Prometheus 的关键概念、架构、功能、用例和定价模型的概述,以便您可以快速了解它们之间的比较。

本文的主要目的是比较 Mimir 和 Prometheus 在涉及时序数据的工作负载中的性能表现,而不是所有可能的用例。时序数据通常在数据库性能方面带来独特的挑战。这是由于大量数据被写入以及访问这些数据的查询模式。本文无意说明哪个数据库更好;它只是提供了每个数据库的概述,以便您可以做出明智的决定。

Mimir vs Prometheus 对比细分


 
数据库模型

时序数据库

时序数据库

架构

Grafana Mimir 是一款时序数据库,专为高性能、实时监控和分析而设计。它采用分布式架构,允许跨多个节点进行水平扩展,以处理大量数据和查询。由于它是开源的,因此可以本地部署,也可以作为 Grafana 托管的托管解决方案

Prometheus 使用拉取模型,它以给定的间隔从配置的目标中抓取指标。它以自定义、高效的本地存储格式存储时序数据,并支持多维数据收集、查询和警报。它可以作为单个二进制文件部署在服务器上,也可以部署在 Kubernetes 等容器平台上。

许可证

APGL 3.0

Apache 2.0

应用场景

监控、可观测性、物联网

监控、警报、可观测性、系统指标、应用指标

可扩展性

水平可扩展

Prometheus 旨在实现可靠性,可以垂直扩展(具有增加资源的单个节点)或通过联邦扩展(Prometheus 服务器从其他 Prometheus 服务器抓取指标的分层设置)。

正在寻找最有效的入门方式吗?

无论您是寻求节省成本、降低管理开销还是开源,InfluxDB 都能为您提供帮助。

Mimir 概述

Grafana Mimir 是一个开源软件项目,为 Prometheus 提供可扩展的长期存储解决方案。Grafana Mimir 于 Grafana Labs 启动并在 2022 年发布,旨在成为最可扩展、性能最高的开源指标时序数据库。该项目融入了 Grafana Labs 工程师在大规模运行 Grafana Enterprise Metrics 和 Grafana Cloud Metrics 时获得的知识和经验。

Prometheus 概述

Prometheus 是一个开源监控和警报工具包,最初于 2012 年在 SoundCloud 开发。此后,它已成为广泛采用的监控解决方案,并且是云原生计算基金会 (CNCF) 项目的一部分。Prometheus 专注于为容器化和基于微服务的环境提供实时洞察和警报。其主要用例是监控基础设施和应用程序,重点是可靠性和可扩展性。


Mimir 用于时序数据

Grafana Mimir 非常适合处理时序数据,使其成为涉及指标存储和分析场景的合适选择。它为 Prometheus(一种流行的开源监控和警报系统)提供长期存储功能。借助 Grafana Mimir,用户可以长期存储和查询时序指标,从而进行历史分析和趋势检测。对于需要可扩展且高性能的时序数据存储以用于指标监控和可观测性目的的应用程序,它尤其有用。

Prometheus 用于时序数据

Prometheus 专为时序数据设计,因为它的主要重点是基于基础设施和应用程序状态的监控和警报。它使用拉取模型,其中 Prometheus 服务器以固定的时间间隔从目标系统抓取指标。此模型适用于监控动态环境,因为它允许自动发现和监控新实例。但是,Prometheus 并非旨在作为通用时序数据库,并且可能不是高基数或长期数据存储的最佳选择。


Mimir 关键概念

  • 指标:在 Grafana Mimir 中,指标表示随时间跟踪的测量值或观测值。它们可以包括各种类型的数据,例如系统指标、应用程序性能指标或传感器数据。
  • 长期存储:Grafana Mimir 提供专为长期保留时序数据而定制的存储解决方案,允许用户长期存储和查询历史指标。
  • 微服务:Grafana Mimir 采用基于微服务的架构,其中系统由多个可以独立并行运行的水平可扩展微服务组成。

Prometheus 关键概念

  • 指标:系统特定方面的数字表示,例如 CPU 使用率或内存消耗。
  • 时序:指标的数据点集合,按时间戳索引。
  • 标签:键值对,为指标提供元数据和上下文,从而实现更精细的查询和聚合。
  • PromQL:Prometheus 使用其自己的查询语言 PromQL(Prometheus 查询语言)来查询时序数据和生成警报。


Mimir 架构

Grafana Mimir 采用基于微服务的架构,其中系统包含多个水平可扩展的微服务。这些微服务可以独立并行运行,从而实现工作负载的有效分配和可扩展性。Grafana Mimir 的组件被编译成单个二进制文件,提供了一个统一且有凝聚力的系统。该架构旨在实现高可用性和多租户,使多个用户和应用程序能够同时使用数据库。这种分布式架构确保了在处理大规模指标存储和检索场景中的可扩展性和弹性。

Prometheus 架构

Prometheus 是一个单服务器、独立的监控系统,它使用拉取方法从目标系统收集指标。它以自定义、高度压缩的磁盘格式存储时序数据,并针对快速查询和低资源使用进行了优化。Prometheus 的架构是模块化和可扩展的,具有导出器、服务发现机制以及与其他监控系统的集成等组件。作为一个非分布式系统,它缺乏内置的集群或水平可扩展性,但它支持联邦,允许多个 Prometheus 服务器共享和聚合数据。

免费时序数据库指南

获取关于备选方案和选择数据库的关键要求的全面审查。

Mimir 功能

可扩展性

Grafana Mimir 旨在水平扩展,使系统能够处理不断增长的数据量和不断增加的工作负载。其水平可扩展的微服务架构允许无缝扩展和改进的性能。

高可用性

Grafana Mimir 通过确保冗余和容错能力来提供高可用性。它允许跨多个节点复制和分发数据,从而确保数据持久性和存储指标的持续可用性。

长期存储

Grafana Mimir 为时序指标的长期存储提供专用解决方案。它提供高效的存储和检索机制,允许用户长期保留和分析历史指标数据。

Prometheus 功能

拉取模型

Prometheus 通过主动抓取目标来收集指标,从而实现动态环境的自动发现和监控。

PromQL

强大的 Prometheus 查询语言允许对时序数据进行富有表现力且灵活的查询。

警报

Prometheus 支持基于用户定义的规则发出警报,并与各种警报管理和通知系统集成。


Mimir 用例

指标监控和可观测性

Grafana Mimir 非常适合监控和可观测性用例。它支持时序指标的存储和分析,允许用户实时监控其系统和应用程序的性能、健康状况和行为。

长期指标存储

Grafana Mimir 专注于提供可扩展的长期存储,非常适合需要长期保留和分析历史指标数据的应用程序。它允许用户存储和查询 Prometheus 生成的大量时序数据。

趋势和异常检测

通过使用 Mimir 存储长期历史数据,它可用于检测指标中的趋势,以及将当前指标与历史数据进行比较以检测异常值和异常情况。

Prometheus 用例

基础设施监控

Prometheus 广泛用于监控容器化和基于微服务的基础设施的健康状况和性能,包括 Kubernetes 和 Docker 环境。

应用性能监控 (APM)

Prometheus 可以使用客户端库收集自定义应用程序指标,并实时监控应用程序性能。

警报和异常检测

Prometheus 使组织能够根据特定阈值或条件设置警报,帮助他们快速识别和响应潜在问题或异常情况。


Mimir 定价模型

Grafana Mimir 是一个开源项目,这意味着它可以免费使用,并且不需要任何许可费用。用户可以下载源代码并在自己的基础设施上部署 Grafana Mimir,而无需承担直接成本。但是,重要的是要考虑与托管和维护数据库基础设施相关的运营成本。

Prometheus 定价模型

Prometheus 是一个开源项目,其使用不涉及任何许可费用。但是,在部署自管理 Prometheus 服务器时,可能会产生硬件、托管和运营费用。此外,一些基于云的托管 Prometheus 服务(例如 Grafana Cloud 和 Weave Cloud)根据数据保留、查询速率和支持等因素提供不同的定价模型。