pixie Documentation

Instant Kubernetes-Native Application Observability

6,438 stars C++ C++ 1 file ยท ~2,864 tokens #aks#apache-arrow#cloud-native#cncf#distributed-systems#ebpf#eks#gke
RAW Doc

1. Project Overview & Quickstart (pixie-io/pixie)













Pixie is an open-source observability tool for Kubernetes applications. Use Pixie to view the high-level state of your cluster (service maps, cluster resources, application traffic) and also drill down into more detailed views (pod state, flame graphs, individual full-body application requests).

Why Pixie?

Three features enable Pixie's magical developer experience:

  • Auto-telemetry: Pixie uses eBPF to automatically collect telemetry data such as full-body requests, resource and network metrics, application profiles, and more. See the full list of data sources here.

  • In-Cluster Edge Compute: Pixie collects, stores and queries all telemetry data locally in the cluster. Pixie uses less than 5% of cluster CPU and in most cases less than 2%.

  • Scriptability: PxL, Pixieโ€™s flexible Pythonic query language, can be used across Pixieโ€™s UI, CLI, and client APIs.

Use Cases

Network Monitoring

Use Pixie to monitor your network, including:

  • The flow of network traffic within your cluster.
  • The flow of DNS requests within your cluster.
  • Individual full-body DNS requests and responses.
  • A Map of TCP drops and TCP retransmits across your cluster.

For more details, check out the tutorial or watch an overview.

Infrastructure Health

Monitor your infrastructure alongside your network and application layer, including:

  • Resource usage by Pod, Node, Namespace.
  • CPU flame graphs per Pod, Node.

For more details, check out the tutorial or watch an overview.

Service Performance

Pixie automatically traces a variety of protocols. Get immediate visibility into the health of your services, including:

  • The flow of traffic between your services.
  • Latency per service and endpoint.
  • Sample of the slowest requests for an individual service.

For more details, check out the tutorial or watch an overview.

Database Query Profiling

Pixie automatically traces several different database protocols. Use Pixie to monitor the performance of your database requests:

  • Latency, error, and throughput (LET) rate for all pods.
  • LET rate per normalized query.
  • Latency per individual full-body query.
  • Individual full-body requests and responses.

For more details, check out the tutorial or watch an overview.

Request Tracing

Pixie makes debugging this communication between microservices easy by providing immediate and deep (full-body) visibility into requests flowing through your cluster. See:

For more details, check out the tutorial or watch an overview.

Continuous Application Profiling

Use Pixie's continuous profiling feature to identify performance issues within application code.

For more details, check out the tutorial or watch an overview.

Distributed bpftrace Deployment

Use Pixie to deploy a bpftrace program to all of the nodes in your cluster. After deploying the program, Pixie captures the output into a table and makes the data available to be queried and visualized in the Pixie UI. TCP Drops are pictured. For more details, check out the tutorial or watch an overview.

Dynamic Go Logging

Debug Go binaries deployed in production environments without needing to recompile and redeploy. For more details, check out the tutorial or watch an overview.

Get Started

It takes just a few minutes to install Pixie. To get started, check out the Install Guides.

Once installed, you can interact with Pixie using the:

Get Involved

Pixie is a community-driven project; we welcome your contribution! For code contributions, please read our contribution guide.

Latest Releases

We version separate components of Pixie separately, so what Github shows as the "latest" release will only be the latest for one of the components.
We maintain links to the latest releases for all components here:

Changelog

The changelog is stored in annotated git tags.

For vizier:

text
git for-each-ref refs/tags/release/vizier/$tagname --format='%(tag) %(contents)'

For the CLI:

text
git for-each-ref refs/tags/release/cli/$tagname --format='%(tag) %(contents)'

These are also published on the releases page.

Adopters

The known adopters and users of Pixie are listed here.

Software Bill of Materials

We publish a list of all the components Pixie depends on and the corresponding
versions and licenses here.

Acknowledgements

The Pixie project would like to thank Equinix Metal via the CNCF Community Infrastructure Lab for graciously providing compute resources to run all the CI/CD for the project.

About Pixie

Pixie was contributed by New Relic, Inc. to the Cloud Native Computing Foundation as a Sandbox project in June 2021.

License

Pixie is licensed under Apache License, Version 2.0.

2. Official Technical Reference & Guides (pixie-io/pixie-docs)

[docs.px.dev](http://docs.px.dev/) · [](https://app.netlify.com/sites/blog-px-dev/deploys) [](https://twitter.com/intent/follow?screen_name=pixie_run) [](https://snyk.io/test/github/pixie-io/docs.px.dev)

This repo contains the source code and content for the Pixie Docs website.

Reporting Issues

Submit any issues or enhancement requests by filing an issue. Please search for and review the existing open issues before submitting a new issue.

Contributing

We're excited to have you contribute to Pixie's documentation!

Pixie has adopted the Contributor Covenant as its code of conduct, and we expect all participants to adhere to it. Please report any violations to [email protected]. All code contributions require signing, please refer to the Contribution Guide.

Dev Setup

To run in development mode, run the following commands:

shell
yarn install
yarn start

Then visit http://localhost:8000/ to view the app.

To generate a production build, run:

shell
yarn install
yarn build

Adding New Language Translations

  1. Create a new empty folder in the content folder. Name the folder with the new language's 2-letter code.
  2. Add a new item for the new language to the languages list in the available-languages.js file.
  3. Copy the file you want to translate from the en folder into the new folder. Make sure to maintain the same folder structure, folder names, and file name as the en directory.
  4. Translate the file and create a PR.

Updating Automated Content

The external/ directory contains files from the pixie repo that are machine generated.

There is automation that updates the external/pxl_documentation.json file automatically, while the datatable_documentation.json file must be manually updated.

Deploy Previews

Once you submit a pull request to this repo, Netlify creates a deploy preview for the changes in the specific PR. You can view the deploy preview in the Netlify panel that appears under the PR description.

Publishing the Site

The Pixie website is published automatically by Netlify. Whenever changes are merged into the prod branch, Netlify re-builds and re-deploys the site.

Documentation License

This work is licensed under a Creative Commons Attribution 4.0 International License.

Please note the Creative Commons Attribution 4.0 license applies to the creative work of this site (documentation, visual assets, etc.) and not to the underlying code and does not supersede any licenses of the source code, its dependencies, etc.