- Home
- About Pixie
- Installing Pixie
- Using Pixie
- Tutorials
- Reference
General
Data Collection
How do I…
Pixie is an open source observability tool for Kubernetes applications. See the Overview.
Pixie was originally built by Pixie Labs. New Relic, Inc. acquired Pixie Labs in December 2020 and contributed Pixie to the Cloud Native Computing Foundation as a sandbox project in June 2021.
Pixie is released under the Apache 2.0 license.
Pixie has been tested to work with a variety of Kubernetes environments listed in the requirements page. Just because Pixie hasn’t been tested on a specific environment, does not mean that Pixie won't work. If you’ve successfully deployed Pixie to an environment not currently listed, please submit a PR to update the page.
Yes. See the self-hosted Install Guide to get started.
Yes. Pixie Community Cloud is a hosted version of Pixie. Pixie stores all data on the customer's cluster, resulting in a very small cloud footprint which allows Pixie to offer the Community Cloud offering 100% free for all Pixie users. See the Community Cloud Install Guide to get started.
Pixie stores the data it collects in-memory on the nodes in your cluster; no data is sent to a centralized backend outside of the cluster. This is true for both self-hosted Pixie and Pixie Community Cloud.
Pixie has a 1GiB memory requirement per node. After installing Pixie, it is normal to see a temporary increase in memory usage of the vizier-pem
pods as they begin to fill their data tables.
Retention time depends on the level of traffic in your cluster, but will generally be on the order of hours. Each data table in Pixie (e.g. http_events
) has its own maximum size. These tables collect data until the maximum size is reached, and then begin dropping the oldest data.
Pixie's Plugin System integrates with third-party observability tools to provide long-term retention.
Pixie stores the telemetry data it collects in-memory on the nodes in your cluster. Data processing and script execution are also performed in the cluster. End-to-end encryption is offered for data in flight between in-cluster storage and presentation in the UI, CLI, and API.
Pixie Cloud (self-hosted or Pixie Community Cloud) hosts the UI and stores limited metadata related to account (user, organization) and Kubernetes control data (cluster name, number of nodes, etc). All communication with Pixie Cloud is TLS encrypted.
Data flows through Pixie's Cloud via a reverse proxy as encrypted traffic without any persistence. This allows developers to access data without being in the same network as the cluster.
Pixie automatically collects a variety of information from your cluster using eBPF and from Linux directly. The collected data includes:
All this data is collected without requiring any manual application instrumentation. See the Data Sources page for additional information.
Pixie uses eBPF to automatically collect telemetry data for a variety of protocols.
Pixie captures cluster, namespace, node, pod, service, and container metadata. Pixie does not yet capture logs or events.
Pixie captures spans, but not full traces. To construct a full trace a request would need to be tagged with a traceID and Pixie does not modify requests. The Roadmap contains plans to support constructing full traces if a request is already tagged with a traceID.
Yes, Pixie can capture requests with only one endpoint within the cluster. For example, if a service makes a call to an external mySQL database which is not monitored by Pixie, Pixie will still be able to capture the SQL calls. However, for endpoints outside of the cluster, Pixie won’t be able to resolve the remote address to a pod/service name, so you’ll need to know the endpoint’s IP address.
Yes, Pixie captures machine-level resource metrics on Linux and other Unix systems such as CPU usage, memory, disk utilization and network bandwidth.
Typical performance overhead for node CPU usage is between 2-5%, depending on the amount and type of traffic. We are in the process of optimizing this, however, so watch for that to go down even further.
Pixie's continuous profiler currently supports Go, C++, Rust and Java. The Roadmap contains plans to expand support to other languages.
Pixie offers two client libraries (Go, Python) to allow developers to easily integrate Pixie observability data into their existing stack. You can also use Pixie's Plugin System to export data in the OpenTelemetry format. Pixie does not currently offer data ingestion. The Roadmap contains plans to support exporting or ingesting data in a variety of additional formats.
See the User Management & Sharing reference docs.
Pixie does not yet offer full RBAC support. However, you can enable “Approvals” under the Org Settings tab on the admin page. This requires each user who registers in the org to be manually approved on the Users tab before they can log in.
Pixie does not offer alerting. However, alerts can be set up using Pixie’s API. For example, see the Slackbot Alert Tutorial.
In the future, Pixie's Plugin System will integrate with third-party observability tools to provide alerts using Pixie data.
The UI does not currently support deleting clusters. If you’d like to rename your cluster, you can redeploy Pixie with the cluster name flag. See the install guides for specific instructions.