The language server is capable of sending telemetry using the native LSP telemetry/event
method.
Telemetry is off by default and can enabled by passing a supported request format version
as an experimental client capability.
{
"capabilities": {
"experimental": {
"telemetryVersion": 1
}
}
}
Clients then implement opt-in or opt-out in the UI and should reflect the user's choice.
Sensitive data, such as filesystem paths or addresses of providers sourced from outside the Terraform Registry are anonymized. Random UUID is generated in memory and tracked instead of a path or a private provider address.
Mapping of such UUIDs is not persisted anywhere other than in memory during process lifetime.
The only supported version is currently 1
. Version negotiation allows the server
to introduce breaking changes to the format and have clients adopt gradually.
telemetry/event
structure
{
"v": 1,
"name": "eventName",
"properties": {}
}
properties
may contain any (valid) JSON types
including arrays and arbitrarily nested objects. It is client's
reponsibility to serialize these properties when and if necessary.
Example events:
{
"v": 1,
"name": "initialize",
"properties": {
"experimentalCapabilities.referenceCountCodeLens": true,
"lsVersion": "0.23.0",
"options.commandPrefix": true,
"options.excludeModulePaths": false,
"options.experimentalFeatures.prefillRequiredFields": false,
"options.experimentalFeatures.validateOnSave": false,
"options.rootModulePaths": false,
"options.terraformExecPath": false,
"options.terraformExecTimeout": "",
"options.terraformLogFilePath": false,
"root_uri": "dir"
}
}
{
"v": 1,
"name": "moduleData",
"properties": {
"backend": "remote",
"backend.remote.hostname": "app.terraform.io",
"installedProviders": {
"registry.terraform.io/hashicorp/aws": "3.57.0",
"registry.terraform.io/hashicorp/null": "3.1.0"
},
"moduleId": "8aa5a4dc-4780-2d90-b8fb-57de8288fb32",
"providerRequirements": {
"registry.terraform.io/hashicorp/aws": "",
"registry.terraform.io/hashicorp/null": "~> 3.1"
},
"tfRequirements": "~> 1.0",
"tfVersion": "1.0.7"
}
}