Illustration Image

Cassandra.Link

The best knowledge base on Apache Cassandra®

Helping platform leaders, architects, engineers, and operators build scalable real time data platforms.

9/13/2018

Reading time:2 min

Netflix/ndbench

by John Doe

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.Client APIsApache Cassandra (Thrift and CQL)RedisElasticsearchElassandraAmazon DynamoDBApache GeodeJanusGraphNetflix Dynomite (Redis API)FeaturesDynamically 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 FoundryDetails about the features can be found in the WikiWorkflowThe stable version of NdBench is the master branch.For questions or contributions, please consider reading CONTRIBUTING.md.BuildNdBench comes with a Gradle wrapper./gradlew buildThe 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.How toThe 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.Build ndbenchSet up Auto-Scale Group (ASG) and spin up instancesDeploy ndbench-web.war in your containerDeploy to Cloud PlatformsDISCOVERY_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 appRunConfigurationYou 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.HelpNeed some help with either getting up and going or some problems with the code?Submit a Github issueChat with us on LicenseLicensed under the Apache License, Version 2.0: http://www.apache.org/licenses/LICENSE-2.0

Illustration Image

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.

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

Related Articles

elastic
logging
kibana

Cassandra open-source log analysis in Kibana, using filebeat, modeled in Docker

John Doe

2/16/2024

Checkout Planet Cassandra

Claim Your Free Planet Cassandra Contributor T-shirt!

Make your contribution and score a FREE Planet Cassandra Contributor T-Shirt! 
We value our incredible Cassandra community, and we want to express our gratitude by sending an exclusive Planet Cassandra Contributor T-Shirt you can wear with pride.

Join Our Newsletter!

Sign up below to receive email updates and see what's going on with our company

Explore Related Topics

AllKafkaSparkScyllaSStableKubernetesApiGithubGraphQl

Explore Further

elastic