檢視原始程式碼 設定 Ecto 資料儲存庫統計資料

此指南會說明如何設定 LiveDashboard,以顯示底層資料庫的統計資料。目前,這些統計資料只能顯示在於 Ecto.Adapters.PostgresEcto.Adapters.MyXQL 上執行的 Ecto 資料儲存庫。

安裝 Ecto 統計資料

PostgreSQL

要在您的儀表板中啟用 PostgreSQL 的「Ecto 統計資料」功能,您需要執行下列三個步驟

  1. 加入 ecto_psql_extras 相依性
  2. (選用) 設定儀表板
  3. (選用) 安裝自訂 PostgreSQL 擴充元件

加入 ecto_psql_extras 相依性

在您的 mix.exs 中,將以下內容加入 deps

  {:ecto_psql_extras, "~> 0.6"},

MySQL/MariaDB

要在您的儀表板中啟用 MySQL 或 MariaDB 的「Ecto 統計資料」功能,您需要執行下列三個步驟

  1. 加入 ecto_mysql_extras 相依性
  2. (選用) 設定儀表板
  3. (選用) MySQL/MariaDB 設定

加入 ecto_mysql_extras 相依性

在您的 mix.exs 中,將以下內容加入 deps

  {:ecto_mysql_extras, "~> 0.3"},

SQLite

要在您的儀表板中啟用 SQLite 的「Ecto 統計資料」功能,您需要執行下列三個步驟

  1. 加入 ecto_sqlite3_extras 相依性
  2. (選用) 設定儀表板

加入 ecto_sqlite3_extras 相依性

在您的 mix.exs 中,將以下內容加入 deps

  {:ecto_sqlite3_extras, "~> 1.2.0"},

設定儀表板

此步驟僅在您想要限制儀表板中列出的資料儲存庫時才需要,因為預設情況下將會列出所有的資料儲存庫

前往路由器中的 live_dashboard 呼叫,並列出您的資料儲存庫

live_dashboard "/dashboard", ecto_repos: [MyApp.Repo]

您想要列出連接到不同資料庫的所有儲存庫。例如,如果您同時有 MyApp.RepoMyApp.RepoAnother,但它們連接到同一個資料庫,則列出兩者沒有任何好處。請注意,只有在 Ecto.Adapters.PostgresEcto.Adapters.MyXQL 上執行的 Ecto 儲存庫目前受支援。

如果您想完全停用「Ecto 統計資料」選項,請設定 ecto_repos: []

某些查詢(例如 long_running_queries)可以透過傳遞用於 PostgreSQL 的額外 ecto_psql_extras_options 或用於 MySQL/MariaDB 的 ecto_mysql_extras_options 進行組態,它們是一個關鍵字,其中

  • 每個金鑰都是查詢的名稱
  • 每個值本身都是要當作 args 傳遞的關鍵字

例如,如果您想組態 long_running_queries 的臨界值

PostgreSQL 範例

live_dashboard "/dashboard",
  ecto_repos: [MyApp.Repo],
  ecto_psql_extras_options: [long_running_queries: [threshold: "200 milliseconds"]]

請參閱 ecto_psql_extras 文件,以取得可用的選項。

MySQL/MariaDB 範例

live_dashboard "/dashboard",
  ecto_repos: [MyApp.Repo],
  ecto_mysql_extras_options: [long_running_queries: [threshold: 200]]

請參閱 ecto_mysql_extras 文件,以取得可用的選項。

SQLite 範例

live_dashboard "/dashboard",
  ecto_repos: [MyApp.Repo],
  ecto_sqlite3_extras_options: []

請參閱 ecto_sqlite3_extras 文件,以取得可用的選項。

安裝自訂 PostgreSQL 延伸模組

儲存庫頁面啟用後,某些查詢(呼叫和異常值)需要安裝 pg_stat_statements 延伸模組。如果您想存取上述功能,您必須先安裝延伸模組,否則不會顯示上述功能。

MySQL/MariaDB 組態

存取儲存庫的使用者應該具有存取特定系統等級資料庫的權限。請參閱 ecto_mysql_extras 文件,以取得會使用哪些結構的詳細資料。

對於 MariaDB,performance_schema 沒有預設啟用。若要啟用此設定項,請將 performance_schema=ON 加入 my.cnf。這些變更在重新啟動後會生效。請參閱 ecto_mysql_extras 文件,以取得詳細資料。