fix(#3471): keep Metrics Drilldown, which declarativePlugins had silently removed
Setting declarativePlugins to any list -- the empty one included -- also sets upstream's plugins.preinstall_disabled, which nixpkgs defaults to declarativePlugins != null. Preinstall is what fetches the Drilldown apps on first start, so claiming the plugin directory removed them without touching anything a person had installed. The comment above that line reasoned about the plugin path and the update check and never about preinstall, and its closing claim -- nothing is taken over on a hive with no plugins -- was true only of plugins a PERSON installs. Upstream installs some itself, and those are the ones that went missing. Listing it as a package is better than the preinstall it replaces: store pinned, no runtime fetch from grafana.com, survives a state reset. Its Logs/Traces/Profiles siblings stay off -- they front Loki, Tempo and Pyroscope, none of which this swarm runs.
This commit is contained in:
parent
72b2a0357b
commit
5e6f26f209
1 changed files with 26 additions and 7 deletions
|
|
@ -177,7 +177,8 @@ in
|
|||
|
||||
plugins = lib.mkOption {
|
||||
type = lib.types.listOf lib.types.package;
|
||||
default = [ ];
|
||||
default = [ pkgs.grafanaPlugins.grafana-metricsdrilldown-app ];
|
||||
defaultText = lib.literalExpression "[ pkgs.grafanaPlugins.grafana-metricsdrilldown-app ]";
|
||||
example = lib.literalExpression "[ pkgs.grafanaPlugins.grafana-piechart-panel ]";
|
||||
description = ''
|
||||
Grafana plugins to install, as packages. Declarative rather than
|
||||
|
|
@ -193,9 +194,18 @@ in
|
|||
and in git, so they survive a container rebuild and a state reset,
|
||||
and the container needs no runtime egress to grafana.com.
|
||||
|
||||
Empty by default, which leaves grafana's own plugin handling
|
||||
untouched. Setting it takes over the plugin directory entirely —
|
||||
anything installed by other means stops being visible.
|
||||
⚠️ This list is the ONLY way a plugin reaches this Grafana.
|
||||
Setting it at all disables upstream's `preinstall` mechanism (see
|
||||
the `declarativePlugins` comment below), which is what normally
|
||||
fetches the Drilldown apps on first start — so a plugin left off
|
||||
this list is absent, not merely un-pinned.
|
||||
|
||||
Metrics Drilldown is on by default because this swarm's Grafana
|
||||
exists to read VictoriaMetrics, and the queryless metrics browser
|
||||
is the part of that people actually reach for. Its Logs / Traces /
|
||||
Profiles siblings are deliberately NOT here: they front Loki,
|
||||
Tempo and Pyroscope, none of which this swarm runs, so they would
|
||||
install a UI for a backend that does not answer.
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
|
@ -475,9 +485,18 @@ in
|
|||
# property this option exists for — it should not arrive only
|
||||
# once a plugin happens to be listed.
|
||||
#
|
||||
# Nothing is taken over by claiming the directory on a hive with no
|
||||
# plugins: manual installation is already impossible here (see the
|
||||
# option's description), so there is nothing in it to lose.
|
||||
# - 🩸 and the one this comment used to miss: it also sets
|
||||
# upstream's `plugins.preinstall_disabled` (nixpkgs'
|
||||
# grafana.nix defaults it to `declarativePlugins != null`,
|
||||
# saying preinstall "causes issues with declarativePlugins").
|
||||
# Preinstall is what fetches the Drilldown apps on first
|
||||
# start, so claiming this directory silently removes them.
|
||||
# That is why the option's default is not empty.
|
||||
#
|
||||
# The claim that used to sit here — "nothing is taken over on a
|
||||
# hive with no plugins, manual installation is impossible anyway"
|
||||
# — reasoned only about plugins a PERSON installs. Upstream
|
||||
# installs some itself, and those are the ones that went missing.
|
||||
declarativePlugins = cfg.plugins;
|
||||
|
||||
settings = {
|
||||
|
|
|
|||
Loading…
Reference in a new issue