Skip to content

Commit

Permalink
Product Telemetry collection document (nginxinc#1614)
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
sjberman authored and amimimor committed Apr 3, 2024
1 parent 5620626 commit df1ab5f
Show file tree
Hide file tree
Showing 2 changed files with 59 additions and 0 deletions.
4 changes: 4 additions & 0 deletions site/content/overview/gateway-architecture.md
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down
55 changes: 55 additions & 0 deletions site/content/overview/product-telemetry.md
Original file line number Diff line number Diff line change
@@ -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.

0 comments on commit df1ab5f

Please sign in to comment.