Telemetry in Cortex Framework

Cortex Framework collects anonymous usage statistics during deployment and synchronization processes.

Purpose of data collection

  • Feature adoption evaluation: Monitoring the frequency of framework module and data product deployments informs development priorities.
  • Integration pattern identification: Tracking connected source system variants (e.g., SAP ECC, SAP S/4HANA) enables the verification of compatibility and the prioritization of maintenance for these integrations.

Telemetry is enabled by default. To disable it, see "Disable telemetry" section.

Data collected

The framework collects configuration identifiers, such as dataset IDs, data product instance IDs, and repository IDs. User identity attributes, such as names, emails, or IP addresses, are not collected.

  • Google Cloud project number: Identifies the project running the deployment, transmitted in the X-Goog-User-Project header to aggregate usage.
  • Deployment region or location: The region where target resources are being deployed, used to track geographic distribution..
  • Framework version: The version of the Cortex Framework codebase in use (for example, 7.0.0).
  • Component name: The high-level architecture component being acted upon (for example, platform, data-product, or foundation).
  • Tool type: The specific CLI command or utility executed (for example, deployer, or knowledge-catalog)
  • Target variant: The source system or domain category of the deployed modules (e.g., sap, or marketing).
  • Enabled module types: The directory names or paths of individual modules enabled in the configuration.
  • Dataform repository ID: The user-configured name of the target Dataform repository.
  • BigQuery dataset ID: The user-configured target BigQuery dataset name.
  • Data product instance ID: The user-provided ID used during the Knowledge Catalog registration step to identify registered data products.
  • Execution status: The success or failure state of the deployment step (for example, deployed, post-deploy-success, error, registered, or updated).

User-Agent header structure

Telemetry parameters are injected into Google Cloud API requests using a specialized HTTP User-Agent header that is dynamically formatted using the following pattern:

gcp-cortex-eng/framework/<version>/<component>/<tool_type>/<variant>[/<optional_extension>]/<status>

For example, when successfully deploying SAP ERP foundations:

gcp-cortex-eng/framework/7.0.0/platform/deployer/sap/cortex/sap/foundations/sap/deployed

Data transmission

Cortex Framework utilizes a passive, zero-payload metadata logging mechanism. Rather than transmitting explicit log payloads to external endpoints, telemetry events are recorded using standard interactions with Google Cloud services.

During the execution of deploy, sync, or demo commands, the framework communicates with standard Google Cloud APIs, including BigQuery and Dataform.

No telemetry data is sent in the body of these API requests. Instead, telemetry data is captured natively by Google Cloud's API traffic logging, which parses the custom User-Agent and project number headers to measure the adoption and success rates of the solution.

Disable telemetry

Cortex Framework respects your privacy settings and implements a persistent opt-out policy. You can manage telemetry globally using the cortex-config tool or by passing a CLI flag during execution.

Disable globally

You can manage telemetry by updating a persistent user preference file located on your machine at ~/.cortex/cortex-framework-consent.properties. If this file contains enable_telemetry=false, telemetry API calls are completely skipped at runtime.

  • Permanently opt out (globally disable):
uv run cortex-config telemetry disable
  • Permanently opt in (globally enable):
uv run cortex-config telemetry enable
  • Check the current status:
uv run cortex-config telemetry status

Disable for a single execution

You can pass the --disable-telemetry flag to execution commands. When --disable-telemetry is executed once, the framework automatically creates the persistent configuration file at ~/.cortex/cortex-framework-consent.properties containing enable_telemetry=false.

## Cortex Framework-deploy
uv run cortex-deploy --config config/config.yaml --disable-telemetry

## Cortex Framework-build-and-deploy
uv run cortex-build-and-deploy --config config/config.yaml --disable-telemetry

## Cortex Framework-demo
uv run cortex-demo --config config/config.yaml --disable-telemetry

## Cortex Framework-kc-sync
uv run cortex-kc-sync --config config/config.yaml --disable-telemetry

For more information about these commands and their parameters, see the following CLI references: