[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-81880":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":9,"language":10,"languages":9,"totalLinesOfCode":9,"stars":11,"forks":12,"watchers":13,"openIssues":14,"contributorsCount":14,"subscribersCount":14,"size":14,"stars1d":12,"stars7d":15,"stars30d":15,"stars90d":14,"forks30d":14,"starsTrendScore":16,"compositeScore":17,"rankGlobal":9,"rankLanguage":9,"license":18,"archived":19,"fork":19,"defaultBranch":20,"hasWiki":21,"hasPages":19,"topics":22,"createdAt":9,"pushedAt":9,"updatedAt":23,"readmeContent":24,"aiSummary":25,"trendingCount":14,"starSnapshotCount":14,"syncStatus":15,"lastSyncTime":26,"discoverSource":27},81880,"ellie","luizferreira-io\u002Fellie","luizferreira-io","PostgreSQL performance tuning tool",null,"Rust",23,1,21,0,2,3,0.9,"GNU General Public License v3.0",false,"main",true,[],"2026-06-12 02:04:20","# Ellie\n\n[![Build](https:\u002F\u002Fgithub.com\u002Fluizferreira-io\u002Fellie\u002Factions\u002Fworkflows\u002Fbuild.yml\u002Fbadge.svg?branch=main)](https:\u002F\u002Fgithub.com\u002Fluizferreira-io\u002Fellie\u002Factions\u002Fworkflows\u002Fbuild.yml)\n[![Test](https:\u002F\u002Fgithub.com\u002Fluizferreira-io\u002Fellie\u002Factions\u002Fworkflows\u002Ftest.yml\u002Fbadge.svg?branch=main)](https:\u002F\u002Fgithub.com\u002Fluizferreira-io\u002Fellie\u002Factions\u002Fworkflows\u002Ftest.yml)\n[![MSRV](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FMSRV-1.85-blue?logo=rust)](https:\u002F\u002Fdoc.rust-lang.org\u002Fcargo\u002Freference\u002Fmanifest.html#the-rust-version-field)\n[![Release](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fv\u002Frelease\u002Fluizferreira-io\u002Fellie)](https:\u002F\u002Fgithub.com\u002Fluizferreira-io\u002Fellie\u002Freleases)\n[![License](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Flicense\u002Fluizferreira-io\u002Fellie)](https:\u002F\u002Fgithub.com\u002Fluizferreira-io\u002Fellie\u002Fblob\u002Fmain\u002FLICENSE)\n\n\n\nA terminal-based PostgreSQL performance monitoring and tuning tool.\n\nEllie connects to a PostgreSQL server and provides a real-time interactive dashboard for visualizing server health, active sessions, configuration settings, and detailed performance analysis — all from your terminal.\n\nThe name \"Ellie\" comes from the female mammoth character in the Ice Age movies.\n\n---\n\n## Screenshots\n\n![Screenshot 01](doc\u002Fscreenshots\u002Fscreenshot-01.png)\n\n\n![Screenshot 02](doc\u002Fscreenshots\u002Fscreenshot-02.png)\n\n\n![Screenshot 05](doc\u002Fscreenshots\u002Fscreenshot-05.png)\n\n\n![Screenshot 09](doc\u002Fscreenshots\u002Fscreenshot-09.png)\n\n\n![Screenshot 11](doc\u002Fscreenshots\u002Fscreenshot-11.png)\n\nMore screenshots [here](https:\u002F\u002Fgithub.com\u002Fluizferreira-io\u002Fellie\u002Ftree\u002Fmain\u002Fdoc\u002Fscreenshots).\n\n---\n\n## Features\n\n- **Dashboard** — Real-time server metrics: cache hit ratio, transactions, rollbacks, locks, conflicts, active sessions, and shared buffers usage.\n- **Activity** — Live view of all active connections, running queries, wait events, and client details.\n- **Settings** — Browse all PostgreSQL configuration parameters with their current values, units, and descriptions.\n- **File Settings** — View settings as loaded from the server's configuration files.\n- **Tuning** — 18 structured performance analyses across five categories: disk allocation, table fragmentation, indexing, shared buffers, and query performance.\n- **About** — Application information and credits.\n- **UI** — Text user interface (TUI). It runs directly in the terminal. Browse tables, adjust column widths, reposition columns.\n\n---\n\n## Requirements\n\n- PostgreSQL 10 or later.\n- A database user with read access to system catalog views (`pg_stat_*`, `pg_class`, etc.)\n- For full tuning functionality, the following PostgreSQL extensions must be enabled:\n  - [`pg_buffercache`](https:\u002F\u002Fwww.postgresql.org\u002Fdocs\u002Fcurrent\u002Fpgbuffercache.html) — required for Shared Buffers analyses\n  - [`pg_stat_statements`](https:\u002F\u002Fwww.postgresql.org\u002Fdocs\u002Fcurrent\u002Fpgstatstatements.html) — required for Time-Consuming Queries analyses\n\nTo activate these extensions, follow the steps below:\n\n1. Run in the SQL console:\n```SQL\nALTER SYSTEM SET shared_preload_libraries = 'pg_stat_statements';\n```\n2. Restart the server instance.\n3. Run in the SQL console:\n```SQL\nCREATE EXTENSION IF NOT EXISTS pg_stat_statements;\nCREATE EXTENSION IF NOT EXISTS pg_buffercache;\n```\n4. Tests whether the views exists:\n```SQL\nSELECT * FROM pg_stat_statements;\nSELECT * FROM pg_buffercache;\n```\n---\n\n\n## Usage\n\n```\nellie [OPTIONS]\n```\n\n### Options\n\n| Option | Default | Description |\n|---|---|---|\n| `--url \u003Curl>` | — | Full PostgreSQL connection URL. Overrides all other parameters. |\n| `--host \u003Chost>` | `localhost` | Server hostname or IP address. |\n| `--port \u003Cport>` | `5432` | Server port. |\n| `--user \u003Cuser>` | `postgres` | Database user. |\n| `--password \u003Cpassword>` | `postgres` | User password. |\n| `--database \u003Cdatabase>` | `postgres` | Database name. |\n| `--help` | — | Show help. |\n\n### Examples\n\n```bash\n# Connect using individual parameters\nellie --host db.example.com --port 5432 --user admin --password secret --database mydb\n\n# Connect using a URL\nellie --url postgresql:\u002F\u002Fadmin:secret@db.example.com:5432\u002Fmydb\n```\n\n---\n\n## Installing\n\nJust unzip it and run it in the terminal.\n\nPre-compiled binaries for 64-bit Linux and Windows are available in [releases](https:\u002F\u002Fgithub.com\u002Fluizferreira-io\u002Fellie\u002Freleases).\n\n---\n\n## Building on Linux\n\nYou will need the Rust compiler. If you don't have it, follow these instructions: https:\u002F\u002Frust-lang.org\u002Ftools\u002Finstall\u002F\n\nInstall dev dependencies:\n\n```bash\nsudo apt install build-essential\n```\n\nClone the source code:\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fluizferreira-io\u002Fellie\ncd ellie\n```\n\nBuild it:\n\n```bash\ncargo build --release\n```\n\nThe binary will be located at `target\u002Frelease\u002Fellie`.\n\n---\n\nIf you want to build with musl ABI (for maximum compatibility and portability), install musl dev dependencies:\n\n```bash\nsudo apt-get install musl-tools musl-dev\n```\n\nAdd the target:\n```bash\nrustup target add x86_64-unknown-linux-musl\n```\n\nAnd build it:\n```bash\ncargo build --release --target x86_64-unknown-linux-musl\n```\n\nThe binary will be located at `target\u002Fx86_64-unknown-linux-musl\u002Frelease\u002Fellie`.\n\n---\n\n## Building on Windows\n\nYou will need the Rust compiler. If you don't have it, follow these instructions: https:\u002F\u002Frust-lang.org\u002Ftools\u002Finstall\u002F\n\nClone the source code:\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fluizferreira-io\u002Fellie\ncd ellie\n```\n\nBuild it:\n\n```bash\ncargo build --release\n```\n\nThe binary will be located at `target\\release\\ellie.exe`.\n\nThis is a **terminal application**. Even on Windows, open terminal first (PowerShell, etc.), and only then run it.\n\n---\n\n## Testing\n\nWith Rust installed, just run:\n```bash\ncargo test\n```\n\n---\n\n## Backlog\n\n### Features\n\n- **Connection profiles** — Save and switch between multiple named server connections without re-entering credentials each time.\n- **Configuration file** — Support a `~\u002F.config\u002Fellie\u002Fconfig.toml` for storing default connection parameters.\n- **Search and filter** — Add inline search (`\u002F`) to filter rows in the Settings, File Settings, and Activity tabs.\n- **Copy to clipboard** — Allow copying the selected row or cell value from any table.\n- **Export** — Export tuning analysis results to CSV or plain text.\n- **Threshold alerts** — Highlight metrics in the Dashboard when they exceed user-defined thresholds (e.g., cache hit ratio below 90%).\n- **Additional tuning analyses** — Expand the Tuning tab with analyses for replication lag, autovacuum status, and connection saturation.\n- **Activity** — Kill active session\u002Fquery.\n\n### Improvements\n\n- **Reconnect on disconnect** — Detect lost connections and attempt automatic reconnection instead of crashing.\n- **Configurable refresh interval** — Let the user adjust the data refresh rate from the Settings tab or via a CLI flag.\n- **Help overlay** — Add an in-app `?` keybinding that shows a reference of all shortcuts for the current tab.\n- **New tabs** - Database explorer, query executor\u002Fexplainer\u002Fanalyser, and troubleshooting.\n\n---\n\n## Sample Database\n\nThe database used for the screenshots and tests is **dvdrental**, available at:\n\nhttps:\u002F\u002Fneon.com\u002Fpostgresql\u002Fgetting-started\u002Fsample-database\n","Ellie 是一个基于终端的PostgreSQL性能监控和调优工具。它能够连接到PostgreSQL服务器，并提供实时交互式仪表板，用于可视化服务器健康状况、活跃会话、配置设置以及详细的性能分析。核心功能包括实时服务器指标展示、活动会话监视、PostgreSQL配置参数浏览、文件设置查看、18项结构化性能分析等，所有这些都通过文本用户界面直接在终端中运行。Ellie适用于需要对PostgreSQL数据库进行深入性能监控与优化的场景，尤其是对于那些希望直接从命令行环境中获得全面数据库状态概览的开发人员或DBA来说非常实用。","2026-06-11 04:07:03","CREATED_QUERY"]