Pixie是一款开源的Kubernetes应用可观测性工具。使用Pixie可以查看集群的高级状态(服务地图、集群资源、应用流量),还可以深入查看更详细的视图(Pod状态、火焰图、单个完整应用请求)。
为什么选择Pixie?
三个特性使Pixie拥有神奇的开发者体验:
-
自动遥测: Pixie使用eBPF自动收集遥测数据,如完整请求内容、资源和网络指标、应用程序配置文件等。查看完整的数据源列表点击这里。
-
集群内边缘计算: Pixie在集群本地收集、存储和查询所有遥测数据。Pixie使用的集群CPU不到5%,在大多数情况下不到2%。
-
可编程性: PxL是Pixie灵活的类Python查询语言,可以在Pixie的UI、CLI和客户端API中使用。
使用场景
网络监控
使用Pixie监控您的网络,包括:
- 集群内网络流量的流向。
- 集群内DNS请求的流向。
- 单个完整DNS请求和响应。
- 集群范围内TCP丢包和TCP重传的地图。
基础设施健康
与网络和应用层一起监控您的基础设施,包括:
- 按Pod、节点、命名空间的资源使用情况。
- 按Pod、节点的CPU火焰图。
服务性能
Pixie自动跟踪多种协议。立即获得服务健康状况的可见性,包括:
- 服务之间的流量流向。
- 每个服务和端点的延迟。
- 单个服务最慢请求的样本。
数据库查询性能分析
Pixie自动跟踪多种不同的数据库协议。使用Pixie监控数据库请求的性能:
- 所有Pod的延迟、错误和吞吐量(LET)率。
- 每个规范化查询的LET率。
- 每个单独完整查询的延迟。
- 单个完整请求和响应。
请求追踪
Pixie通过提供集群中流动请求的即时和深入(完整内容)可见性,使微服务间通信的调试变得简单。查看:
- 支持协议的完整请求和响应内容。
- 每个服务、Pod的错误率。
持续应用性能分析
使用Pixie的持续性能分析功能来识别应用程序代码中的性能问题。
分布式bpftrace部署
使用Pixie将bpftrace程序部署到集群中的所有节点。部署程序后,Pixie将输出捕获到表格中,并使数据可在Pixie UI中查询和可视化。图中显示了TCP丢包情况。有关更多详细信息,请查看教程或观看概述。
动态Go日志记录
在生产环境中调试Go二进制文件,无需重新编译和重新部署。有关更多详细信息,请查看教程或观看概述。
开始使用
安装Pixie只需几分钟。要开始使用,请查看安装指南。
安装完成后,您可以通过以下方式与Pixie交互:
参与其中
Pixie是一个社区驱动的项目;我们欢迎您的贡献!对于代码贡献,请阅读我们的贡献指南。
- 提交GitHub问题报告错误或请求新功能。
- 加入我们的Slack进行实时交流和快速提问。我们也在CNCF slack上提供帮助。
- 在Twitter和YouTube上关注我们。
- 添加我们的社区会议日历。
- 对我们的路线图提供反馈。
最新版本
我们对Pixie的不同组件进行单独版本控制,因此GitHub显示的"最新"版本可能只是其中一个组件的最新版本。 我们在此维护所有组件的最新版本链接:
更新日志
更新日志存储在带注释的git标签中。
对于vizier:
git for-each-ref refs/tags/release/vizier/$tagname --format='%(tag) %(contents)'
对于CLI:
git for-each-ref refs/tags/release/cli/$tagname --format='%(tag) %(contents)'
这些信息也发布在releases页面上。
采用者
已知的Pixie采用者和用户列在这里。
软件物料清单
我们发布了Pixie依赖的所有组件及其相应版本和许可证的列表,可以在这里查看。
致谢
Pixie项目要感谢Equinix Metal通过CNCF社区基础设施实验室慷慨提供计算资源,用于运行项目的所有CI/CD。
关于Pixie
Pixie由New Relic, Inc.于2021年6月捐赠给云原生计算基金会,成为沙箱项目。
许可证
Pixie采用Apache License, Version 2.0许可。