We collect anonymous usage data to improve werf’s features and steer its development in the right direction. This data is not associated with users in any way and does not contain any personal information.
It helps us figure out how werf is used and focus on improving the features that are most needed.
Example of the data werf transmits and its breakdown
Below are examples of the data werf transmits:
{
"ts": 1658231825280,
"executionID": "2f75d020-684e-4224-9013-35e95e1b7721",
"userID": "",
"projectID": "b4c2d019070529344a6967d8c73d578101c6554fcdcae3d00bb93a9692523cb1",
"command": "werf converge",
"attributes": {
"arch": "amd64",
"os": "linux",
"version": "dev",
"ci": true,
"ciName": "gitlab",
"extra": {}
},
"eventType": "CommandStarted",
"eventData": {
"commandOptions": [
{
"name": "repo",
"asCli": false,
"asEnv": false,
"count": 0
}
]
},
"schemaVersion": 2
}
{
"ts": 1658231836102,
"executionID": "2f75d020-684e-4224-9013-35e95e1b7721",
"userID": "",
"projectID": "b4c2d019070529344a6967d8c73d578101c6554fcdcae3d00bb93a9692523cb1",
"command": "werf converge",
"attributes": {
"arch": "amd64",
"os": "linux",
"version": "dev",
"ci": true,
"ciName": "gitlab",
"extra": {}
},
"eventType": "CommandExited",
"eventData": {
"exitCode": 0,
"durationMs": 10827
},
"schemaVersion": 2
}
Example of build started event:
{
"ts": 1709251100000,
"executionID": "3a8b9c01-123e-4567-8901-23e4567890ab",
"userID": "",
"projectID": "c4d3e019070529344a6967d8c73d578101c6554fcdcae3d00bb93a9692523cb1",
"command": "werf build",
"attributes": {
"arch": "arm64",
"os": "darwin",
"version": "2.60.2",
"ci": false,
"extra": {}
},
"eventType": "BuildStarted",
"eventData": {
"imagesCount": 3,
"containerBackend": "docker",
"inContainer": false
},
"schemaVersion": 2
}
Example of build finished event:
{
"ts": 1709251150000,
"executionID": "3a8b9c01-123e-4567-8901-23e4567890ab",
"userID": "",
"projectID": "c4d3e019070529344a6967d8c73d578101c6554fcdcae3d00bb93a9692523cb1",
"command": "werf build",
"attributes": {
"arch": "arm64",
"os": "darwin",
"version": "2.60.2",
"ci": false,
"extra": {}
},
"eventType": "BuildFinished",
"eventData": {
"durationMs": 50000,
"success": true,
"imagesCount": 3
},
"schemaVersion": 2
}
Example of image build finished event:
{
"ts": 1709251140000,
"executionID": "3a8b9c01-123e-4567-8901-23e4567890ab",
"userID": "",
"projectID": "c4d3e019070529344a6967d8c73d578101c6554fcdcae3d00bb93a9692523cb1",
"command": "werf build",
"attributes": {
"arch": "arm64",
"os": "darwin",
"version": "2.60.2",
"ci": false,
"extra": {}
},
"eventType": "ImageBuildFinished",
"eventData": {
"image": "backend",
"durationMs": 15500,
"rebuilt": true,
"configType": "stapel"
},
"schemaVersion": 2
}
Example of stage build finished event:
{
"ts": 1709251135000,
"executionID": "3a8b9c01-123e-4567-8901-23e4567890ab",
"userID": "",
"projectID": "c4d3e019070529344a6967d8c73d578101c6554fcdcae3d00bb93a9692523cb1",
"command": "werf build",
"attributes": {
"arch": "arm64",
"os": "darwin",
"version": "2.60.2",
"ci": false,
"extra": {}
},
"eventType": "StageBuildFinished",
"eventData": {
"image": "backend",
"stage": "install",
"durationMs": 8500,
"fromCache": false,
"baseImageSource": "repo",
"baseImagePulled": true
},
"schemaVersion": 2
}
In the examples above, the following usage data is sent:
ts— timestamp;executionID— run UUID;userID— anonymous user identifier; may be empty if not set;projectID— checksum (SHA-256) of the Git origin URL of the project;command— the name of the werf command being executed;attributes— environment attributes:os— operating system;arch— CPU architecture;groupChannel— selectedtrdlgroup channel if set viaTRDL_USE_WERF_GROUP_CHANNEL;version— werf version;ci— whether a CI/CD system is used;ciName— detected CI/CD system name (gitlab,github-actions, etc.);extra— additional anonymous attributes from environment variables with theWERF_TELEMETRY_EXTRA_ATTRIBUTE_*prefix.
eventType— type of event:CommandStarted— command execution started;CommandExited— command execution completed;UnshallowFailed— error duringunshallowin GitLab CI;BuildStarted— image build started;BuildFinished— image build completed;ImageBuildFinished— individual image build completed;StageBuildFinished— individual stage build completed.
eventData— event data specific to each event type:- for
CommandStarted: list of command options with flags (asCli,asEnv,count); - for
CommandExited: exit code (exitCode) and command execution duration in milliseconds (durationMs); - for
UnshallowFailed: error message (errorMessage), GitLab Runner version (gitlabRunnerVersion), and GitLab Server version (gitlabServerVersion); - for
BuildStarted: number of images to build (imagesCount), selected container backend (containerBackend:docker/buildah), and whether werf runs inside a container (inContainer); - for
BuildFinished: build duration (durationMs), success status (success), and number of images (imagesCount); - for
ImageBuildFinished: image name (image), build time (durationMs), rebuild flag (rebuilt), and image config type (configType:stapel/dockerfile/staged/unknown); - for
StageBuildFinished: image name (image), stage name (stage), build time (durationMs), cache usage flag (fromCache), base image source (baseImageSource:repo/secondary/empty value), and whether the base image was pulled (baseImagePulled).
- for
We collect only anonymized information, as shown in the examples above. You can verify this yourself in the werf source code responsible for telemetry: the event.go and telemetrywerfio.go files in the telemetry package.
Configuring the telemetry log file
We trust our users and want them to trust us, so we tried to make the process as transparent as possible. Use the WERF_TELEMETRY_LOG_FILE environment variable to specify the path to the log file where all telemetry data will be stored.
Disabling telemetry
You can disable telemetry by setting the WERF_TELEMETRY environment variable to 0:
export WERF_TELEMETRY=0