From a43b09cdfed17151e4cd2dd34feeecb3f0e012f4 Mon Sep 17 00:00:00 2001
From: bryan <bryan.maass@gmail.com>
Date: Thu, 15 Aug 2024 13:16:18 -0600
Subject: [PATCH] skip some troubleshooting stats when hosted (#46749)

* skip some troubleshooting stats when hosted

* fix typo

* just skip "system-info" and "app db details"
---
 src/metabase/api/util.clj        |  6 ++++--
 src/metabase/troubleshooting.clj | 31 ++++++++++++++++---------------
 2 files changed, 20 insertions(+), 17 deletions(-)

diff --git a/src/metabase/api/util.clj b/src/metabase/api/util.clj
index f805797bf20..0efc909f7a9 100644
--- a/src/metabase/api/util.clj
+++ b/src/metabase/api/util.clj
@@ -13,6 +13,7 @@
    [metabase.api.common.validation :as validation]
    [metabase.config :as config]
    [metabase.logger :as logger]
+   [metabase.public-settings.premium-features :as premium-features]
    [metabase.troubleshooting :as troubleshooting]
    [metabase.util.log :as log]
    [metabase.util.malli :as mu]
@@ -79,8 +80,9 @@
   "Returns version and system information relevant to filing a bug report against Metabase."
   []
   (validation/check-has-application-permission :monitoring)
-  {:system-info   (troubleshooting/system-info)
-   :metabase-info (troubleshooting/metabase-info)})
+  (cond-> {:metabase-info (troubleshooting/metabase-info)}
+    (not (premium-features/is-hosted?))
+    (assoc :system-info (troubleshooting/system-info))))
 
 (api/defendpoint GET "/diagnostic_info/connection_pool_info"
   "Returns database connection pool info for the current Metabase instance."
diff --git a/src/metabase/troubleshooting.clj b/src/metabase/troubleshooting.clj
index 6cb5db1ec02..c9d17fc9e14 100644
--- a/src/metabase/troubleshooting.clj
+++ b/src/metabase/troubleshooting.clj
@@ -30,21 +30,22 @@
   "Make it easy for the user to tell us what they're using"
   []
   (merge
-   {:databases                    (->> (t2/select :model/Database) (map :engine) distinct)
-    :hosting-env                  (stats/environment-type)
-    :application-database         (mdb/db-type)
-    :application-database-details (t2/with-connection [^java.sql.Connection conn]
-                                    (let [metadata (.getMetaData conn)]
-                                      {:database    {:name    (.getDatabaseProductName metadata)
-                                                     :version (.getDatabaseProductVersion metadata)}
-                                       :jdbc-driver {:name    (.getDriverName metadata)
-                                                     :version (.getDriverVersion metadata)}}))
-    :run-mode                     (config/config-kw :mb-run-mode)
+   {:databases  (->> (t2/select :model/Database) (map :engine) distinct)
+    :run-mode   (config/config-kw :mb-run-mode)
     :plan-alias (or (some-> (premium-features/premium-embedding-token) premium-features/fetch-token-status :plan-alias) "")
-    :version                      config/mb-version-info
-    :settings                     {:report-timezone (driver/report-timezone)}}
+    :version    config/mb-version-info
+    :settings   {:report-timezone (driver/report-timezone)}
+    :hosting-env                  (stats/environment-type)
+    :application-database         (mdb/db-type)}
+   (when-not (premium-features/is-hosted?)
+     {:application-database-details (t2/with-connection [^java.sql.Connection conn]
+                                      (let [metadata (.getMetaData conn)]
+                                        {:database    {:name    (.getDatabaseProductName metadata)
+                                                       :version (.getDatabaseProductVersion metadata)}
+                                         :jdbc-driver {:name    (.getDriverName metadata)
+                                                       :version (.getDriverVersion metadata)}}))})
    (when (premium-features/is-airgapped?)
-     {:airgap-token :enabled
-      :max-users (premium-features/max-users-allowed)
+     {:airgap-token       :enabled
+      :max-users          (premium-features/max-users-allowed)
       :current-user-count (premium-features/cached-active-users-count)
-      :valid-thru (some-> (premium-features/premium-embedding-token) premium-features/fetch-token-status :valid-thru)})))
+      :valid-thru         (some-> (premium-features/premium-embedding-token) premium-features/fetch-token-status :valid-thru)})))
-- 
GitLab