mywatch alternatives and similar packages
Based on the "Database" category.
Alternatively, view mywatch alternatives based on common mentions on social networks and blogs.
-
erd
Translates a plain text description of a relational database schema to a graphical entity-relationship diagram. -
persistent-redis
Persistence interface for Haskell allowing multiple storage methods. -
acid-state
Add ACID guarantees to any serializable Haskell data structure -
postgresql-simple
Mid-level client library for accessing PostgreSQL from Haskell -
HDBC-session
This repository includes a joined query generator based on typefull relational algebra, and mapping tools between SQL values list and Haskell record type. -
esqueleto
Bare bones, type-safe EDSL for SQL queries on persistent backends. -
groundhog
This library maps datatypes to a relational model, in a way similar to what ORM libraries do in OOP. See the tutorial https://www.schoolofhaskell.com/user/lykahb/groundhog for introduction -
hw-kafka-client
Kafka client for Haskell, including auto-rebalancing consumers -
mysql-simple
A mid-level client library for the MySQL database, intended to be fast and easy to use. -
postgresql-simple-migration
PostgreSQL Schema Migrations for Haskell -
direct-sqlite
Low-level binding to SQLite3. Includes UTF8 and BLOB support. -
vcache
large, persistent, memcached values and structure sharing for Haskell -
vcache-trie
large, persistent, memcached values and structure sharing for Haskell -
dbmigrations
A library for the creation, management, and installation of schema updates for relational databases. -
postgresql-tx
[Moved to: https://github.com/Simspace/postgresql-tx] -
postgresql-typed
Haskell PostgreSQL library with compile-time type inference -
ampersand
Build database applications faster than anyone else, and keep your data pollution free as a bonus. -
postgresql-orm
An Haskell ORM (Object Relational Mapping) and migrations DSL for PostgreSQL. -
persistent-database-url
Parse DATABASE_URL into configuration types for Persistent
Clean code begins in your IDE with SonarLint
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of mywatch or a related project?
Popular Comparisons
README
My Watch
Web application for viewing and killing MySQL queries on multiple servers. Designed to work behind Sproxy.
Requirements
MyWatch is written in Haskell with GHC. All required Haskell libraries are listed in [mywatch.cabal](mywatch.cabal). Use cabal-install to fetch and build all pre-requisites automatically.
Installation
$ git clone https://github.com/zalora/mywatch.git
$ cd mywatch
$ cabal install
Usage
Type mywatch --help
to see usage summary:
Usage:
mywatch [options] MYCNF
Options:
-d, --datadir=DIR Data directory including static files [default: {cabal data dir}]
-s, --socket=SOCK Listen on this UNIX-socket [default: /tmp/mywatch.sock]
-p, --port=PORT Instead of UNIX-socket, listen on this TCP port (localhost)
-h, --help Show this message
Configuration
The MYCNF
argument denotes a MySQL client config file. Each section in this
file describes a MySQL server where you can view processes. As usually, the
"client" section applies internally to all other sections, but is ignored by
MyWatch. Remember to make this file secret if it includes passwords, or use the
!include
directive. However, MyWatch does not parse included files for
more sections.
[foo]
host = example.com
user = user1
...
[bar]
host = example.net
user = user2
...
!include /run/keys/my.secret.cnf
Sproxy Configuration
- To access the service allow
GET
for/
,/static/%
and/serverlist.json
. - To see processes on a particular MySQL server allow
GET
andHEAD
for/server/:server/processlist.json
. - To kill processes allow
DELETE
for/server/:server/process/%
Database Configuration
MyWatch needs the PROCESS privilege.
To be able to kill queries a procedure named mywatch_kill
must exist
in the mysql
database. MyWatch invokes CALL mysql.mywatch_kill(id)
for killing queries. It's up to you how to implement this routine, for a
safe example see [sql/mywatch_kill.sql](sql/mywatch_kill.sql). Of cource,
MyWatch should be granted to execute this procedure. If this procedure
does not exist, MyWatch will not show this possibility in user interface,
API will work, but result in Internal Server Error (HTTP 500). There is no
filtering at application level, though the "kill" button may not be shown
in some circumstances.
Screenshots
[MyWatch1](./screenshots/mywatch-1.png) [MyWatch2](./screenshots/mywatch-2.png)