Menu

Tree [061518] master /
 History

HTTPS access


File Date Author Commit
 codequality 2018-04-09 Alexander Patrikalakis Alexander Patrikalakis [7a8a44] Replaces tabs with spaces (#130)
 gradle 2018-07-12 Vinay Chella Vinay Chella [9fee23] Updating gradle and nebula oss to latest versions
 img 2017-10-17 cbedford cbedford [adb019] update tutorial overview diagram
 ndbench-api 2018-09-07 Vinay Chella Vinay Chella [5c290e] Separated AWS specific implementations, Default...
 ndbench-aws 2018-04-07 Alexander Patrikalakis Alexander Patrikalakis [d94169] Use lambda and functional notation, remove unus...
 ndbench-cass-plugins 2020-01-09 Sumanth Pasupuleti Sumanth Pasupuleti [a21b3f] Adding column name validation in tandem with ch...
 ndbench-cli 2019-09-06 Sumanth Pasupuleti Sumanth Pasupuleti [8dc826] Commenting out dyno-plugin due to build issues
 ndbench-cockroachdb-plugins 2019-01-28 Sumanth Pasupuleti Sumanth Pasupuleti [094fb5] Closing connection to return connection back to...
 ndbench-core 2019-09-06 Sumanth Pasupuleti Sumanth Pasupuleti [194179] Adding exception handling to log string value w...
 ndbench-dax-plugins 2018-09-08 Vinay Chella Vinay Chella [e8967c] Remove the aws module dependency for config ini...
 ndbench-dynamodb-plugins 2019-01-15 sumanthpasupuleti sumanthpasupuleti [c7214f] Bubbling up exceptions so they count towards wr...
 ndbench-dyno-plugins 2019-09-19 Fahri Nurul Hidayat Fahri Nurul Hidayat [0c0e8b] Creating Host instance using HostBuilder
 ndbench-es-plugins 2019-07-08 sumanthpasupuleti sumanthpasupuleti [5e5380] Adding checksum validation capability
 ndbench-geode-plugins 2018-04-07 Alexander Patrikalakis Alexander Patrikalakis [d94169] Use lambda and functional notation, remove unus...
 ndbench-janusgraph-plugins 2018-07-10 Alexander Patrikalakis Alexander Patrikalakis [edf85c] Fix all PMD warnings throughout all modules (#186)
 ndbench-sample-plugins 2018-04-13 Alexander Patrikalakis Alexander Patrikalakis [5fd7fd] Rename all loggers to logger and make sure priv...
 ndbench-web 2019-09-19 Fahri Nurul Hidayat Fahri Nurul Hidayat [c0e498] Enable ndbench-dyno-plugins
 .gitignore 2018-10-14 sumanthpasupuleti sumanthpasupuleti [b7190e] Adding cockroach db plugin
 .travis.yml 2019-08-23 aagrawal aagrawal [6b511a] Migrate to openjdk8 as oraclejdk8 is deprecated...
 CONTRIBUTING.md 2016-11-17 Ioannis Papapanagiotou Ioannis Papapanagiotou [535314] Update CONTRIBUTING.md
 CONTRIBUTORS.md 2018-04-09 ipapapa ipapapa [6e96c6] contributors
 LICENSE 2016-10-20 Ioannis Papapanagiotou Ioannis Papapanagiotou [80b2c1] adding Apache License
 OSSMETADATA 2016-09-01 vchella vchella [484832] Initial commit for OSS
 README.md 2020-04-04 androidappsss androidappsss [061518] Update README.md
 build.gradle 2019-01-09 Vinay Chella Vinay Chella [78c49a] Delete unused gradle plugin from build file
 buildViaTravis.sh 2017-03-31 Ioannis Papapanagiotou Ioannis Papapanagiotou [935c48] Gradle updates
 dynomite.yml 2016-09-02 diegopacheco diegopacheco [35d146] make it work with local dynomite - change gitig...
 gradlew 2018-02-13 Ioannis Papapanagiotou Ioannis Papapanagiotou [b148b5] DynamoDB plugin (#76)
 gradlew.bat 2017-09-01 Ioannis Papapanagiotou Ioannis Papapanagiotou [84ac95] updates for gradle4
 manifest.yml 2017-08-12 Pulkit Chandra Pulkit Chandra [c6e8af] Add support for Geode and Cloud Foundry (#32)
 ndbench-proxy.js 2016-10-18 diegopacheco diegopacheco [dba1e4] PR changes
 settings.gradle 2019-09-19 Fahri Nurul Hidayat Fahri Nurul Hidayat [c0e498] Enable ndbench-dyno-plugins

Read Me

NdBench

Build Status
Dev chat at https://gitter.im/Netflix/ndbench
Apache V2 License

Netflix Data Benchmark (NDBench) is a pluggable cloud-enabled benchmarking tool that can be used across any data store system. NDBench provides plugin support for several data stores and can be extended to other client APIs.

NDBench logo

Client APIs

  • Apache Cassandra (Thrift and CQL)
  • Redis
  • Elasticsearch
  • Elassandra
  • Amazon DynamoDB
  • Apache Geode
  • JanusGraph
  • Netflix Dynomite (Redis API)

Features

  • Dynamically change the benchmark configurations while the test is running, hence perform tests along with our production microservices.
  • Be able to integrate with platform cloud services such as dynamic configurations, discovery, metrics, etc.
  • Run for an infinite duration in order to introduce failure scenarios and test long running maintenances such as database repairs.
  • Provide pluggable patterns and loads.
  • Support different client APIs.
  • Deploy, manage and monitor multiple instances from a single entry point.
  • Support multiple cloud platform due to integration with Cloud Foundry

Details about the features can be found in the Wiki

Workflow

The stable version of NdBench is the master branch.

For questions or contributions, please consider reading CONTRIBUTING.md.

Build

NdBench comes with a Gradle wrapper

./gradlew build

The gradlew script will pull down all necessary gradle components/infrastructure automatically, then run the build.

NdBench provides several default implementations ( NdBenchConfiguration, LocalClusterDiscovery etc). You can use these or choose to create your own. NdBench currently works on AWS or your local environment. We are open to contributions to support other platforms as well.

Netflix by APKFolks

APKFolks Netflix

How to

The first step before building ndbench is to configure the interfaces related to your environment in the InjectedWebListener. Checkout the Wiki for further explanation on what interfaces to bind based on your environment.

  1. Build ndbench
  2. Set up Auto-Scale Group (ASG) and spin up instances
  3. Deploy ndbench-web.war in your container

Deploy to Cloud Platforms

DISCOVERY_ENV environment variable is responsible to bind the proper Cluster Discovery. Currently AWS, CF and Local are supported.
Hence set the environment variable DISCOVERY_ENV based on the environment you are deploying the app.
For Amazon Web Services use AWS, for Cloud Foundry use CF, and for local deployments any other name.
For Cloud Foundry, build and upload the ndbench war to CF using cf push.

Run

./gradlew appRun

Configuration

You can provide properties by using ndbench{version}.jar in your web container and then implementing IConfiguration Interface. More details on the how the configuration can be found in the Wiki.

Help

Need some help with either getting up and going or some problems with the code?

  • Submit a Github issue
  • Chat with us on Dev chat at https://gitter.im/Netflix/ndbench

License

Licensed under the Apache License, Version 2.0: http://www.apache.org/licenses/LICENSE-2.0

MongoDB Logo MongoDB