From 1e0c44b689778b7113781c0c463e215171acb9e4 Mon Sep 17 00:00:00 2001 From: Saylor Berman Date: Fri, 15 Mar 2024 17:35:52 -0600 Subject: [PATCH] Product Telemetry collection document (#1614) Problem: Users will want to understand how and why we collect product telemetry, as well as how to opt-out if desired. Solution: Add a document explaining these things. --- site/content/overview/gateway-architecture.md | 4 ++ site/content/overview/product-telemetry.md | 55 +++++++++++++++++++ 2 files changed, 59 insertions(+) create mode 100644 site/content/overview/product-telemetry.md diff --git a/site/content/overview/gateway-architecture.md b/site/content/overview/gateway-architecture.md index 6b047f202f..3aa7753791 100644 --- a/site/content/overview/gateway-architecture.md +++ b/site/content/overview/gateway-architecture.md @@ -92,6 +92,10 @@ The following list describes the connections, preceeded by their types in parent 1. (HTTP, HTTPS) A _client_ sends traffic to and receives traffic from any of the _NGINX workers_ on ports 80 and 443. 1. (HTTP, HTTPS) An _NGINX worker_ sends traffic to and receives traffic from the _backends_. +Below are additional connections not depcited on the diagram: + +- (HTTPS) NGF sends [product telemetry data]({{< relref "/overview/product-telemetry.md" >}}) to the F5 telemetry service. + ### Differences with NGINX Plus The previous diagram depicts NGINX Gateway Fabric using NGINX Open Source. NGINX Gateway Fabric with NGINX Plus has the following difference: diff --git a/site/content/overview/product-telemetry.md b/site/content/overview/product-telemetry.md new file mode 100644 index 0000000000..8db9f360c9 --- /dev/null +++ b/site/content/overview/product-telemetry.md @@ -0,0 +1,55 @@ +--- +title: "Product Telemetry" +description: "Learn how NGINX Gateway Fabric collects product telemetry to identify areas to focus development on improving." +weight: 500 +toc: true +--- + +## Overview + +NGINX Gateway Fabric collects telemetry by default, which allows its developers to understand what features are most popular with its user base. This data is used to triage development work, prioritizing features and functionality that will positively impact the most people. + +Telemetry data is collected once every 24 hours and sent to a service managed by F5 over HTTPS. Personally identifiable information (PII) is **not** collected. The list of data points that are collected can be seen below. + +**If you would prefer to not have data collected, you can [opt-out](#opt-out) when installing NGINX Gateway Fabric.** + +## Collected data + +- **Kubernetes:** + - **Platform:** the Kubernetes platform that NGINX Gateway Fabric is running on + - **Version:** the Kubernetes version that NGINX Gateway Fabric is running on. + - **Architecture:** the architecture that the Kubernetes environment is running on. +- **Cluster UID:** the UID of the `kube-system` Namespace in the cluster that NGINX Gateway Fabric is running in. +- **Cluster Node Count:** the number of Nodes in the cluster. +- **Version:** the version of the NGINX Gateway Fabric Deployment. +- **Deployment UID:** the UID of the NGINX Gateway Fabric Deployment. +- **Deployment Replica Count:** the count of NGINX Gateway Fabric Pods. +- **Image Build Source:** whether the image was built by GitHub or locally (values are `gha`, `local`, or `unknown`). The source repository of the images is **not** collected. +- **Deployment Flags:** a list of NGINX Gateway Fabric Deployment flags that are specified by a user. The actual values of non-boolean flags are **not** collected; we only record that they are either `true` or `false` for boolean flags and `default` or `user-defined` for the rest. +- **Count of Resources:** the total count of resources related to NGINX Gateway Fabric. This includes `GatewayClasses`, `Gateways`, `HTTPRoutes`, `Secrets`, `Services`, and `Endpoints`. The data within these resources is **not** collected. + +This data is used to identify the following information: + +- The flavors of Kubernetes environments that are most popular among our users. +- The number of unique NGINX Gateway Fabric installations. +- The scale of NGINX Gateway Fabric Deployments. +- The scale of Gateway API resources. +- The used features of NGINX Gateway Fabric. + +Our goal is to publicly discuss data trends to drive roadmap discussions in our [Community Meeting](https://github.com/nginxinc/nginx-gateway-fabric/discussions/1472). + +## Opt out + +You can disable product telemetry when installing NGINX Gateway Fabric using an option dependent on your installation method: + +### Helm + +Set the `nginxGateway.productTelemetry.enable=false` flag either in the `values.yaml` file or when installing: + +```shell +helm install ... --set nginxGateway.productTelemetry.enable=false +``` + +### Manifests + +Add the `--product-telemetry-disable` flag to the `nginx-gateway` container in your Deployment manifest.