Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mongodb-cowboys/monalize
Monaliza is a tool for scanning and analyzing MongoDB database for any performance issues, which lead to high CPU consumption.
https://github.com/mongodb-cowboys/monalize
database mongodb mongodb-database nosql nosql-database
Last synced: about 1 month ago
JSON representation
Monaliza is a tool for scanning and analyzing MongoDB database for any performance issues, which lead to high CPU consumption.
- Host: GitHub
- URL: https://github.com/mongodb-cowboys/monalize
- Owner: MongoDB-Cowboys
- License: gpl-3.0
- Created: 2020-10-12T07:48:31.000Z (about 4 years ago)
- Default Branch: master
- Last Pushed: 2024-06-04T10:08:55.000Z (5 months ago)
- Last Synced: 2024-09-23T01:31:51.281Z (about 2 months ago)
- Topics: database, mongodb, mongodb-database, nosql, nosql-database
- Language: Go
- Homepage:
- Size: 7.17 MB
- Stars: 28
- Watchers: 4
- Forks: 7
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
[![Stand With Ukraine](https://raw.githubusercontent.com/vshymanskyy/StandWithUkraine/main/banner2-direct.svg)](https://stand-with-ukraine.pp.ua)
# Monalize tool overview
Monaliza is a tool for scanning and analyzing MongoDB database for any performance issues, which lead to high CPU consumption.
The main task is a fast output of names of all databases and collections, indexes and slow queries stats.
## Compilation
`go build monalize.go`
## Usage
Compile the tool from src code or install via
```
MONALIZE=$( curl --silent "https://api.github.com/repos/MongoDB-Cowboys/Monalize/releases/latest" | grep '"tag_name":' | sed -E 's/.*"([^"]+)".*/\1/' ) \
;wget https://github.com/MongoDB-Cowboys/Monalize/releases/download/$MONALIZE/monalize
```
Don't forget to make it executable:
```
chmod +x monalize
```
Then you can run on any Unix like system via `./monalize`Available flags:
* `--db_name` (optional) If you need to scan only specific database. (default: nil)
* `--db_uri` (optional) Uri to connect to mongodb service. (default: "mongodb://localhost:27017")
* `--excel` (optional) To save an output of the script to excel file. (default: false)
* `--logpath` (optional) Specify a path to MongoDB service log file. If you use this together with the variable `container` then this path to the file will be applied to the container. Without the `container` variable, it will be applied to the local log file. (default "")
* `--container` (optional) Specify a name of Docker container. If you leave the `logpath` variable empty, logs will be read from the container. (default "")
* `--context_timeout` (optional) Set context timeout. (default 10)
* `--podman` (optional) For using the Podman executable file to check the log file in the container. (default: false)A help is available via `./monalize --help`.
Examples uri:
* `mongodb://User:[email protected]:port`
Full request example:
* `monalize --db_uri "mongodb://user:[email protected]:27017/?&authSource=admin"`
After successfull run of the `monalize` tool, all the output artifacts will be saved in working directory:
* `colout.txt` COLLSCAN logs.
* `result.csv` optional excel file.## Podman
For running `Monalize` when `MongoDB` is working in `Podman`, you should set the `DOCKER_HOST` variable with the path to the `podman.socket` file and add the additional flag `--podman=true` for using the `Podman` executable file to check the log file in the container. This flag is required only when you want to check a specific log file in the container.Example:
```
export DOCKER_HOST=unix:///Users/username/.local/share/containers/podman/machine/podman.sock
monalize --db_uri "mongodb://127.0.0.1:27017" --container mongo --db_name example --logpath "/tmp/log" --excel=true --podman=true
```
## LicenseGPL-3.0 License