菜单
开源 RSS

升级你的 Grafana Pyroscope 安装

你可以将现有的 Pyroscope 安装升级到下一个版本。然而,任何新版本都可能包含重大变更,这些变更在部署到生产环境之前应在非生产环境中进行测试。

升级过程因版本而异,具体取决于后续版本所做的更改。

本升级指南适用于本地安装,不适用于 Grafana Cloud。

升级到 Pyroscope 1.0

Pyroscope 1.0 版本是一个包含重大变更的主要版本。本指南解释了如何从先前版本升级到 v1.0。

本文档详细描述了我们对 Pyroscope 所做的更改及其对您的影响。为方便起见,在本指南末尾,我们提供了简短的检查清单供您参考。

新架构

自被 Grafana Labs 收购以来,我们很高兴地宣布 Pyroscope 的主要变化:一种新的水平可伸缩架构。我们的团队吸取了多年来关于剖析数据积累的独特经验,并将其与经过实战考验的 Cortex 架构相结合,该架构支持 Grafana Labs 的其他数据库,如 Loki、Mimir 和 Tempo。这意味着您现在可以将 Pyroscope 配置为一个高可用服务,由廉价的对象存储作为后端,并能够根据需要进行扩展和缩减。

许可证变更

Pyroscope 服务器现已获得 AGPLv3 许可。我们所有的客户端集成仍根据 Apache 2.0 许可证授权。

Pyroscope 成立于 2020 年,旨在围绕开源 Pyroscope 项目建立一个可持续的业务,以便将我们商业产品产生的收入重新投资于技术和社区。

我们相信 AGPLv3 许可证是 Pyroscope 前进的最佳方式。它使我们能够继续围绕 Pyroscope 建立可持续的业务,同时确保项目保持开源,并且社区可以继续使用并为其做出贡献。

新的 Docker 仓库

新的 Pyroscope Docker 仓库位于 grafana/pyroscope。旧仓库 pyroscope/pyroscope 将不再更新。

重大变更

实现重大飞跃意味着我们不得不进行一些破坏性改动。我们已尽力将这些变更的影响降到最低,但其中一些是不可避免的。对于可能造成的任何不便,我们深表歉意。我们鼓励您通过在 Pyroscope GitHub 仓库中创建新 issue 或为带有 og-feature 标签的现有 issue 点赞,为社区做出贡献。

存储格式变更

新的本地存储格式是全新的,针对对象存储进行了优化。我们不支持从旧存储格式迁移到新格式。这意味着您在升级到 v1.0 时将丢失数据。

配置文件变更

配置文件参数以及配置文件的默认位置已更改。旧配置文件通常位于 /etc/pyroscope/server.yml,新配置文件位于 /etc/pyroscope/config.yaml。您可以在此处找到所有配置参数的详细说明。

停止支持某些子命令

我们从 pyroscope CLI 中移除了所有与客户端剖析相关的子命令,只保留了与服务器端相关的子命令。这意味着不再支持以下子命令:

  • pyroscope exec
  • pyroscope adhoc
  • pyroscope connect
  • pyroscope agent

这一战略转变已经酝酿了一段时间,我们正在从基于 CLI 的剖析转向拥抱原生集成。展望未来,我们鼓励用户利用针对特定编程语言量身定制的原生集成,例如用于 Python 的 pip 包、用于 .NET 应用程序的 .NET 包、用于 Ruby 应用程序的 Ruby gems 等等。eBPF 集成也是获取整个集群剖析数据的好方法。

通过采用原生集成,我们旨在为用户提供更流畅高效的剖析体验,利用特定语言的工具和库来提供更好的性能、易用性以及与其各自应用程序的无缝集成。

停止支持 OAuth

OAuth 是使用 SQLite 实现的,在 Pyroscope 是一个单一二进制文件时这很有意义,但对于新的分布式架构已不再可行。过渡到新的分布式架构意味着我们不得不停止支持 OAuth。

我们建议使用 Grafana 来可视化您的剖析数据。Grafana 10 原生支持 Pyroscope,并且对 OAuth 以及许多其他身份验证方法提供了非常成熟的支持。

API 稳定性

尽管这是一个主要版本,但 HTTP API 尚未稳定,可能会有所更改。未来我们将尽力保持 API 向后兼容,并最大程度地减少这些更改的影响并提供迁移路径。

社区行动号召

Pyroscope v1.0 带来了巨大的架构变革,我们已尽力将这些变更的影响降到最低,但其中一些是不可避免的。我们的目标是让用户尽可能顺利地过渡。因此,我们鼓励您通过在 Pyroscope GitHub 仓库中创建新 issue 或为带有 og-feature 标签的现有 issue 点赞,为社区做出贡献。感谢您的反馈和参与,它们对塑造 Pyroscope 的未来至关重要。

v1.0 升级检查清单

我们提供了以下检查清单,以帮助您升级到 v1.0。

Docker 部署升级检查清单

升级到 v1.0 时,建议您遵循此检查清单:

  • 将您的配置从旧格式迁移到新格式(旧配置文件通常位于 /etc/pyroscope/server.yml,新配置文件位于 /etc/pyroscope/config.yaml)。此处提供了所有配置参数的详细说明。
  • 将 docker 镜像从 pyroscope/pyroscope 升级到 grafana/pyroscope。新 docker 镜像的链接在此处
  • 删除旧数据(通常位于 /var/lib/pyroscope)。

Helm 部署升级检查清单

升级到 v1.0 时,建议您遵循此检查清单:

  • 将您的配置从旧格式迁移到新格式(旧配置文件通常位于 /etc/pyroscope/server.yml,新配置文件位于 /etc/pyroscope/config.yaml)。此处提供了所有配置参数的详细说明。
  • 删除旧的 Helm Chart
    bash
    helm delete pyroscope # replace pyroscope with the name you used when installing the chart
  • 安装新的 Helm Chart
    bash
    kubectl create namespace pyroscope
    helm repo add grafana https://grafana.github.io/helm-charts
    helm repo update
    helm -n pyroscope install pyroscope grafana/pyroscope
    有关如何安装 Helm Chart 的更多信息,请参阅我们的 Helm 文档此处