查看源代码 配置 Ecto 存储库统计信息
本指南介绍如何配置 LiveDashboard 以显示来自底层数据库的统计信息。目前,这些统计信息只能显示在运行在 Ecto.Adapters.Postgres
或 Ecto.Adapters.MyXQL
上的 Ecto 存储库上。
安装 Ecto 统计信息
PostgreSQL
要为 PostgreSQL 启用仪表板中的“Ecto 统计信息”功能,您需要执行以下三个步骤
- 添加
ecto_psql_extras
依赖项 - (可选) 配置仪表板
- (可选) 安装自定义 PostgreSQL 扩展
添加 ecto_psql_extras
依赖项
在您的 mix.exs
中,将以下内容添加到您的 deps
中
{:ecto_psql_extras, "~> 0.6"},
MySQL/MariaDB
要为 MySQL 或 MariaDB 启用仪表板中的“Ecto 统计信息”功能,您需要执行以下三个步骤
- 添加
ecto_mysql_extras
依赖项 - (可选) 配置仪表板
- (可选) MySQL/MariaDB 配置
添加 ecto_mysql_extras
依赖项
在您的 mix.exs
中,将以下内容添加到您的 deps
中
{:ecto_mysql_extras, "~> 0.3"},
SQLite
要为 SQLite 启用仪表板中的“Ecto 统计信息”功能,您需要执行以下三个步骤
- 添加
ecto_sqlite3_extras
依赖项 - (可选) 配置仪表板
添加 ecto_sqlite3_extras
依赖项
在您的 mix.exs
中,将以下内容添加到您的 deps
中
{:ecto_sqlite3_extras, "~> 1.2.0"},
配置仪表板
此步骤 **仅在您要限制仪表板中列出的存储库时才需要**,因为默认情况下将列出所有 *repos*。
转到路由器中的 live_dashboard
调用并列出您的存储库
live_dashboard "/dashboard", ecto_repos: [MyApp.Repo]
您需要列出所有连接到不同数据库的存储库。例如,如果您同时拥有 MyApp.Repo
和 MyApp.RepoAnother
,但它们连接到同一个数据库,则列出两者没有任何意义。请记住,目前仅支持在 Ecto.Adapters.Postgres
或 Ecto.Adapters.MyXQL
上运行的 Ecto 存储库。
如果您想完全禁用“Ecto 统计信息”选项,请设置 ecto_repos: []
。
一些查询,例如 long_running_queries
,可以通过传递额外的 ecto_psql_extras_options
(对于 PostgreSQL)或 ecto_mysql_extras_options
(对于 MySQL/MariaDB)来配置,它是一个关键字,其中
- 每个键都是查询的名称
- 每个值本身都是一个关键字,将作为
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
默认情况下未启用。要启用它,请在 my.cnf
中添加 performance_schema=ON
。这些更改将在重新启动后生效。有关更多详细信息,请参阅 ecto_mysql_extras
文档。