pixie

module
v0.0.0-...-cd22e1a Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 6, 2024 License: Apache-2.0

README

Pixie!


Docs Slack Twitter Mentioned in Awesome Kubernetes Mentioned in Awesome Go Build Status codecov FOSSA Status Artifact HUB Go Report Card CII Best Practices CLOMonitor OpenSSF Scorecard


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

Network Flow Graph

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

Infrastructure Monitoring

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

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

Database Query Profilling

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

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

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

Request Tracing

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:

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

For the CLI:

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.

Directories

Path Synopsis
src
api/go/pxapi
Package pxapi provides the Go client interface for Pixie.
Package pxapi provides the Go client interface for Pixie.
api/go/pxapi/errdefs
Package errdefs has the public error types used by the API.
Package errdefs has the public error types used by the API.
api/go/pxapi/formatters
Package formatters contains implementations of table handles that can format data into tables, json, etc.
Package formatters contains implementations of table handles that can format data into tables, json, etc.
api/go/pxapi/muxes
Package muxes has implementations of the Mux interface to route tables.
Package muxes has implementations of the Mux interface to route tables.
api/go/pxapi/types
Package types tracks all the Pixie types used in the Go API.
Package types tracks all the Pixie types used in the Go API.
api/proto/cloudpb/mock
Package mock_cloudpb is a generated GoMock package.
Package mock_cloudpb is a generated GoMock package.
api/proto/vizierpb/mock
Package mock_vizierpb is a generated GoMock package.
Package mock_vizierpb is a generated GoMock package.
carnot/carnotpb/mock
Package mock_carnotpb is a generated GoMock package.
Package mock_carnotpb is a generated GoMock package.
cloud/api/controllers/schema/complete
Code generated for package complete by go-bindata DO NOT EDIT.
Code generated for package complete by go-bindata DO NOT EDIT.
cloud/api/controllers/schema/noauth
Code generated for package noauth by go-bindata DO NOT EDIT.
Code generated for package noauth by go-bindata DO NOT EDIT.
cloud/artifact_tracker/artifacttrackerpb/mock
Package mock_artifacttrackerpb is a generated GoMock package.
Package mock_artifacttrackerpb is a generated GoMock package.
cloud/auth/authpb/mock
Package mock_authpb is a generated GoMock package.
Package mock_authpb is a generated GoMock package.
cloud/auth/controllers/mock
Package mock_controllers is a generated GoMock package.
Package mock_controllers is a generated GoMock package.
cloud/auth/schema
Code generated for package schema by go-bindata DO NOT EDIT.
Code generated for package schema by go-bindata DO NOT EDIT.
cloud/autocomplete/mock
Package mock_autocomplete is a generated GoMock package.
Package mock_autocomplete is a generated GoMock package.
cloud/config_manager/configmanagerpb/mock
Package mock_configmanagerpb is a generated GoMock package.
Package mock_configmanagerpb is a generated GoMock package.
cloud/cron_script/cronscriptpb/mock
Package mock_cronscriptpb is a generated GoMock package.
Package mock_cronscriptpb is a generated GoMock package.
cloud/cron_script/schema
Code generated for package schema by go-bindata DO NOT EDIT.
Code generated for package schema by go-bindata DO NOT EDIT.
cloud/plugin/pluginpb/mock
Package mock_pluginpb is a generated GoMock package.
Package mock_pluginpb is a generated GoMock package.
cloud/plugin/schema
Code generated for package schema by go-bindata DO NOT EDIT.
Code generated for package schema by go-bindata DO NOT EDIT.
cloud/profile/controllers/mock
Package mock_controllers is a generated GoMock package.
Package mock_controllers is a generated GoMock package.
cloud/profile/profilepb/mock
Package mock_profilepb is a generated GoMock package.
Package mock_profilepb is a generated GoMock package.
cloud/profile/schema
Code generated for package schema by go-bindata DO NOT EDIT.
Code generated for package schema by go-bindata DO NOT EDIT.
cloud/project_manager/projectmanagerpb/mock
Package mock_projectmanagerpb is a generated GoMock package.
Package mock_projectmanagerpb is a generated GoMock package.
cloud/project_manager/schema
Code generated for package schema by go-bindata DO NOT EDIT.
Code generated for package schema by go-bindata DO NOT EDIT.
cloud/scriptmgr/scriptmgrpb/mock
Package mock_scriptmgrpb is a generated GoMock package.
Package mock_scriptmgrpb is a generated GoMock package.
cloud/shared/pgmigrate
Package pgmigrate has utilities to help with postgres migrations.
Package pgmigrate has utilities to help with postgres migrations.
cloud/vzconn/bridge
Package bridge connects data between the vizier NATS domain and cloud nats domain by using a GRPC channel.
Package bridge connects data between the vizier NATS domain and cloud nats domain by using a GRPC channel.
cloud/vzconn/vzconnpb/mock
Package mock_vzconnpb is a generated GoMock package.
Package mock_vzconnpb is a generated GoMock package.
cloud/vzmgr/controllers/mock
Package mock_controllers is a generated GoMock package.
Package mock_controllers is a generated GoMock package.
cloud/vzmgr/schema
Code generated for package schema by go-bindata DO NOT EDIT.
Code generated for package schema by go-bindata DO NOT EDIT.
cloud/vzmgr/vzmgrpb/mock
Package mock_vzmgrpb is a generated GoMock package.
Package mock_vzmgrpb is a generated GoMock package.
operator/apis/px.dev/v1alpha1
Package v1alpha1 contains API Schema definitions for the pixie v1 API group +kubebuilder:object:generate=true +groupName=px.dev
Package v1alpha1 contains API Schema definitions for the pixie v1 API group +kubebuilder:object:generate=true +groupName=px.dev
operator/client/versioned
This package has the automatically generated clientset.
This package has the automatically generated clientset.
operator/client/versioned/fake
This package has the automatically generated fake clientset.
This package has the automatically generated fake clientset.
operator/client/versioned/scheme
This package contains the scheme of the automatically generated clientset.
This package contains the scheme of the automatically generated clientset.
operator/client/versioned/typed/px.dev/v1alpha1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
operator/client/versioned/typed/px.dev/v1alpha1/fake
Package fake has the automatically generated clients.
Package fake has the automatically generated clients.
shared/services/httpmiddleware
Package httpmiddleware has services middleware utilities that we use across our services.
Package httpmiddleware has services middleware utilities that we use across our services.
stirling/source_connectors/socket_tracer/testing/containers/pgsql
This file is adapted from README.md of https://github.com/jmoiron/sqlx.
This file is adapted from README.md of https://github.com/jmoiron/sqlx.
stirling/testing/demo_apps/go_http/go_http_client
The intention to have matching http client in Go, is to mimic the typical setup of calling a restful service in Go.
The intention to have matching http client in Go, is to mimic the typical setup of calling a restful service in Go.
utils/namesgenerator
Package namesgenerator generates random names.
Package namesgenerator generates random names.
vizier/funcs/go
Code generated for package funcs by go-bindata DO NOT EDIT.
Code generated for package funcs by go-bindata DO NOT EDIT.
vizier/services/metadata/controllers/agent/mock
Package mock_agent is a generated GoMock package.
Package mock_agent is a generated GoMock package.
vizier/services/metadata/controllers/cronscript/mock
Package mock_cronscript is a generated GoMock package.
Package mock_cronscript is a generated GoMock package.
vizier/services/metadata/controllers/tracepoint/mock
Package mock_tracepoint is a generated GoMock package.
Package mock_tracepoint is a generated GoMock package.
vizier/services/metadata/metadatapb/mock
Package mock_metadatapb is a generated GoMock package.
Package mock_metadatapb is a generated GoMock package.
vizier/services/query_broker/controllers/mock
Package mock_controllers is a generated GoMock package.
Package mock_controllers is a generated GoMock package.
tools
go
Package tools is just to ensure that the golang tools we depend on are included in our go.mod go.sum files.
Package tools is just to ensure that the golang tools we depend on are included in our go.mod go.sum files.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL