Grafana Plugins clean-up question

Grafana: Version 13.2.1 (commit: 56cd3e9288d8255fecebe5d05b48d191f50674b5, branch: release-13.2.1#patched)

OS: Debian 13 Trixie

I am wondering if I should modify my configuration and clean up old duplicate plugins.

Currently plugins in use are defined by PLUGINS_DIR=/var/lib/grafana/plugins in
/etc/default/grafana-server.

Checking grafana-server status shows many duplicate plugins skipped on start-up.

pi@raspberry05:/usr/share/grafana/public/emails $ sudo systemctl status grafana-server.service
● grafana-server.service - Grafana instance
     Loaded: loaded (/usr/lib/systemd/system/grafana-server.service; enabled; preset: enabled)
     Active: active (running) since Thu 2026-09-03 10:38:08 EDT; 11s ago
 Invocation: 6c5338d732b547aeb4c5ca16c8121127
       Docs: http://docs.grafana.org
   Main PID: 197418 (grafana)
      Tasks: 125 (limit: 9626)
        CPU: 3.988s
     CGroup: /system.slice/grafana-server.service
             ├─197418 /usr/share/grafana/bin/grafana server --config=/etc/grafana/grafana.ini --pidfile=/run/grafana/grafana-server.pid --packaging=deb cfg:default.paths.logs=/var/log/grafana cfg:default.path>
             ├─197428 /var/lib/grafana/plugins/elasticsearch/gpx_grafana_elasticsearch_datasource_linux_arm64
             ├─197437 /var/lib/grafana/plugins/grafana-postgresql-datasource/gpx_grafana_postgresql_datasource_linux_arm64
             ├─197446 /var/lib/grafana/plugins/grafana-pyroscope-datasource/gpx_grafana-pyroscope-datasource_linux_arm64
             ├─197455 /var/lib/grafana/plugins/influxdb/gpx_grafana_influxdb_datasource_linux_arm64
             ├─197464 /var/lib/grafana/plugins/jaeger/gpx_grafana-jaeger-datasource_linux_arm64
             ├─197473 /var/lib/grafana/plugins/loki/gpx_grafana-loki-datasource_linux_arm64
             ├─197482 /var/lib/grafana/plugins/mssql/gpx_grafana-mssql-datasource_linux_arm64
             ├─197491 /var/lib/grafana/plugins/mysql/gpx_grafana-mysql-datasource_linux_arm64
             ├─197500 /var/lib/grafana/plugins/opentsdb/gpx_grafana-opentsdb-datasource_linux_arm64
             ├─197509 /var/lib/grafana/plugins/prometheus/gpx_grafana-prometheus-datasource_linux_arm64
             ├─197517 /var/lib/grafana/plugins/stackdriver/gpx_grafana_cloudmonitoring_datasource_linux_arm64
             ├─197527 /var/lib/grafana/plugins/tempo/gpx_grafana-tempo-datasource_linux_arm64
             └─197535 /var/lib/grafana/plugins/zipkin/gpx_grafana-zipkin-datasource_linux_arm64

Sep 03 10:38:10 raspberry05 grafana[197418]: logger=plugins.dedupe t=2026-09-03T10:38:10.590386019-04:00 level=warn msg="Skipping loading of plugin as it's a duplicate" pluginId=loki
Sep 03 10:38:10 raspberry05 grafana[197418]: logger=plugins.dedupe t=2026-09-03T10:38:10.591545374-04:00 level=warn msg="Skipping loading of plugin as it's a duplicate" pluginId=mssql
Sep 03 10:38:10 raspberry05 grafana[197418]: logger=plugins.dedupe t=2026-09-03T10:38:10.591853764-04:00 level=warn msg="Skipping loading of plugin as it's a duplicate" pluginId=mysql
Sep 03 10:38:10 raspberry05 grafana[197418]: logger=plugins.dedupe t=2026-09-03T10:38:10.592096339-04:00 level=warn msg="Skipping loading of plugin as it's a duplicate" pluginId=opentsdb
Sep 03 10:38:10 raspberry05 grafana[197418]: logger=plugins.dedupe t=2026-09-03T10:38:10.59379464-04:00 level=warn msg="Skipping loading of plugin as it's a duplicate" pluginId=prometheus
Sep 03 10:38:10 raspberry05 grafana[197418]: logger=plugins.dedupe t=2026-09-03T10:38:10.59426529-04:00 level=warn msg="Skipping loading of plugin as it's a duplicate" pluginId=stackdriver
Sep 03 10:38:10 raspberry05 grafana[197418]: logger=plugins.dedupe t=2026-09-03T10:38:10.596426-04:00 level=warn msg="Skipping loading of plugin as it's a duplicate" pluginId=tempo
Sep 03 10:38:10 raspberry05 grafana[197418]: logger=plugins.dedupe t=2026-09-03T10:38:10.596766427-04:00 level=warn msg="Skipping loading of plugin as it's a duplicate" pluginId=zipkin
Sep 03 10:38:11 raspberry05 grafana[197418]: t=2026-09-03T10:38:11.369391523-04:00 level=warn caller=logger.go:224 time=2026-09-03T10:38:11.369374412-04:00 msg="skipped registering status sub-resource that do>
Sep 03 10:38:11 raspberry05 grafana[197418]: t=2026-09-03T10:38:11.372741978-04:00 level=warn caller=logger.go:224 time=2026-09-03T10:38:11.372714663-04:00 msg="skipped registering status sub-resource that do>

Looking at the filesystem I am wondering if I should change PLUGINS_DIR setting to
/var/lib/grafana/plugins-bundled/ where those files all have a newer timestamp than
/var/lib/grafana/plugins. Possibly I could then remove the older plugins.
OR
Just leave PLUGINS_DIR setting as is and remove duplicates from /var/lib/grafana/plugins.

pi@raspberry05:~ $ sudo ls -ltr /var/lib/grafana/plugins
total 84
drwxr-x--- 3 grafana grafana  4096 Jul 16 10:39 grafana-advisor-app
drwxr-x--- 4 grafana grafana  4096 Aug 16 06:47 zipkin
drwxr-x--- 3 grafana grafana  4096 Aug 20 07:43 jaeger
drwxr-x--- 3 grafana grafana  4096 Aug 20 07:43 loki
drwxr-x--- 3 grafana grafana  4096 Aug 20 07:43 grafana-pyroscope-datasource
drwxr-x--- 3 grafana grafana  4096 Aug 20 07:43 prometheus
drwxr-x--- 3 grafana grafana  4096 Aug 20 07:43 opentsdb
drwxr-x--- 4 grafana grafana  4096 Aug 20 07:43 stackdriver
drwxr-x--- 4 grafana grafana  4096 Aug 20 07:43 mssql
drwxr-x--- 4 grafana grafana 12288 Aug 20 07:43 tempo
drwxr-x--- 3 grafana grafana  4096 Aug 20 07:43 influxdb
drwxr-x--- 3 grafana grafana  4096 Aug 20 07:43 grafana-postgresql-datasource
drwxr-x--- 4 grafana grafana  4096 Aug 28 06:55 grafana-clock-panel
drwxr-x--- 6 grafana grafana  4096 Aug 28 06:55 grafana-pyroscope-app
drwxr-x--- 6 grafana grafana  4096 Aug 28 06:55 grafana-exploretraces-app
drwxr-x--- 4 grafana grafana  4096 Aug 28 06:55 grafana-metricsdrilldown-app
drwxr-x--- 3 grafana grafana  4096 Aug 28 06:55 mysql
drwxr-x--- 4 grafana grafana  4096 Aug 28 06:55 grafana-lokiexplore-app
drwxr-x--- 3 grafana grafana  4096 Aug 28 06:55 elasticsearch

pi@raspberry05:~ $ sudo ls -ltr /var/lib/grafana/plugins-bundled/
total 60
drwxrwxr-x 3 grafana grafana  4096 Sep  3 10:27 influxdb
drwxrwxr-x 3 grafana grafana  4096 Sep  3 10:27 loki
drwxrwxr-x 3 grafana grafana  4096 Sep  3 10:27 opentsdb
drwxrwxr-x 4 grafana grafana 12288 Sep  3 10:27 tempo
drwxrwxr-x 3 grafana grafana  4096 Sep  3 10:27 elasticsearch
drwxrwxr-x 3 grafana grafana  4096 Sep  3 10:27 mysql
drwxrwxr-x 4 grafana grafana  4096 Sep  3 10:27 stackdriver
drwxrwxr-x 3 grafana grafana  4096 Sep  3 10:27 prometheus
drwxrwxr-x 3 grafana grafana  4096 Sep  3 10:27 jaeger
drwxrwxr-x 3 grafana grafana  4096 Sep  3 10:27 grafana-postgresql-datasource
drwxrwxr-x 4 grafana grafana  4096 Sep  3 10:27 zipkin
drwxrwxr-x 4 grafana grafana  4096 Sep  3 10:27 mssql
drwxrwxr-x 3 grafana grafana  4096 Sep  3 10:27 grafana-pyroscope-datasource

This leaves what to do with the differences.

pi@raspberry05:~ $ diff plugins.txt plugins-bundled.txt
2,6d1
< grafana-advisor-app
< grafana-clock-panel
< grafana-exploretraces-app
< grafana-lokiexplore-app
< grafana-metricsdrilldown-app
8d2
< grafana-pyroscope-app

I opted to forge ahead an clean-up the duplicate plugins.

Created a backup directory to save plugins I removed outside of Grafana path.

Used diff to list what plugins existed in both directories.
/var/lib/garfana/plugins and /var/lib/grafana/plugins-bundled.

pi@raspberry05:~ $ sudo diff -q /var/lib/grafana/plugins /var/lib/grafana/plugins-bundled
Common subdirectories: /var/lib/grafana/plugins/elasticsearch and /var/lib/grafana/plugins-bundled/elasticsearch
Only in /var/lib/grafana/plugins: grafana-advisor-app
Only in /var/lib/grafana/plugins: grafana-clock-panel
Only in /var/lib/grafana/plugins: grafana-exploretraces-app
Only in /var/lib/grafana/plugins: grafana-lokiexplore-app
Only in /var/lib/grafana/plugins: grafana-metricsdrilldown-app
Common subdirectories: /var/lib/grafana/plugins/grafana-postgresql-datasource and /var/lib/grafana/plugins-bundled/grafana-postgresql-datasource
Only in /var/lib/grafana/plugins: grafana-pyroscope-app
Common subdirectories: /var/lib/grafana/plugins/grafana-pyroscope-datasource and /var/lib/grafana/plugins-bundled/grafana-pyroscope-datasource
Common subdirectories: /var/lib/grafana/plugins/influxdb and /var/lib/grafana/plugins-bundled/influxdb
Common subdirectories: /var/lib/grafana/plugins/jaeger and /var/lib/grafana/plugins-bundled/jaeger
Common subdirectories: /var/lib/grafana/plugins/loki and /var/lib/grafana/plugins-bundled/loki
Common subdirectories: /var/lib/grafana/plugins/mssql and /var/lib/grafana/plugins-bundled/mssql
Common subdirectories: /var/lib/grafana/plugins/mysql and /var/lib/grafana/plugins-bundled/mysql
Common subdirectories: /var/lib/grafana/plugins/opentsdb and /var/lib/grafana/plugins-bundled/opentsdb
Common subdirectories: /var/lib/grafana/plugins/prometheus and /var/lib/grafana/plugins-bundled/prometheus
Common subdirectories: /var/lib/grafana/plugins/stackdriver and /var/lib/grafana/plugins-bundled/stackdriver
Common subdirectories: /var/lib/grafana/plugins/tempo and /var/lib/grafana/plugins-bundled/tempo
Common subdirectories: /var/lib/grafana/plugins/zipkin and /var/lib/grafana/plugins-bundled/zipkin

Moved duplicate plugins from /var/lib/grafana/plugins to the back-up directory.
restart grafana-server.service
No more duplicate plugin messages on restart.

Current plugin locations.

pi@raspberry05:~ $ sudo diff -q /var/lib/grafana/plugins /var/lib/grafana/plugins-bundled | sort
Only in /var/lib/grafana/plugins-bundled: elasticsearch
Only in /var/lib/grafana/plugins-bundled: grafana-postgresql-datasource
Only in /var/lib/grafana/plugins-bundled: grafana-pyroscope-datasource
Only in /var/lib/grafana/plugins-bundled: influxdb
Only in /var/lib/grafana/plugins-bundled: jaeger
Only in /var/lib/grafana/plugins-bundled: loki
Only in /var/lib/grafana/plugins-bundled: mssql
Only in /var/lib/grafana/plugins-bundled: mysql
Only in /var/lib/grafana/plugins-bundled: opentsdb
Only in /var/lib/grafana/plugins-bundled: prometheus
Only in /var/lib/grafana/plugins-bundled: stackdriver
Only in /var/lib/grafana/plugins-bundled: tempo
Only in /var/lib/grafana/plugins-bundled: zipkin
Only in /var/lib/grafana/plugins: grafana-advisor-app
Only in /var/lib/grafana/plugins: grafana-clock-panel
Only in /var/lib/grafana/plugins: grafana-exploretraces-app
Only in /var/lib/grafana/plugins: grafana-lokiexplore-app
Only in /var/lib/grafana/plugins: grafana-metricsdrilldown-app
Only in /var/lib/grafana/plugins: grafana-pyroscope-app

A quick poke around where I have dashboards using the plugins I removed all seem to
be working fine.

Don’t change PLUGINS_DIR.
The dedupe warnings happen because Grafana now ships core datasources (Loki, Prometheus, MySQL, etc.) pre installed in plugins-bundled/.
If those same plugins also exist in your plugins/ dir (from an older setup), Grafana finds two copies and skips one with a warning,harmless but noisy.

→ Compare the two dirs: sudo diff -q /var/lib/grafana/plugins /var/lib/grafana/plugins-bundled

→ Move any plugin listed as a “common subdirectory” (exists in both) out of /var/lib/grafana/plugins to a backup location.

→ Leave anything only in plugins/ alone (e.g. grafana-advisor-app, grafana-clock-panel, grafana-exploretraces-app, grafana-lokiexplore-app, grafana-metricsdrilldown-app, grafana-pyroscope-app) — these aren’t bundled, so they still need to live there.

→ Restart grafana-server.

@infofcc3
Thanks for the reinforcement that what I had done was correct.

Well cleaning up duplicate plugins was a waste of time. Upon upgrade to Grafana 13.2.2 the dupes back.

Sep 16 11:38:25 raspberry05 grafana[8347]: logger=plugins.dedupe t=2026-09-16T11:38:25.738599905-04:00 level=warn msg="Skipping loading of plugin as it's a duplicate" pluginId=loki
Sep 16 11:38:25 raspberry05 grafana[8347]: logger=plugins.dedupe t=2026-09-16T11:38:25.739852484-04:00 level=warn msg="Skipping loading of plugin as it's a duplicate" pluginId=mssql
Sep 16 11:38:25 raspberry05 grafana[8347]: logger=plugins.dedupe t=2026-09-16T11:38:25.740152374-04:00 level=warn msg="Skipping loading of plugin as it's a duplicate" pluginId=mysql
Sep 16 11:38:25 raspberry05 grafana[8347]: logger=plugins.dedupe t=2026-09-16T11:38:25.740370393-04:00 level=warn msg="Skipping loading of plugin as it's a duplicate" pluginId=opentsdb
Sep 16 11:38:25 raspberry05 grafana[8347]: logger=plugins.dedupe t=2026-09-16T11:38:25.742268474-04:00 level=warn msg="Skipping loading of plugin as it's a duplicate" pluginId=prometheus
Sep 16 11:38:25 raspberry05 grafana[8347]: logger=plugins.dedupe t=2026-09-16T11:38:25.742842014-04:00 level=warn msg="Skipping loading of plugin as it's a duplicate" pluginId=stackdriver
Sep 16 11:38:25 raspberry05 grafana[8347]: logger=plugins.dedupe t=2026-09-16T11:38:25.745128615-04:00 level=warn msg="Skipping loading of plugin as it's a duplicate" pluginId=tempo
Sep 16 11:38:25 raspberry05 grafana[8347]: logger=plugins.dedupe t=2026-09-16T11:38:25.745577302-04:00 level=warn msg="Skipping loading of plugin as it's a duplicate" pluginId=zipkin
pi@raspberry05:~ $ sudo diff -q /var/lib/grafana/plugins /var/lib/grafana/plugins-bundled | sort
Common subdirectories: /var/lib/grafana/plugins/elasticsearch and /var/lib/grafana/plugins-bundled/elasticsearch
Common subdirectories: /var/lib/grafana/plugins/grafana-postgresql-datasource and /var/lib/grafana/plugins-bundled/grafana-postgresql-datasource
Common subdirectories: /var/lib/grafana/plugins/grafana-pyroscope-datasource and /var/lib/grafana/plugins-bundled/grafana-pyroscope-datasource
Common subdirectories: /var/lib/grafana/plugins/influxdb and /var/lib/grafana/plugins-bundled/influxdb
Common subdirectories: /var/lib/grafana/plugins/jaeger and /var/lib/grafana/plugins-bundled/jaeger
Common subdirectories: /var/lib/grafana/plugins/loki and /var/lib/grafana/plugins-bundled/loki
Common subdirectories: /var/lib/grafana/plugins/mssql and /var/lib/grafana/plugins-bundled/mssql
Common subdirectories: /var/lib/grafana/plugins/mysql and /var/lib/grafana/plugins-bundled/mysql
Common subdirectories: /var/lib/grafana/plugins/opentsdb and /var/lib/grafana/plugins-bundled/opentsdb
Common subdirectories: /var/lib/grafana/plugins/prometheus and /var/lib/grafana/plugins-bundled/prometheus
Common subdirectories: /var/lib/grafana/plugins/stackdriver and /var/lib/grafana/plugins-bundled/stackdriver
Common subdirectories: /var/lib/grafana/plugins/tempo and /var/lib/grafana/plugins-bundled/tempo
Common subdirectories: /var/lib/grafana/plugins/zipkin and /var/lib/grafana/plugins-bundled/zipkin
Only in /var/lib/grafana/plugins: grafana-advisor-app
Only in /var/lib/grafana/plugins: grafana-clock-panel
Only in /var/lib/grafana/plugins: grafana-exploretraces-app
Only in /var/lib/grafana/plugins: grafana-lokiexplore-app
Only in /var/lib/grafana/plugins: grafana-metricsdrilldown-app
Only in /var/lib/grafana/plugins: grafana-pyroscope-app

Lesson learned.
:rofl: