From 0565ea233ace14a6b55cedb9a7b7c95ec953df6e Mon Sep 17 00:00:00 2001 From: Saylor Berman Date: Fri, 23 Feb 2024 12:00:25 -0700 Subject: [PATCH 1/4] Product Telemetry collection document 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/product-telemetry.md | 53 ++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 site/content/overview/product-telemetry.md diff --git a/site/content/overview/product-telemetry.md b/site/content/overview/product-telemetry.md new file mode 100644 index 0000000000..1df0b755c7 --- /dev/null +++ b/site/content/overview/product-telemetry.md @@ -0,0 +1,53 @@ +--- +title: "Collecting Product Telemetry" +description: "Learn how NGINX Gateway Fabric collects product telemetry to help make improvements in the product." +weight: 500 +toc: true +--- + +## Overview + +In order to understand our users and the features that they value, NGINX Gateway Fabric collects product telemetry by default. This data is used to help determine the priorities of the product to ensure we are delivering the most valuable functionality and features to our users. + +Telemetry data is collected once every 24 hours and sent to a service managed by F5. 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 and Version:** the Kubernetes platform and version that NGINX Gateway Fabric is running on. +- **Platform 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. +- **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. +- **NGINX Modules:** a list of installed NGINX modules. +- **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 `default` or `user-defined`. +- **Count of Relevant Resources:** the total count of relevant resources 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 + +To disable the collection of product telemetry, set one of the following options when installing NGINX Gateway Fabric, depending 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. From 57cfe1a6c42df95725b9ee42251d3c685d7a9e9c Mon Sep 17 00:00:00 2001 From: Saylor Berman Date: Mon, 26 Feb 2024 08:26:28 -0700 Subject: [PATCH 2/4] Apply suggestions from code review Co-authored-by: Alan Dooley --- site/content/overview/product-telemetry.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/site/content/overview/product-telemetry.md b/site/content/overview/product-telemetry.md index 1df0b755c7..d8ddccb981 100644 --- a/site/content/overview/product-telemetry.md +++ b/site/content/overview/product-telemetry.md @@ -1,19 +1,19 @@ --- -title: "Collecting Product Telemetry" -description: "Learn how NGINX Gateway Fabric collects product telemetry to help make improvements in the product." +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 -In order to understand our users and the features that they value, NGINX Gateway Fabric collects product telemetry by default. This data is used to help determine the priorities of the product to ensure we are delivering the most valuable functionality and features to our users. +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. 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 +## Collected data - **Kubernetes Platform and Version:** the Kubernetes platform and version that NGINX Gateway Fabric is running on. - **Platform Architecture:** the architecture that the Kubernetes environment is running on. @@ -21,10 +21,10 @@ Telemetry data is collected once every 24 hours and sent to a service managed by - **Cluster Node Count:** the number of Nodes in the cluster. - **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. +- **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. - **NGINX Modules:** a list of installed NGINX modules. - **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 `default` or `user-defined`. -- **Count of Relevant Resources:** the total count of relevant resources to NGINX Gateway Fabric. This includes `GatewayClasses`, `Gateways`, `HTTPRoutes`, `Secrets`, `Services`, and `Endpoints`. The data within these resources is **not** collected. +- **Count of Gateway 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: @@ -36,9 +36,9 @@ This data is used to identify the following information: 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 +## Opt out -To disable the collection of product telemetry, set one of the following options when installing NGINX Gateway Fabric, depending on your installation method: +You can disable product telemetry when installing NGINX Gateway Fabric using an option dependent on your installation method: ### Helm From 61d0a257ff01ff3545c6f2c54efe14e30ffeb861 Mon Sep 17 00:00:00 2001 From: Saylor Berman Date: Wed, 28 Feb 2024 11:00:50 -0700 Subject: [PATCH 3/4] Code review --- site/content/overview/product-telemetry.md | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/site/content/overview/product-telemetry.md b/site/content/overview/product-telemetry.md index d8ddccb981..8db9f360c9 100644 --- a/site/content/overview/product-telemetry.md +++ b/site/content/overview/product-telemetry.md @@ -9,22 +9,24 @@ toc: true 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. Personally identifiable information (PII) is **not** collected. The list of data points that are collected can be seen below. +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 and Version:** the Kubernetes platform and version that NGINX Gateway Fabric is running on. -- **Platform Architecture:** the architecture that the Kubernetes environment is running on. +- **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. -- **NGINX Modules:** a list of installed NGINX modules. -- **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 `default` or `user-defined`. -- **Count of Gateway 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. +- **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: From 2b3de202e5dba5f57083c7797ebb9b1de521b720 Mon Sep 17 00:00:00 2001 From: Saylor Berman Date: Fri, 15 Mar 2024 11:15:24 -0600 Subject: [PATCH 4/4] Architecture note --- site/content/overview/gateway-architecture.md | 4 ++++ 1 file changed, 4 insertions(+) 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: