Чтобы работать над улучшением функций werf и направлять разработку в правильное русло, мы собираем анонимные данные об использовании. Эти данные никак не привязываются к пользователям и не содержат никакой персонализированной информации.
Они помогают понять, как используется werf, и бросить силы на улучшение нужных функций.
Пример передаваемых данных и их расшифровка
Ниже приведены примеры передаваемых данных:
{
"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
}
Пример начала сборки:
{
"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
}
Пример завершения сборки:
{
"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
}
Пример завершения сборки образа:
{
"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
}
Пример завершения сборки стадии:
{
"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
}
Здесь передаются следующие данные об использовании:
ts— timestamp;executionID— UUID запуска;userID— анонимный идентификатор пользователя; может быть пустым, если не задан;projectID— контрольная сумма (SHA-256) от git origin URL проекта;command— название выполняемой команды werf;attributes— атрибуты окружения:os— операционная система;arch— архитектура;groupChannel— используемыйtrdlgroup-channel, если задан черезTRDL_USE_WERF_GROUP_CHANNEL;version— версия werf;ci— используется ли CI/CD система;ciName— имя используемой CI/CD системы (gitlab,github-actionsи т. п.);extra— набор дополнительных анонимных атрибутов из переменных окруженияWERF_TELEMETRY_EXTRA_ATTRIBUTE_*.
eventType— тип события:CommandStarted— запуск команды;CommandExited— завершение команды;UnshallowFailed— ошибка приunshallowв GitLab CI;BuildStarted— начало сборки образов;BuildFinished— завершение сборки образов;ImageBuildFinished— завершение сборки отдельного образа;StageBuildFinished— завершение сборки отдельной стадии.
eventData— данные события, специфичные для каждого типа:- для
CommandStarted: список используемых опций команды с флагами (asCli,asEnv,count); - для
CommandExited: код выхода (exitCode), длительность выполнения команды в миллисекундах (durationMs); - для
UnshallowFailed: сообщение об ошибке (errorMessage), версии GitLab Runner (gitlabRunnerVersion) и Server (gitlabServerVersion); - для
BuildStarted: количество образов для сборки (imagesCount), используемый контейнерный бэкенд (containerBackend:docker/buildah), а также флаг запуска werf внутри контейнера (inContainer); - для
BuildFinished: длительность сборки (durationMs), успешность (success), количество образов (imagesCount); - для
ImageBuildFinished: имя образа (image), время сборки (durationMs), флаг пересборки (rebuilt), тип конфигурации образа (configType:stapel/dockerfile/staged/unknown); - для
StageBuildFinished: имя образа (image), имя стадии (stage), время сборки (durationMs), флаг использования кэша (fromCache), источник базового образа (baseImageSource:repo/secondary/пустое значение), флаг загрузки базового образа (baseImagePulled).
- для
Вы можете сами убедиться в том, что мы собираем только обезличенную информацию, как указано в примере выше. Для этого см. исходный код werf, отвечающий за телеметрию: файлы event.go и telemetrywerfio.go пакета telemetry.
Выгрузка отчета телеметрии
Мы доверяем нашим пользователям и хотим, чтобы они так же доверяли нам, поэтому сделали все максимально прозрачно. Используя переменную окружения WERF_TELEMETRY_LOG_FILE, можно задать путь к лог-файлу, куда будут складываться все данные, передаваемые телеметрией.
Отключение телеметрии
Пользователь может отключить телеметрию с помощью переменной окружения WERF_TELEMETRY. Для отключения необходимо выставить значение в 0:
export WERF_TELEMETRY=0