Skip to content
This repository has been archived by the owner on Sep 11, 2024. It is now read-only.

Mock database activity and run scalable simulations of database load with as little code as necessary

License

Notifications You must be signed in to change notification settings

dynatrace-oss/db-load-generator

db-load-generator

db-load-generator is a Python framework and toolbox for generating artificial database loads with as little code as necessary. It uses Java and JDBC drivers to connect to the databases.

PyPI PyPI - Python Version Build Status Documentation Build Status GitHub

Getting Started

New to db-load-generator? Checkout our official Getting Started guide.

Requirements

  • Python 3.9 or above.
  • Java 8 or above.
  • JDBC driver for your database.

Features

  • Test connection to the database using dbload test
  • Execute a query using dbload execute
  • Configure db-load-generator via
    • command line arguments
    • environment variables
    • default config file dbload.json
    • custom path config file
  • Print current parsed configuration using dbload show settings
  • Use decorators from dbload library to create scenarios and queries
  • Write annotated SQL queries in the .sql file and feed them using dbload --sql myfile.sql
  • Show current parsed queries using dbload show queries
  • Run any defined query using dbload query
  • Write full-fledged complex simulation scenarios using dbload library
  • Show current parsed scenarios using dbload show scenarios
  • Run any defined scenarios using dbload scenario
  • Use predefined simulations for popular databases using dbload --predefined <db-name> ACTION
  • Run db-load-generator as a background worker using dramatiq
    • ensure there is a RabbitMQ running as a message broker
    • runs scenarios as service workers dbload worker
    • enqueue executions into broker using dbload send <scenario name or actor name>
    • start beats/scheduler process using dbload scheduler

Development & Contributions

Contributions are welcome! If you are interested in contributing to the project please read our Code of Conduct.

License

Apache Version 2.0