Graylog2 / graylog2-server

Free and open log management
https://www.graylog.org
Other
7.33k stars 1.05k forks source link

Add telemetry for generic usage metrics collections in Graylog #14900

Closed ousmaneo closed 1 year ago

ousmaneo commented 1 year ago

Add the following features to core to support telemetry:

kroepke commented 1 year ago

I'll keep updating this comment. Please feel free to break out issues where it makes sense.

For each cluster, we want to create a group whose key is the actual cluster ID the telemetry generates. We probably only need to load these group properties once when the application loads unless there are ever metrics that change dramatically between page loads and might affect cohorts.

Additional properties we'd like to track:

digdilem-work commented 1 year ago

How can we disable telemetry tracking globally, please?

Our company policy requires we do not expose even "non private" information. (Trusting a third party's definition of 'private' is hard for companies that deal with sensitive information)

As it's automatically enabled per-user, yet shares global server information (above) it seems unduly difficult to disable this - possibly deliberately so. Apparently needing to ask each user to manually untick something that didn't exist in 5.0

hydrapolic commented 1 year ago

How can we disable telemetry tracking globally, please?

Our company policy requires we do not expose even "non private" information. (Trusting a third party's definition of 'private' is hard for companies that deal with sensitive information)

As it's automatically enabled per-user, yet shares global server information (above) it seems unduly difficult to disable this - possibly deliberately so. Apparently needing to ask each user to manually untick something that didn't exist in 5.0

I'd also like to disable it globally or have the possibility to disable it per user as an administrator.

htolic commented 1 year ago

Until Graylog ships new changes that will allow changing telemetry to off globally something along the lines will suffice. Run it against Mongo every time you add new users to Graylog:

db.getCollection("users").aggregate([
    { "$set": { "user_id": { "$toString": "$_id" }, "telemetry_enabled": false, "telemetry_permission_asked": true } },
    {
        "$unset": ["_id", "timezone", "auth_service_id", "roles", "auth_service_uid", "account_status",
            "password", "session_timeout_ms", "full_name", "permissions", "external_user", "email",
            "username", "preferences", "startpage", "last_name", "first_name", "service_account"]
    },
    { "$out": "telemetry_user_settings" }
])
melvin-suter commented 11 months ago

This needs to be addressed fast!