{"componentChunkName":"component---src-templates-docs-tsx","path":"/using-pixie/api-quick-start/","result":{"data":{"site":{"siteMetadata":{"title":"Pixie Docs","docsLocation":"https://github.com/pixie-io/pixie-docs"}},"mdx":{"fields":{"id":"1dc6c347-8d39-5536-8bdb-6c8b9a3c9cab","title":"Using the API","slug":"/using-pixie/api-quick-start"},"body":"function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* @jsx mdx */\nvar _frontmatter = {\n  \"title\": \"Using the API\",\n  \"metaTitle\": \"Using Pixie | Using the API\",\n  \"metaDescription\": \"Use the API to run PxL scripts\",\n  \"order\": 3,\n  \"redirect_from\": [\"/reference/api/quick-start/\"]\n};\n\nvar makeShortcode = function makeShortcode(name) {\n  return function MDXDefaultShortcode(props) {\n    console.warn(\"Component \" + name + \" was not imported, exported, or provided by MDXProvider as global scope\");\n    return mdx(\"div\", props);\n  };\n};\n\nvar YouTube = makeShortcode(\"YouTube\");\nvar CodeTabs = makeShortcode(\"CodeTabs\");\nvar CodeRenderer = makeShortcode(\"CodeRenderer\");\nvar Alert = makeShortcode(\"Alert\");\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n      props = _objectWithoutProperties(_ref, [\"components\"]);\n\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(\"p\", null, \"This guide shows you how to get started with the Pixie API using one of our client libraries. For information on our gRPC API, see the \", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"/reference/api/overview\"\n  }), \"reference docs\"), \".\"), mdx(\"p\", null, \"Check out the following video for a live coding demo using the Go API:\"), mdx(YouTube, {\n    youTubeId: \"bHlUlVgAE7E\",\n    mdxType: \"YouTube\"\n  }), mdx(\"h2\", null, \"Setup\"), mdx(\"ol\", null, mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"Install Pixie on your cluster using the \", mdx(\"a\", _extends({\n    parentName: \"li\"\n  }, {\n    \"href\": \"/installing-pixie/install-guides/\"\n  }), \"install guides\"), \".\"), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"Find your cluster's ID following the directions \", mdx(\"a\", _extends({\n    parentName: \"li\"\n  }, {\n    \"href\": \"/reference/admin/cluster-id/#find-the-cluster-id\"\n  }), \"here\"), \".\"), mdx(\"li\", {\n    parentName: \"ol\"\n  }, \"Create an API key following the directions \", mdx(\"a\", _extends({\n    parentName: \"li\"\n  }, {\n    \"href\": \"/reference/admin/api-keys/#create-an-api-key\"\n  }), \"here\"), \". An API Key is required when using the client API for running queries.\")), mdx(\"h2\", null, \"Install the client library\"), mdx(\"div\", {\n    \"className\": \"code-tabs-wrapper\"\n  }, mdx(CodeTabs, {\n    mdxType: \"CodeTabs\"\n  }, mdx(CodeRenderer, {\n    language: \"python\",\n    title: \"\",\n    mdxType: \"CodeRenderer\"\n  }, mdx(\"pre\", {\n    parentName: \"div\"\n  }, mdx(\"code\", _extends({\n    parentName: \"pre\"\n  }, {\n    \"className\": \"language-python\"\n  }), \"# Requires Python 3.8.7+\\npip install pxapi\\n\"))), mdx(CodeRenderer, {\n    language: \"go\",\n    title: \"\",\n    mdxType: \"CodeRenderer\"\n  }, mdx(\"pre\", {\n    parentName: \"div\"\n  }, mdx(\"code\", _extends({\n    parentName: \"pre\"\n  }, {\n    \"className\": \"language-go\"\n  }), \"// We recommend using a Go modules project: https://blog.golang.org/using-go-modules\\ngo get px.dev/pxapi\\n\"))))), mdx(\"h2\", null, \"Import the library\"), mdx(\"div\", {\n    \"className\": \"code-tabs-wrapper\"\n  }, mdx(CodeTabs, {\n    mdxType: \"CodeTabs\"\n  }, mdx(CodeRenderer, {\n    language: \"python\",\n    title: \"\",\n    mdxType: \"CodeRenderer\"\n  }, mdx(\"pre\", {\n    parentName: \"div\"\n  }, mdx(\"code\", _extends({\n    parentName: \"pre\"\n  }, {\n    \"className\": \"language-python\"\n  }), \"import pxapi\\n\"))), mdx(CodeRenderer, {\n    language: \"go\",\n    title: \"\",\n    mdxType: \"CodeRenderer\"\n  }, mdx(\"pre\", {\n    parentName: \"div\"\n  }, mdx(\"code\", _extends({\n    parentName: \"pre\"\n  }, {\n    \"className\": \"language-go\"\n  }), \"// Import pixie go package and subpackages.\\nimport (\\n    \\\"context\\\"\\n    \\\"fmt\\\"\\n    \\\"io\\\"\\n    \\\"os\\\"\\n\\n    \\\"px.dev/pxapi\\\"\\n    \\\"px.dev/pxapi/errdefs\\\"\\n    \\\"px.dev/pxapi/types\\\"\\n)\\n\"))))), mdx(\"h2\", null, \"Initialize a Pixie client and connect to a cluster\"), mdx(\"p\", null, \"You'll need the API Key and Cluster ID created in the \", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"/using-pixie/api-quick-start/#setup\"\n  }), \"Setup\"), \" section.\"), mdx(\"div\", {\n    \"className\": \"code-tabs-wrapper\"\n  }, mdx(CodeTabs, {\n    mdxType: \"CodeTabs\"\n  }, mdx(CodeRenderer, {\n    language: \"python\",\n    title: \"\",\n    mdxType: \"CodeRenderer\"\n  }, mdx(\"pre\", {\n    parentName: \"div\"\n  }, mdx(\"code\", _extends({\n    parentName: \"pre\"\n  }, {\n    \"className\": \"language-python\"\n  }), \"# Create a Pixie client.\\npx_client = pxapi.Client(token=<YOUR_API_TOKEN_STRING>)\\n\\n# Connect to cluster.\\nconn = px_client.connect_to_cluster(<YOUR_CLUSTER_ID_STRING>)\\n\"))), mdx(CodeRenderer, {\n    language: \"go\",\n    title: \"\",\n    mdxType: \"CodeRenderer\"\n  }, mdx(\"pre\", {\n    parentName: \"div\"\n  }, mdx(\"code\", _extends({\n    parentName: \"pre\"\n  }, {\n    \"className\": \"language-go\"\n  }), \"// Create a Pixie client.\\nctx := context.Background()\\nclient, err := pxapi.NewClient(ctx, pxapi.WithAPIKey(<YOUR_API_TOKEN_STRING>))\\nif err != nil {\\n    panic(err)\\n}\\n\\n// Create a connection to the cluster.\\nvz, err := client.NewVizierClient(ctx, <YOUR_CLUSTER_ID_STRING>)\\nif err != nil {\\n    panic(err)\\n}\\n\"))))), mdx(\"h2\", null, \"Run a PxL script and display the results\"), mdx(Alert, {\n    variant: \"outlined\",\n    severity: \"warning\",\n    mdxType: \"Alert\"\n  }, \"PxL scripts passed to the API need to name the output dataframe in the call to `px.display()`. Table names are used to differentiate between multiple output tables when processing the results. If you forget to name the dataframe in the call to `px.display()`, you will get an error: `Table TABLE_NAME not received.`\"), mdx(\"div\", {\n    \"className\": \"code-tabs-wrapper\"\n  }, mdx(CodeTabs, {\n    mdxType: \"CodeTabs\"\n  }, mdx(CodeRenderer, {\n    language: \"python\",\n    title: \"\",\n    mdxType: \"CodeRenderer\"\n  }, mdx(\"pre\", {\n    parentName: \"div\"\n  }, mdx(\"code\", _extends({\n    parentName: \"pre\"\n  }, {\n    \"className\": \"language-python\"\n  }), \"# Define a PxL query with one output table.\\nPXL_SCRIPT = \\\"\\\"\\\"\\nimport px\\ndf = px.DataFrame('http_events')[['resp_status','req_path']]\\ndf = df.head(10)\\npx.display(df, 'http_table')\\n\\\"\\\"\\\"\\n\\n# Execute the PxL script.\\nscript = conn.prepare_script(PXL_SCRIPT)\\n\\n# Print the table output.\\nfor row in script.results(\\\"http_table\\\"):\\n    print(row[\\\"resp_status\\\"], row[\\\"req_path\\\"])\\n\"))), mdx(CodeRenderer, {\n    language: \"go\",\n    title: \"\",\n    mdxType: \"CodeRenderer\"\n  }, mdx(\"pre\", {\n    parentName: \"div\"\n  }, mdx(\"code\", _extends({\n    parentName: \"pre\"\n  }, {\n    \"className\": \"language-go\"\n  }), \"// Define a PxL script with out output table.\\npxl := `\\nimport px\\ndf = px.DataFrame('http_events')\\ndf = df[['upid', 'req_path', 'remote_addr', 'req_method']]\\ndf = df.head(10)\\npx.display(df, 'http')\\n`\\n\\n// Create TableMuxer to accept results table.\\ntm := &tableMux{}\\n\\n// Execute the PxL script.\\nresultSet, err := vz.ExecuteScript(ctx, pxl, tm)\\nif err != nil && err != io.EOF {\\n    panic(err)\\n}\\n\\n// Receive the PxL script results.\\ndefer resultSet.Close()\\nif err := resultSet.Stream(); err != nil {\\n    fmt.Printf(\\\"Got error : %+v, while streaming\\\\n\\\", err)\\n}\\n\\n// Satisfies the TableRecordHandler interface.\\ntype tablePrinter struct{}\\n\\nfunc (t *tablePrinter) HandleInit(ctx context.Context, metadata types.TableMetadata) error {\\n    return nil\\n}\\n\\nfunc (t *tablePrinter) HandleRecord(ctx context.Context, r *types.Record) error {\\n    for _, d := range r.Data {\\n        fmt.Printf(\\\"%s \\\", d.String())\\n    }\\n    fmt.Printf(\\\"\\\\n\\\")\\n    return nil\\n}\\n\\nfunc (t *tablePrinter) HandleDone(ctx context.Context) error {\\n    return nil\\n}\\n\\n// Satisfies the TableMuxer interface.\\ntype tableMux struct {\\n}\\n\\nfunc (s *tableMux) AcceptTable(ctx context.Context, metadata types.TableMetadata) (pxapi.TableRecordHandler, error) {\\n    return &tablePrinter{}, nil\\n}\\n\"))))), mdx(\"p\", null, \"This PxL query returns two columns from the first 10 rows of the \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"http_events\"), \" table of data. For more information on how this PxL script was written, check out the \", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"/tutorials/pxl-scripts/write-pxl-scripts\"\n  }), \"PxL script tutorials\"), \".\"), mdx(\"p\", null, \"Note that the API does not currently support running our open source \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"px/\"), \" scripts by name. If you would like to run one of the \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"px/\"), \" scripts that we include in the CLI or Live UI, you will need to copy the PxL script and pass it in as a string. Only PxL scripts with an empty Vis Spec will return results from the API.\"), mdx(\"p\", null, \"If your PxL query has any compile errors, you will get a \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"pixie.errors.PxLError\"), \". We recommend writing and debugging your PxL scripts using our \", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"/using-pixie/using-live-ui\"\n  }), \"Live UI\"), \", \", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"/using-pixie/using-cli\"\n  }), \"CLI\"), \" tool.\"), mdx(\"h2\", null, \"Complete example source code\"), mdx(\"p\", null, \"Below is the complete source code for the example above.\"), mdx(\"p\", null, \"This basic example along with more advanced API examples can be found in the \", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"https://github.com/pixie-io/pixie/tree/main/src/api\"\n  }), \"API folder\"), \" in Pixie's GitHub repo.\"), mdx(\"div\", {\n    \"className\": \"code-tabs-wrapper\"\n  }, mdx(CodeTabs, {\n    mdxType: \"CodeTabs\"\n  }, mdx(CodeRenderer, {\n    language: \"python\",\n    title: \"\",\n    mdxType: \"CodeRenderer\"\n  }, mdx(\"pre\", {\n    parentName: \"div\"\n  }, mdx(\"code\", _extends({\n    parentName: \"pre\"\n  }, {\n    \"className\": \"language-python\"\n  }), \"# Import Pixie's python API.\\nimport pxapi\\n\\n# Define a PxL query with one output table.\\nPXL_SCRIPT = \\\"\\\"\\\"\\nimport px\\ndf = px.DataFrame('http_events')[['resp_status','req_path']]\\ndf = df.head(10)\\npx.display(df, 'http_table')\\n\\\"\\\"\\\"\\n\\n# Create a Pixie client.\\npx_client = pxapi.Client(token=<YOUR_API_TOKEN_STRING>)\\n\\n# Connect to cluster.\\nconn = px_client.connect_to_cluster(<YOUR_CLUSTER_ID_STRING>)\\n\\n# Execute the PxL script.\\nscript = conn.prepare_script(PXL_SCRIPT)\\n\\n# Print the table output.\\nfor row in script.results(\\\"http_table\\\"):\\n    print(row[\\\"resp_status\\\"], row[\\\"req_path\\\"])\\n\"))), mdx(CodeRenderer, {\n    language: \"go\",\n    title: \"\",\n    mdxType: \"CodeRenderer\"\n  }, mdx(\"pre\", {\n    parentName: \"div\"\n  }, mdx(\"code\", _extends({\n    parentName: \"pre\"\n  }, {\n    \"className\": \"language-go\"\n  }), \"package main\\n\\nimport (\\n    \\\"context\\\"\\n    \\\"fmt\\\"\\n    \\\"io\\\"\\n    \\\"os\\\"\\n\\n    \\\"px.dev/pxapi\\\"\\n    \\\"px.dev/pxapi/errdefs\\\"\\n    \\\"px.dev/pxapi/types\\\"\\n)\\n\\n// Define PxL script with one table output.\\nvar (\\n    pxl = `\\nimport px\\ndf = px.DataFrame('http_events')\\ndf = df[['upid', 'req_path', 'remote_addr', 'req_method']]\\ndf = df.head(10)\\npx.display(df, 'http')\\n`\\n)\\n\\nfunc main() {\\n\\n    // Create a Pixie client.\\n    ctx := context.Background()\\n    client, err := pxapi.NewClient(ctx, pxapi.WithAPIKey(<YOUR_API_TOKEN_STRING>))\\n    if err != nil {\\n        panic(err)\\n    }\\n\\n    // Create a connection to the cluster.\\n    vz, err := client.NewVizierClient(ctx, <YOUR_CLUSTER_ID_STRING>)\\n    if err != nil {\\n        panic(err)\\n    }\\n\\n    // Create TableMuxer to accept results table.\\n    tm := &tableMux{}\\n\\n    // Execute the PxL script.\\n    resultSet, err := vz.ExecuteScript(ctx, pxl, tm)\\n    if err != nil && err != io.EOF {\\n        panic(err)\\n    }\\n\\n    // Receive the PxL script results.\\n    defer resultSet.Close()\\n    if err := resultSet.Stream(); err != nil {\\n        if errdefs.IsCompilationError(err) {\\n            fmt.Printf(\\\"Got compiler error: \\\\n %s\\\\n\\\", err.Error())\\n        } else {\\n            fmt.Printf(\\\"Got error : %+v, while streaming\\\\n\\\", err)\\n        }\\n    }\\n\\n    // Get the execution stats for the script execution.\\n    stats := resultSet.Stats()\\n    fmt.Printf(\\\"Execution Time: %v\\\\n\\\", stats.ExecutionTime)\\n    fmt.Printf(\\\"Bytes received: %v\\\\n\\\", stats.TotalBytes)\\n}\\n\\n// Satisfies the TableRecordHandler interface.\\ntype tablePrinter struct{}\\n\\nfunc (t *tablePrinter) HandleInit(ctx context.Context, metadata types.TableMetadata) error {\\n    return nil\\n}\\n\\nfunc (t *tablePrinter) HandleRecord(ctx context.Context, r *types.Record) error {\\n    for _, d := range r.Data {\\n        fmt.Printf(\\\"%s \\\", d.String())\\n    }\\n    fmt.Printf(\\\"\\\\n\\\")\\n    return nil\\n}\\n\\nfunc (t *tablePrinter) HandleDone(ctx context.Context) error {\\n    return nil\\n}\\n\\n// Satisfies the TableMuxer interface.\\ntype tableMux struct {\\n}\\n\\nfunc (s *tableMux) AcceptTable(ctx context.Context, metadata types.TableMetadata) (pxapi.TableRecordHandler, error) {\\n    return &tablePrinter{}, nil\\n}\\n\"))))), mdx(\"h2\", null, \"End-to-End Encryption\"), mdx(\"p\", null, \"Pixie offers end-to-end encryption for telemetry data requested by the API. For more information, see the \", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"/about-pixie/faq/#data-collection-how-does-pixie-secure-its-data\"\n  }), \"FAQ\"), \".\"), mdx(\"p\", null, \"Encryption is controlled by a flag during client creation. For additional info, see the \", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"https://github.com/pixie-io/pixie/blob/main/src/api/go/pxapi/examples/encryption_example/example.go#L77\"\n  }), \"Go\"), \" or \", mdx(\"a\", _extends({\n    parentName: \"p\"\n  }, {\n    \"href\": \"https://github.com/pixie-io/pixie/blob/main/src/api/python/examples/script_with_single_table.py#L35\"\n  }), \"Python\"), \" encryption examples.\"));\n}\n;\nMDXContent.isMDXComponent = true;","parent":{"__typename":"File","relativePath":"en/03-using-pixie/03-api-quick-start.md"},"frontmatter":{"metaTitle":"Using Pixie | Using the API","metaDescription":"Use the API to run PxL scripts"},"headings":[{"value":"Setup","depth":2},{"value":"Install the client library","depth":2},{"value":"Import the library","depth":2},{"value":"Initialize a Pixie client and connect to a cluster","depth":2},{"value":"Run a PxL script and display the results","depth":2},{"value":"Complete example source code","depth":2},{"value":"End-to-End Encryption","depth":2}]},"allMdx":{"edges":[{"node":{"fields":{"slug":"/about-pixie","title":"About Pixie","level":1,"id":"250033c7-6bfc-5ed2-8855-bfae9d3d41b8","lang":"en"}}},{"node":{"fields":{"slug":"/about-pixie/what-is-pixie","title":"Pixie Overview","level":2,"id":"3d7111da-bb7e-58a6-acdb-af0bee4488fb","lang":"en"}}},{"node":{"fields":{"slug":"/about-pixie/data-sources","title":"Data Sources","level":2,"id":"ceef1554-49d1-5b10-a3fa-6dc84d90bf20","lang":"en"}}},{"node":{"fields":{"slug":"/about-pixie/pixie-ebpf","title":"How Pixie uses eBPF","level":2,"id":"5e9e1b8e-3181-52e0-a3d5-335a3367cb14","lang":"en"}}},{"node":{"fields":{"slug":"/about-pixie/roadmap","title":"Roadmap","level":2,"id":"15dcc722-a1a6-58e9-9c20-8d6f8d3762df","lang":"en"}}},{"node":{"fields":{"slug":"/about-pixie/faq","title":"FAQ","level":2,"id":"af60166c-104d-576d-8018-94d9907813f9","lang":"en"}}},{"node":{"fields":{"slug":"/about-pixie/troubleshooting","title":"Troubleshooting","level":2,"id":"739e15de-0d00-526a-80ed-51a13c2b6f5d","lang":"en"}}},{"node":{"fields":{"slug":"/installing-pixie","title":"Installing Pixie","level":1,"id":"77fd1ffe-859b-5b56-9745-5c371bd47e6d","lang":"en"}}},{"node":{"fields":{"slug":"/installing-pixie/requirements","title":"Requirements","level":2,"id":"d3d8a31a-c579-5792-8e40-3076ae89d15e","lang":"en"}}},{"node":{"fields":{"slug":"/installing-pixie/setting-up-k8s","title":"Setting up Kubernetes (optional)","level":2,"id":"1b2c0456-0c8e-59f3-9859-73e664d277bc","lang":"en"}}},{"node":{"fields":{"slug":"/installing-pixie/setting-up-k8s/minikube-setup","title":"Minikube","level":3,"id":"8e37881c-b785-585f-9bf4-271d71297044","lang":"en"}}},{"node":{"fields":{"slug":"/installing-pixie/setting-up-k8s/eks-setup","title":"EKS","level":3,"id":"f9e46ba9-b438-5226-94c2-8c580311efb9","lang":"en"}}},{"node":{"fields":{"slug":"/installing-pixie/setting-up-k8s/gke-setup","title":"GKE","level":3,"id":"89fcc4ea-771a-5bdc-ae96-75fa080b2402","lang":"en"}}},{"node":{"fields":{"slug":"/installing-pixie/setting-up-k8s/aks-setup","title":"AKS","level":3,"id":"61a9efea-c52d-5b4a-ad01-7758292a1e6b","lang":"en"}}},{"node":{"fields":{"slug":"/installing-pixie/setting-up-k8s/k0s-setup","title":"k0s","level":3,"id":"db610fd7-59f7-50ee-b962-2395ded4213d","lang":"en"}}},{"node":{"fields":{"slug":"/installing-pixie/setting-up-k8s/other-environments","title":"Additional environments","level":3,"id":"456ab527-bcef-5f0b-9099-92524b0e1a60","lang":"en"}}},{"node":{"fields":{"slug":"/installing-pixie/install-guides","title":"Install Guides","level":2,"id":"f94cfa88-6add-5e46-86f8-7c89ad77886a","lang":"en"}}},{"node":{"fields":{"slug":"/installing-pixie/install-guides/hosted-pixie","title":"Hosted Pixie","level":3,"id":"e12f9502-f00b-5290-aabe-6952f1017919","lang":"en"}}},{"node":{"fields":{"slug":"/installing-pixie/install-guides/hosted-pixie/cosmic-cloud","title":"Cosmic Cloud","level":4,"id":"24145104-fa42-53e2-9cd4-207bc191da39","lang":"en"}}},{"node":{"fields":{"slug":"/installing-pixie/install-guides/hosted-pixie/new-relic-cloud","title":"New Relic Cloud","level":4,"id":"604f4893-db3e-5b9a-86a0-d487039b117b","lang":"en"}}},{"node":{"fields":{"slug":"/installing-pixie/install-guides/self-hosted-pixie","title":"Self-Hosted Pixie","level":3,"id":"60ea09cc-b8c7-52d5-b3f6-da39d78b8014","lang":"en"}}},{"node":{"fields":{"slug":"/installing-pixie/install-guides/self-hosted-pixie/airgap-pixie","title":"Air Gapped Pixie","level":4,"id":"2e215d50-3936-58fa-bc7e-7b9d56205705","lang":"en"}}},{"node":{"fields":{"slug":"/installing-pixie/install-guides/self-hosted-pixie/production-readiness","title":"Production Readiness","level":4,"id":"4bba186e-a4e9-52f9-a556-3367c6beb3cf","lang":"en"}}},{"node":{"fields":{"slug":"/installing-pixie/install-schemes","title":"Install Schemes (optional)","level":2,"id":"89aa8fa5-88de-57fa-ac9b-9d9cb4680190","lang":"en"}}},{"node":{"fields":{"slug":"/installing-pixie/install-schemes/cli","title":"CLI (Recommended)","level":3,"id":"c180d499-3bbe-5b18-aca2-fad92744f82b","lang":"en"}}},{"node":{"fields":{"slug":"/installing-pixie/install-schemes/yaml","title":"YAML","level":3,"id":"a07677ae-cdce-581a-a639-b2c6eb63ca2a","lang":"en"}}},{"node":{"fields":{"slug":"/installing-pixie/install-schemes/helm","title":"Helm","level":3,"id":"198fca51-0df6-5a68-82bc-c33777f6c452","lang":"en"}}},{"node":{"fields":{"slug":"/using-pixie","title":"Using Pixie","level":1,"id":"ee5c081e-d25d-50ac-b534-b26089cb7fa9","lang":"en"}}},{"node":{"fields":{"slug":"/using-pixie/using-live-ui","title":"Using the Live UI","level":2,"id":"f6358be5-5e72-5d5a-b802-37b7a1832a6e","lang":"en"}}},{"node":{"fields":{"slug":"/using-pixie/using-cli","title":"Using the CLI","level":2,"id":"68df7159-bf22-5cfe-8a81-1376fc49fe9e","lang":"en"}}},{"node":{"fields":{"slug":"/using-pixie/api-quick-start","title":"Using the API","level":2,"id":"1dc6c347-8d39-5536-8bdb-6c8b9a3c9cab","lang":"en"}}},{"node":{"fields":{"slug":"/tutorials","title":"Tutorials","level":1,"id":"cca4356e-0565-5dcf-b2e0-80aa8b361993","lang":"en"}}},{"node":{"fields":{"slug":"/tutorials/pixie-101","title":"Pixie 101","level":2,"id":"33c94a0b-7e15-50de-9749-c25f7cef4839","lang":"en"}}},{"node":{"fields":{"slug":"/tutorials/pixie-101/network-monitoring","title":"Network Monitoring","level":3,"id":"07ab17ed-445b-56bb-a95a-03c2c4643606","lang":"en"}}},{"node":{"fields":{"slug":"/tutorials/pixie-101/infra-health","title":"Infra Health","level":3,"id":"7d14f277-00f4-53bf-b4a0-8deb32615831","lang":"en"}}},{"node":{"fields":{"slug":"/tutorials/pixie-101/service-performance","title":"Service Performance","level":3,"id":"b9843b3b-9061-5df8-bb5b-20a96ab7516b","lang":"en"}}},{"node":{"fields":{"slug":"/tutorials/pixie-101/database-query-profiling","title":"Database Query Profiling","level":3,"id":"15b9c87a-215a-554b-9a09-3c4013e68e01","lang":"en"}}},{"node":{"fields":{"slug":"/tutorials/pixie-101/request-tracing","title":"Request Tracing","level":3,"id":"e940076b-02be-5f2d-b951-6fa2fc5e430d","lang":"en"}}},{"node":{"fields":{"slug":"/tutorials/pixie-101/profiler","title":"Continuous Application Profiling","level":3,"id":"9511d5a0-5e74-5165-9383-0fd475c23475","lang":"en"}}},{"node":{"fields":{"slug":"/tutorials/pixie-101/kafka-monitoring","title":"Kafka Monitoring","level":3,"id":"2c806ace-110b-5395-a5b4-51d19005e151","lang":"en"}}},{"node":{"fields":{"slug":"/tutorials/pxl-scripts","title":"PxL Scripts","level":2,"id":"78bb61b8-0d24-5d1a-9c05-acc2e750e2a7","lang":"en"}}},{"node":{"fields":{"slug":"/tutorials/pxl-scripts/write-pxl-scripts","title":"How to Write a PxL Script","level":3,"id":"8676a620-9a59-5bd0-9b53-55e63802b395","lang":"en"}}},{"node":{"fields":{"slug":"/tutorials/pxl-scripts/write-pxl-scripts/custom-pxl-scripts-1","title":"Tutorial #1: Write your first PxL script","level":4,"id":"5caa0251-970d-57e2-9c04-ff6c61fbdca5","lang":"en"}}},{"node":{"fields":{"slug":"/tutorials/pxl-scripts/write-pxl-scripts/custom-pxl-scripts-2","title":"Tutorial #2: Finish your first PxL Script","level":4,"id":"303904f6-8f98-5e43-8679-9d19bf0a0945","lang":"en"}}},{"node":{"fields":{"slug":"/tutorials/pxl-scripts/write-pxl-scripts/custom-pxl-scripts-3","title":"Tutorial #3: Write your first Vis Spec","level":4,"id":"895dc65f-6f9e-5a8c-8d4e-368116926e91","lang":"en"}}},{"node":{"fields":{"slug":"/tutorials/pxl-scripts/write-pxl-scripts/custom-pxl-scripts-4","title":"Tutorial #4: Add a Timeseries chart to your Vis Spec","level":4,"id":"2b04efb0-129d-5df3-9a4c-e61d87190077","lang":"en"}}},{"node":{"fields":{"slug":"/tutorials/pxl-scripts/write-pxl-scripts/custom-pxl-scripts-5","title":"Tutorial #5: Add a Graph to your Vis Spec","level":4,"id":"9d89ab55-95d1-5a65-b88b-ed7e69f76eec","lang":"en"}}},{"node":{"fields":{"slug":"/tutorials/pxl-scripts/script-dev-environment","title":"Running the Script Dev Environment","level":3,"id":"a6251ead-6888-55c8-8ff2-b71355e973ea","lang":"en"}}},{"node":{"fields":{"slug":"/tutorials/pxl-scripts/script-of-the-week","title":"Script of the Week","level":3,"id":"6200e2ac-1b2d-5f58-8b02-d525503ca923","lang":"en"}}},{"node":{"fields":{"slug":"/tutorials/pxl-scripts/script-of-the-week/script-of-the-week-1","title":"SOTW #1: Network Flow Graph","level":4,"id":"eb9f1a63-f0bd-52ef-a481-4d239616af30","lang":"en"}}},{"node":{"fields":{"slug":"/tutorials/pxl-scripts/script-of-the-week/script-of-the-week-2","title":"SOTW #2: Detect redundant DNS requests caused by dnsConfig ndots setting","level":4,"id":"22e7fd79-7750-5f13-a21d-3d540a2c5c36","lang":"en"}}},{"node":{"fields":{"slug":"/tutorials/integrations","title":"Integrations and Alerts","level":2,"id":"fe423431-b224-5d0c-a88c-1f098066ccdf","lang":"en"}}},{"node":{"fields":{"slug":"/tutorials/integrations/slackbot-alert","title":"Slack Alerts using the Pixie API","level":3,"id":"1dc3e45e-b259-5d77-9bf3-3d4314cdb2eb","lang":"en"}}},{"node":{"fields":{"slug":"/tutorials/integrations/grafana","title":"Grafana Pixie Plugin","level":3,"id":"85eccf7d-3ec9-5511-ab5b-fa3e71725aa8","lang":"en"}}},{"node":{"fields":{"slug":"/tutorials/integrations/otel","title":"Export OpenTelemetry Data","level":3,"id":"4bab7cd9-681d-56d1-af53-de68b5b60dad","lang":"en"}}},{"node":{"fields":{"slug":"/tutorials/integrations/export-plugin","title":"Exporting PxL Scripts to a Plugin","level":3,"id":"eb57fb2e-c348-542c-98f1-655c88d3348b","lang":"en"}}},{"node":{"fields":{"slug":"/tutorials/custom-data","title":"Collecting Custom Data","level":2,"id":"ca5b9e99-5f1c-5ed4-93be-ebcf31699399","lang":"en"}}},{"node":{"fields":{"slug":"/tutorials/custom-data/distributed-bpftrace-deployment","title":"Distributed bpftrace Deployment","level":3,"id":"f1e1cc7a-5581-5676-8d9a-85bb14c52ce3","lang":"en"}}},{"node":{"fields":{"slug":"/tutorials/custom-data/dynamic-go-logging","title":"Dynamic Logging In Go (Alpha)","level":3,"id":"b1fa96bb-c032-5c32-bbd3-9d1dc00cb3e3","lang":"en"}}},{"node":{"fields":{"slug":"/reference","title":"Reference","level":1,"id":"972efda6-5ba8-5c1f-b409-e1961e60a697","lang":"en"}}},{"node":{"fields":{"slug":"/reference/admin","title":"Admin","level":2,"id":"e8b2b842-2589-5519-894a-95851f06ed1b","lang":"en"}}},{"node":{"fields":{"slug":"/reference/admin/authentication","title":"Authentication","level":3,"id":"023db48c-efc1-5556-8428-f1b25a98b853","lang":"en"}}},{"node":{"fields":{"slug":"/reference/admin/debug-info","title":"Debug Info","level":3,"id":"e334c6f5-0f9b-59b4-bd49-d79574c7a6d0","lang":"en"}}},{"node":{"fields":{"slug":"/reference/admin/deploy-options","title":"Deploy Options","level":3,"id":"332629cf-447a-523d-97d5-9ecf5635adfb","lang":"en"}}},{"node":{"fields":{"slug":"/reference/admin/environment-configs","title":"Environment-Specific Configurations","level":3,"id":"646bc1aa-e534-50a0-adf9-df13592f40da","lang":"en"}}},{"node":{"fields":{"slug":"/reference/admin/cluster-id","title":"Find a Cluster ID","level":3,"id":"a8f5bac8-c7b4-5985-abcd-7ebb6a897673","lang":"en"}}},{"node":{"fields":{"slug":"/reference/admin/api-keys","title":"Managing API Keys","level":3,"id":"589063fb-21f2-5877-aed8-b3673fcaecc5","lang":"en"}}},{"node":{"fields":{"slug":"/reference/admin/deploy-keys","title":"Managing Deploy Keys","level":3,"id":"d1ce062f-9be2-5b3e-898a-08590163e618","lang":"en"}}},{"node":{"fields":{"slug":"/reference/admin/tuning-mem-usage","title":"Tuning Memory Usage","level":3,"id":"5d943cc7-00cd-55fd-b465-e60961155dea","lang":"en"}}},{"node":{"fields":{"slug":"/reference/admin/uninstall","title":"Uninstalling Pixie","level":3,"id":"95a9ed92-2b71-5f32-9618-398ffbe1aeca","lang":"en"}}},{"node":{"fields":{"slug":"/reference/admin/updating-pixie","title":"Updating Pixie","level":3,"id":"02982707-1c80-570f-b226-aa46207feace","lang":"en"}}},{"node":{"fields":{"slug":"/reference/admin/user-mgmt","title":"User Management & Sharing","level":3,"id":"3cc5d4b2-6779-5a7b-a1a1-690511981cf5","lang":"en"}}},{"node":{"fields":{"slug":"/reference/admin/verifying-images","title":"Verifying Images","level":3,"id":"4b741c31-3593-516e-b388-dec7288b2fd7","lang":"en"}}},{"node":{"fields":{"slug":"/reference/architecture","title":"Architecture","level":2,"id":"44dca647-e9a1-578f-b4a4-fdc40eeb46b2","lang":"en"}}},{"node":{"fields":{"slug":"/reference/api","title":"API","level":2,"id":"a144a102-4502-574a-9734-6d5463354591","lang":"en"}}},{"node":{"fields":{"slug":"/reference/api/overview","title":"Overview","level":3,"id":"546c5a9f-b1d7-5286-8f7d-47e2fd3c6535","lang":"en"}}},{"node":{"fields":{"slug":"/reference/api/go","title":"Go","level":3,"id":"7194578f-2940-5669-b681-7a7aa29378ce","lang":"en"}}},{"node":{"fields":{"slug":"/reference/plugins","title":"Plugins","level":2,"id":"be267788-7808-5c2f-a868-289b64556b88","lang":"en"}}},{"node":{"fields":{"slug":"/reference/plugins/plugin-system","title":"Pixie Plugin System","level":3,"id":"b687eff3-307a-53c9-bf8b-a3247293a0f9","lang":"en"}}},{"node":{"fields":{"slug":"/reference/plugins/grafana","title":"Grafana Datasource Plugin","level":3,"id":"ae420e44-f30e-5686-be06-61b609233a11","lang":"en"}}},{"node":{"fields":{"slug":"/reference/pxl","title":"PxL","level":2,"id":"e07ac997-01a5-5a7c-9689-52a6cf481c7a","lang":"en"}}}]}},"pageContext":{"id":"1dc6c347-8d39-5536-8bdb-6c8b9a3c9cab","lang":"en","languages":[{"id":"de","label":"Deutsch"}],"globalUrlTree":[{"lang":"en","slug":"/about-pixie/what-is-pixie"},{"lang":"en","slug":"/about-pixie/pixie-ebpf"},{"lang":"en","slug":"/about-pixie/data-sources"},{"lang":"en","slug":"/about-pixie/faq"},{"lang":"en","slug":"/about-pixie/roadmap"},{"lang":"en","slug":"/about-pixie"},{"lang":"en","slug":"/about-pixie/troubleshooting"},{"lang":"en","slug":"/installing-pixie"},{"lang":"en","slug":"/installing-pixie/requirements"},{"lang":"en","slug":"/using-pixie"},{"lang":"en","slug":"/using-pixie/api-quick-start"},{"lang":"en","slug":"/tutorials"},{"lang":"en","slug":"/reference"},{"lang":"en","slug":"/using-pixie/using-cli"},{"lang":"en","slug":"/using-pixie/using-live-ui"},{"lang":"en","slug":"/installing-pixie/setting-up-k8s/minikube-setup"},{"lang":"en","slug":"/installing-pixie/setting-up-k8s/eks-setup"},{"lang":"en","slug":"/installing-pixie/setting-up-k8s/gke-setup"},{"lang":"en","slug":"/installing-pixie/setting-up-k8s/other-environments"},{"lang":"en","slug":"/reference/architecture"},{"lang":"en","slug":"/installing-pixie/setting-up-k8s/k0s-setup"},{"lang":"en","slug":"/installing-pixie/setting-up-k8s/aks-setup"},{"lang":"en","slug":"/installing-pixie/setting-up-k8s"},{"lang":"en","slug":"/installing-pixie/install-guides"},{"lang":"en","slug":"/installing-pixie/install-schemes/cli"},{"lang":"en","slug":"/installing-pixie/install-schemes/helm"},{"lang":"en","slug":"/installing-pixie/install-schemes/yaml"},{"lang":"en","slug":"/installing-pixie/install-schemes"},{"lang":"en","slug":"/tutorials/pixie-101/network-monitoring"},{"lang":"en","slug":"/tutorials/pixie-101/infra-health"},{"lang":"en","slug":"/tutorials/pixie-101/service-performance"},{"lang":"en","slug":"/tutorials/pixie-101/request-tracing"},{"lang":"en","slug":"/tutorials/pixie-101/database-query-profiling"},{"lang":"en","slug":"/tutorials/pixie-101/kafka-monitoring"},{"lang":"en","slug":"/tutorials/pixie-101"},{"lang":"en","slug":"/tutorials/pxl-scripts"},{"lang":"en","slug":"/tutorials/pxl-scripts/script-dev-environment"},{"lang":"en","slug":"/tutorials/pixie-101/profiler"},{"lang":"en","slug":"/tutorials/integrations/slackbot-alert"},{"lang":"en","slug":"/tutorials/integrations"},{"lang":"en","slug":"/tutorials/integrations/export-plugin"},{"lang":"en","slug":"/tutorials/custom-data"},{"lang":"en","slug":"/tutorials/custom-data/dynamic-go-logging"},{"lang":"en","slug":"/reference/admin/authentication"},{"lang":"en","slug":"/reference/admin/debug-info"},{"lang":"en","slug":"/reference/admin/cluster-id"},{"lang":"en","slug":"/tutorials/custom-data/distributed-bpftrace-deployment"},{"lang":"en","slug":"/tutorials/integrations/grafana"},{"lang":"en","slug":"/tutorials/integrations/otel"},{"lang":"en","slug":"/reference/admin/environment-configs"},{"lang":"en","slug":"/reference/admin/api-keys"},{"lang":"en","slug":"/reference/admin/deploy-keys"},{"lang":"en","slug":"/reference/admin/deploy-options"},{"lang":"en","slug":"/reference/admin/verifying-images"},{"lang":"en","slug":"/reference/api/overview"},{"lang":"en","slug":"/reference/admin/tuning-mem-usage"},{"lang":"en","slug":"/reference/api/go"},{"lang":"en","slug":"/reference/admin/user-mgmt"},{"lang":"en","slug":"/reference/admin"},{"lang":"en","slug":"/reference/admin/updating-pixie"},{"lang":"en","slug":"/reference/api"},{"lang":"en","slug":"/reference/plugins/grafana"},{"lang":"en","slug":"/reference/plugins/plugin-system"},{"lang":"en","slug":"/reference/admin/uninstall"},{"lang":"en","slug":"/installing-pixie/install-guides/hosted-pixie/cosmic-cloud"},{"lang":"en","slug":"/reference/plugins"},{"lang":"en","slug":"/reference/pxl"},{"lang":"en","slug":"/installing-pixie/install-guides/hosted-pixie/new-relic-cloud"},{"lang":"en","slug":"/installing-pixie/install-guides/hosted-pixie"},{"lang":"en","slug":"/tutorials/pxl-scripts/write-pxl-scripts/custom-pxl-scripts-3"},{"lang":"en","slug":"/tutorials/pxl-scripts/write-pxl-scripts/custom-pxl-scripts-1"},{"lang":"en","slug":"/tutorials/pxl-scripts/write-pxl-scripts/custom-pxl-scripts-4"},{"lang":"en","slug":"/tutorials/pxl-scripts/write-pxl-scripts/custom-pxl-scripts-2"},{"lang":"en","slug":"/tutorials/pxl-scripts/write-pxl-scripts/custom-pxl-scripts-5"},{"lang":"en","slug":"/installing-pixie/install-guides/self-hosted-pixie/production-readiness"},{"lang":"en","slug":"/installing-pixie/install-guides/self-hosted-pixie/airgap-pixie"},{"lang":"en","slug":"/installing-pixie/install-guides/self-hosted-pixie"},{"lang":"en","slug":"/tutorials/pxl-scripts/write-pxl-scripts"},{"lang":"en","slug":"/tutorials/pxl-scripts/script-of-the-week/script-of-the-week-1"},{"lang":"en","slug":"/tutorials/pxl-scripts/script-of-the-week"},{"lang":"en","slug":"/tutorials/pxl-scripts/script-of-the-week/script-of-the-week-2"}],"availableLanguages":[{"slug":"/using-pixie/api-quick-start","lang":"en"}],"availableClouds":[{"name":"Cosmic Cloud","baseUrl":"https://work.getcosmic.ai","cloudAddr":"getcosmic.ai"},{"name":"New Relic Cloud","baseUrl":"https://work.withpixie.ai","cloudAddr":"withpixie.ai"}]}}}