Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Product Telemetry collection document #1614

Merged
merged 5 commits into from
Mar 15, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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."
sjberman marked this conversation as resolved.
Show resolved Hide resolved
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.
sjberman marked this conversation as resolved.
Show resolved Hide resolved

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
bjee19 marked this conversation as resolved.
Show resolved Hide resolved

sjberman marked this conversation as resolved.
Show resolved Hide resolved
- **Kubernetes:**
- **Platform:** the Kubernetes platform that NGINX Gateway Fabric is running on
sjberman marked this conversation as resolved.
Show resolved Hide resolved
- **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.
Loading