***

title: "TelemetryService"
generated: true
---------------

<GenerationInfo sourceFile="packages/core/src/telemetry/telemetry.service.ts" sourceLine="61" packageName="@vendure/core" since="3.6.0" />

The TelemetryService collects anonymous usage data from Vendure applications and
sends it to the Vendure telemetry endpoint. This data helps the Vendure team
understand how the framework is being used and prioritize development efforts.

**Timing:**
An initial event is sent shortly after startup, and a further "heartbeat" event
is then sent roughly every 24 hours for as long as the server is running.

**What is collected:**
Version and runtime information (Vendure/Node versions, platform, JS runtime,
package manager, CPU/memory shape), database type, plugin package names (custom
plugin names are never collected), range-bucketed entity counts including order
lifecycle and internationalization breadth, deployment/cloud detection, and a
configuration summary reduced to booleans, enums and strategy/customization
indicators. See the Telemetry guide for the full, authoritative list.

**Privacy guarantees:**

* Installation ID is a random UUID, not derived from any system information
* Custom plugin names are NOT collected (only count)
* Entity counts use ranges, not exact numbers
* No PII (no hostnames, IPs, user data), secrets, credentials or file paths are collected
* Custom strategy class names are never sent (only the config paths that were customized)
* All failures are silently ignored

**Opt-out:**
Set the environment variable `VENDURE_DISABLE_TELEMETRY=true` to disable telemetry.

**CI environments:**
Telemetry is automatically disabled in CI environments.

```ts title="Signature"
class TelemetryService implements OnApplicationBootstrap, OnApplicationShutdown {
    constructor(processContext: ProcessContext, installationIdCollector: InstallationIdCollector, systemInfoCollector: SystemInfoCollector, databaseCollector: DatabaseCollector, pluginCollector: PluginCollector, configCollector: ConfigCollector, deploymentCollector: DeploymentCollector, featuresCollector: FeaturesCollector)
    onApplicationBootstrap() => ;
    onApplicationShutdown() => ;
}
```

* Implements: OnApplicationBootstrap, OnApplicationShutdown

<div className="members-wrapper">

### onApplicationBootstrap

\<MemberInfo kind="method" type={`() => `}   />

### onApplicationShutdown

\<MemberInfo kind="method" type={`() => `}   />

</div>
