Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

*yml* based setting to ship telemetry (and disable the UI to opt out) #49751

Closed
bmcconaghy opened this issue Oct 30, 2019 · 13 comments · Fixed by #49798
Closed

*yml* based setting to ship telemetry (and disable the UI to opt out) #49751

bmcconaghy opened this issue Oct 30, 2019 · 13 comments · Fixed by #49798

Comments

@bmcconaghy
Copy link
Contributor

setting in kibana.yml to both force opting in for telemetry and disabling the UI for opting out of it.

@elasticmachine
Copy link
Contributor

Pinging @elastic/kibana-stack-services (Team:Stack Services)

@mikecote mikecote self-assigned this Oct 30, 2019
@bmcconaghy
Copy link
Contributor Author

@bleskes this is the issue for tracking Kibana work on opt in yml setting for cloud

@Bamieh
Copy link
Member

Bamieh commented Oct 30, 2019

@bmcconaghy does it make sense to have 2 configs for this?

telemetry.allowChangingOptInStatus: false;
telemetry.optIn: true;

@mikecote
Copy link
Contributor

mikecote commented Oct 30, 2019

@Bamieh the other option could be a single config with 3 options. Something like mode: 'on' | 'off' | 'optIn'. I'm good either way.

Edit: I guess to not have telemetry, just disable the plugin.

@pmuellr
Copy link
Member

pmuellr commented Oct 30, 2019

There's already a banner config option, looks to be used as a boolean. Perhaps it has some other use, but the places it's used looks like it would prevent the banner from being displayed, when set to false:

config(Joi: typeof JoiNamespace) {
return Joi.object({
enabled: Joi.boolean().default(true),
// `config` is used internally and not intended to be set
config: Joi.string().default(Joi.ref('$defaultConfigPath')),
banner: Joi.boolean().default(true),

https://github.com/elastic/kibana/search?q=telemetryBanner&unscoped_q=telemetryBanner

So, seems like we already support this. Note that if they banner hasn't been displayed, asking them to opt in or out, and they haven't specifically enabled it in advanced settings, then we assume they've opted out.

@mikecote
Copy link
Contributor

Yeah so we need something to enable telemetry by default and prevent users from opting out. I'm thinking if enabled: true the banner automatically won't show. Then we would need to disable the APIs and UIs where the user would be able to toggle telemetry to off.

@pmuellr
Copy link
Member

pmuellr commented Oct 30, 2019

That's correct; if enabled is true, the banner won't be shown. And banner set to false does seem to prevent the banner from being displayed, if it's supposed to be displayed, based on a quick manual test.

We could use the same banner config to indicate the API should be disabled, and perhaps not provide the advanced settings section in the management app (assuming that's possible)

Perhaps not great overloading there, but OTOH, I'm a little wary of adding more config and complicating the existing code, compared to making use of an existing config in different places in the code ...

@Bamieh
Copy link
Member

Bamieh commented Oct 30, 2019

@pmuellr the banner is for hiding the opt-in banners, but they can still enable/disable opt-in by going to advanced settings. we want a config that removes the ability to change opt-in status completely (ie remove it from advanced settings, and the checkbox from license in additon to not displaying the banner and the welcome card).

@mikecote I am trying to think about all the use cases we might need in the future so breaking these configs as much as possible would be ideal.

allowChangingOptInStatus removes the ability to change opt-in status. Regardless if the user is opted in or not. This means that we'll remove all the banners and opt in checkboxes from advanced settings and license page.

telemetry.optIn: true will enable opt-in by default instead of the default opt-out. This will not prevent users from changing the opt in status via advanced settings.

The current default opt in status is null which is different from false: null prompts the user with the banner and welcome screen card, while false does not.

@bmcconaghy
Copy link
Contributor Author

Remember there's also the advanced setting page, at the bottom:

image

So we'll need a setting that is distinct from the banner one, as this shows independent of the banner setting.

@dimatkach
Copy link

Will setting these options require to restart kibana? Any chance they can be made reloadable?

@bleskes
Copy link
Contributor

bleskes commented Nov 2, 2019

@dimatkach these settings are fixed for all kibana instances on cloud- they are set to enable telemetry and remove the ui to disable. This will never change. I don’t think we need auto reload?

@dimatkach
Copy link

dimatkach commented Nov 2, 2019

@bleskes I think, it would be nice to have auto reload in these situations:

  • when we first enable it in cloud, if there are some 7.5 deployments already running
  • if we need to disable it for some reason (or in some region? ESSP? IBM?), and/or re-enable afterwards
  • when people upgrade ECE to a version that has this enabled (2.4?), while they already have some 7.5 deployments
  • Legal comes up with a different process we have to follow before this can be enabled (maybe user has to accept new TOC explicitly or something)

@bleskes
Copy link
Contributor

bleskes commented Nov 3, 2019

@dimatkach i think the ece point may be valid, depending on the tbd plan there. All the rest are safe to ignore imo. If it’s easy to do, I’m all for it. I wouldn't delay anything for it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

7 participants