Phân tích của Homebrew rời Google và chuyển sang EU
(docs.brew.sh)- Homebrew thu thập phân tích ẩn danh bằng InfluxDB và chỉ bật phân tích sau khi hiển thị thông báo ở lần chạy
brew updateđầu tiên hoặc khi cài đặt - Do là một dự án miễn phí và dựa trên tình nguyện viên, dữ liệu như tỷ lệ lỗi của formula, phiên bản OS và tần suất sử dụng lệnh là cơ sở để quyết định tính năng và mức độ ưu tiên sửa lỗi
- Dữ liệu phân tích ẩn danh trong InfluxDB được lưu giữ trong 365 ngày, và toàn bộ dữ liệu phân tích từng được gửi tới Google Analytics trước đây đã bị xóa
- Phạm vi thu thập được giới hạn ở việc có phải CI hay không, có dùng prefix cài đặt mặc định hay không, kiến trúc CPU, phiên bản OS và Homebrew, cùng các sự kiện như cài đặt, lỗi build, và thực thi lệnh
- Người dùng có thể tắt phân tích bằng
HOMEBREW_NO_ANALYTICS=1hoặcbrew analytics off, và hệ thống không lưu địa chỉ IP hay liên kết một sự kiện cụ thể với một người dùng cụ thể
Thời điểm bật phân tích và lý do sử dụng
- Vì Homebrew được cung cấp miễn phí và do các tình nguyện viên vận hành trong thời gian rảnh, dự án thiếu nguồn lực nghiên cứu người dùng riêng để thiết kế tính năng và sắp xếp ưu tiên công việc
- Phân tích ẩn danh được dùng để hiểu Homebrew được sử dụng như thế nào, ở đâu và khi nào, từ đó xác định ưu tiên sửa lỗi và tính năng
- Những formula được dùng rộng rãi nhưng thường xuyên thất bại có thể được ưu tiên sửa trước các formula khác
- Thông tin phiên bản OS được dùng để ưu tiên các phiên bản macOS cần hỗ trợ và nhận diện các lỗi build chỉ xảy ra trên một phiên bản cụ thể
- Những lệnh có tần suất sử dụng thấp có thể bị loại bỏ
- Phân tích chỉ được bật sau khi hiển thị thông báo khi bạn chạy
brew updatelần đầu hoặc khi cài đặt Homebrew- Trước khi có thông báo, dữ liệu phân tích sẽ không được gửi, để người dùng có thể opt-out trước khi truyền dữ liệu
- Dữ liệu phân tích ẩn danh được lưu trong InfluxDB có thời hạn giữ là 365 ngày
- Toàn bộ dữ liệu phân tích trước đây từng được gửi tới Google Analytics đã bị xóa
Các sự kiện được gửi và phạm vi thu thập
- Mọi sự kiện formula hoặc cask đều được ghi cùng thông tin chung
- Có được gửi từ CI hay không
- Có dùng prefix cài đặt mặc định hay không
- Ví dụ prefix mặc định là
/opt/homebrew - Ví dụ prefix tùy chỉnh là
/home/mike/.brew - Prefix tùy chỉnh được gửi dưới dạng
custom-prefixđể giữ tính ẩn danh
- Ví dụ prefix mặc định là
- Có thiết lập biến môi trường
HOMEBREW_DEVELOPERhay không - Trạng thái
devcmdruncho biết đã từng chạy lệnh dành cho nhà phát triển Homebrew hay chưa - Kiến trúc CPU, ví dụ
x86_64 - OS và phiên bản, ví dụ
macOS 13 - Phiên bản Homebrew, ví dụ
4.0.0
- Phân tích của Homebrew ghi lại nhiều nhóm sự kiện
install: formula Homebrew được cài từ GitHub tap không riêng tư và các tùy chọn đã dùnginstall_on_request: formula và tùy chọn mà người dùng yêu cầu cài đặt một cách tường minhcask_install: cask Homebrew được cài từ GitHub tap không riêng tưbuild_error: formula và tùy chọn đã thất bại khi cài đặt- Chi tiết hoặc log của lỗi build không được gửi đi
command_run: lệnh đã chạy và các cờ đi kèmtest_bot_test: chỉ dùng trong môi trường CI của Homebrew để ghi lại kết quả kiểm thử pull request
- Nếu đặt
HOMEBREW_ANALYTICS_DEBUG=1trong môi trường, bạn có thể xem toàn bộ thông tin mà phân tích Homebrew gửi đi, và thiết lập này cũng dừng luôn việc gửi phân tích - Dữ liệu phân tích được gửi tới InfluxDB qua HTTPS trong quá trình chạy Homebrew
Dữ liệu công khai, mã nguồn và cách opt-out
- Các sự kiện phân tích đã được tổng hợp có thể xem tại trang công khai và cũng có JSON API
- Phần lớn maintainer của Homebrew không được cấp quyền truy cập vào dữ liệu phân tích chi tiết hơn ngoài tài nguyên công khai này
- Nhà phát triển Homebrew không thể liên kết một sự kiện cụ thể với một người dùng cụ thể, đồng thời cũng không lưu hay nhận địa chỉ IP
- Mã phân tích có thể xem tại
analytics.rbvàanalytics.sh- Chạy trong một tiến trình nền riêng
- Thất bại nhanh để không làm chậm quá trình chạy Homebrew
- Nếu không có kết nối mạng thì sẽ ngay lập tức thất bại một cách im lặng
- Để tắt phân tích, có thể dùng biến môi trường hoặc lệnh
export HOMEBREW_NO_ANALYTICS=1brew analytics off
1 bình luận
Ý kiến trên Hacker News
Tính năng phân tích của Homebrew nay đã được chuyển hoàn toàn sang instance InfluxDB tại EU, thu thập ít dữ liệu hơn trước và toàn bộ dữ liệu Google Analytics đã bị xóa
https://docs.brew.sh/Analytics
Khi thử chạy
brew analyticstrong lúc cập nhật sáng nay thì thấy hiệnInfluxDB analytics are disabled.vàGoogle Analytics were destroyed.HOMEBREW_NO_ANALYTICS 1, gỡ thiết lập này ra thì phân tích InfluxDB sẽ được bậtViệc đội ngũ Homebrew giữ lời hứa rời bỏ Google Analytics là điều đáng chúc mừng
Nếu hiện đang cấu hình như bên dưới thì
brew analytics statesẽ báo phân tích InfluxDB bị vô hiệu hóa, còn Google Analytics đã bị xóaHOMEBREW_NO_GOOGLE_ANALYTICS 1HOMEBREW_NO_ANALYTICS 1Sau đó nếu chạy
brew updatethì sẽ hiện cảnh báo rằngHOMEBREW_NO_GOOGLE_ANALYTICSgiờ không còn tác dụng gì nữa nên có thể bỏ đi, đồng thời thông báo rằng phân tích đã chuyển sang InfluxDB ở EU và hướng dẫn bật lại bằngbrew analytics onTuy vậy, để phân tích InfluxDB không bị bật lên thì vẫn phải giữ
HOMEBREW_NO_ANALYTICS 1Tôi vẫn dùng macOS vì Homebrew, nếu không có nó chắc tôi đã dùng
apttrên LinuxKhông biết có trang nào thuận tiện để tìm kiếm gói apt như
brew.shkhông. Trang apt của Ubuntu quá rối rắmapt-cache searchTôi không hiểu vì sao một trình quản lý gói lại cần thu thập dữ liệu phân tích
Ngay cả dữ liệu được thu thập cũng có thể đủ để nhận diện bằng dấu vân tay thiết bị
Dữ liệu phân tích đóng vai trò như một hệ thống cảnh báo và là căn cứ thực tế để đánh giá tầm quan trọng, độ bất ổn của gói, v.v.
Ngoài ra Homebrew chạy trên macOS nhưng không thể kiểm soát cách Apple thay đổi macOS, nên phân tích giúp nhanh chóng phát hiện các hỏng hóc do thay đổi đơn phương từ Apple gây ra
Homebrew là miễn phí và hoàn toàn do tình nguyện viên vận hành trong thời gian rảnh, nên không có nguồn lực để làm khảo sát người dùng chi tiết nhằm quyết định thiết kế tính năng tương lai hay ưu tiên công việc hiện tại
Thông qua phân tích ẩn danh, họ có thể biết formula nào được dùng rộng rãi nhưng hay lỗi, nên ưu tiên hỗ trợ phiên bản macOS nào, và các lỗi build chỉ xảy ra ở phiên bản cụ thể là gì
Cập nhật: cũng có ý kiến cho rằng bản thân việc dùng Google Analytics không còn là vấn đề
https://arstechnica.com/tech-policy/2023/07/big-tech-can-tra...
brew analytics offThật ngạc nhiên khi một dịch vụ miễn phí lại có thể tuân thủ GDPR tốt hơn những popup phiền toái vô tận trên các website khác
Mấy popup bực mình đó đôi khi trông như được thiết kế để quấy rối chứ không phải vì cần thiết
Ngoài chuyện “càng ít dữ liệu càng ít rắc rối”, yếu tố quan liêu cũng rất lớn. Hồi trước khi tôi phụ trách tuân thủ GDPR, đội bảo mật muốn lưu mọi dữ liệu mãi mãi, còn bộ phận pháp lý phụ trách xác định phạm vi GDPR lại xung đột với bộ phận pháp lý chung
Đặc biệt bộ phận pháp lý chung vừa không hiểu hệ thống làm gì vừa phớt lờ giải thích, nhưng vẫn liên tục thúc ép các thay đổi chính sách lưu trữ không liên quan hoặc còn mâu thuẫn với nhau
Nếu muốn thu thập dữ liệu thì hãy hỏi người dùng và giải thích chính xác bạn sẽ làm gì
Mọi thứ chỉ trở nên khó khi bạn muốn thu thập nhiều dữ liệu đến mức người dùng sẽ không đồng ý nếu biết rõ phạm vi, rồi còn muốn gửi cho nhiều bên thứ ba. Từ lúc đó người ta bắt đầu dùng những thủ thuật đen tối nhất để đánh lừa người dùng trong khi vẫn giả vờ tuân thủ về mặt pháp lý
Ngay cả công cụ dòng lệnh cũng gửi telemetry về nhà thì đúng là tuyệt vời. Chẳng còn đâu không phải spyware
Homebrew là một hệ thống phức tạp có thể hỏng theo nhiều cách, phía sau cũng không có công ty nào mà được phát triển hoàn toàn mã nguồn mở
Việc có thể quan sát ở một mức độ nào đó cách hệ thống đang chạy là điều cơ bản. Bắt các nhà phát triển đang hiến thời gian cho một dự án rất hữu ích phải làm việc với một tay bị trói chỉ vì sự hoang tưởng là điều vô lý
Nếu kiểu đòi hỏi này thắng thế thì phần mềm mã nguồn mở sẽ либо không được tạo ra, либо rơi vào tay các công ty vì lợi nhuận vốn còn kém thiện chí hơn nhiều về chuyện spyware
Câu chuyện lần này là dự án Homebrew đã lắng nghe ý kiến cộng đồng và chuyển sang phân tích tự lưu trữ theo hướng bảo vệ quyền riêng tư, nên tốt nhất cứ bỏ qua những người kiểu này vì họ sẽ chẳng bao giờ hài lòng
Nếu là công cụ đơn giản không cần kết nối Internet thì còn được, nhưng Homebrew không chỉ là công cụ dòng lệnh mà còn là kho lưu trữ và hệ thống build luôn vận động
Là nhà phát triển thì tôi nghĩ việc muốn hiểu một thay đổi cụ thể ảnh hưởng ra sao tới trải nghiệm người dùng là hoàn toàn hợp lý
Việc rời Google Analytics có cảm giác như một lựa chọn hơi ngượng gạo
Google đã có thể lấy gần như toàn bộ dữ liệu họ muốn thông qua người dùng Chrome, còn GA về cơ bản chỉ giống như cách giúp Google bắt được cả người không dùng Chrome
Quan trọng hơn, nó còn cho tôi thấy Google đang nhìn thấy gì trên trang của tôi
Tắt GA có thể gây chút cản trở cho Google, nhưng có lẽ chỉ làm giảm tối đa khoảng 10% dữ liệu sử dụng của người dùng, đổi lại tôi mất khả năng nhìn thấy Google đang thấy gì về mình
Google vẫn chiếm hơn 90% lưu lượng tìm kiếm, nên rời GA có cảm giác như vùi đầu xuống cát
Tôi hiểu việc không muốn bị theo dõi hay chia sẻ dữ liệu, nhưng không chắc việc tắt GA có thực sự giải quyết vấn đề đó không
https://usercentrics.com/knowledge-hub/google-analytics-and-...
Một công ty Thụy Điển thậm chí đã bị phạt số tiền rất lớn: https://techcrunch.com/2023/07/03/google-analytics-sweden-gd...