Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/couchbaselabs/meep-meep

A workload generator for .NET Couchbase Client
https://github.com/couchbaselabs/meep-meep

Last synced: 2 days ago
JSON representation

A workload generator for .NET Couchbase Client

Awesome Lists containing this project

README

        

# MeepMeep [![Build status](https://ci.appveyor.com/api/projects/status/yxxv2cmrgdocbr9j/branch/master?svg=true)](https://ci.appveyor.com/project/Couchbase/meep-meep/branch/master)

MeepMeep is a simple workload generator that can be used to simulate workloads against a Couchbase cluster using the .NET client.

## NOTE: Not supported under Couchbase Enterprise Support Subscriptions

## Building & running

You can build and run the project from the root of the project like this:

```bash
dotnet build
dotnet run -p src/MeepMeep/MeepMeep.csproj
```

## Authentication with Couchbase Server 5.0+ (RBAC)

From Couchbase Server 5.0, Role based authentication was introduced which replaced the previous bucket password. To test a Cluster that is RBAC enabled, you will need to create a user with the same name as the bucket you want to test with.

For example:

```bash
dotnet run -p src/MeepMeep/MeepMeep.csproj --bucket test --bucketpassword password123
```

## Options

MeepMeep is a simple console application. Run it with the `--help` switch to show help text that describes each available option.

For example to run with all default values:
`dotnet run -p src/MeepMeep/MeepMeep.csproj`.

There are three `workloads` currently shipped with MeepMeep: `MutationPercentage`, `AddJsonDocumentWorkload` and `AddAndGetJsonDocumentWorkload`.

The options are:

```text
-n, --nodes (Default: couchbase://localhost) Space separated list of nodes to connect to.

-b, --bucket (Default: default) Name of the Bucket

-p, --bucketpassword (Default: ) Password for the bucket.

-c, --num-clients (Default: 1) Number of client sessions.

-s, --wl-size (Default: 20000) The workload size. Depending on Workload, it could e.g. represent the num of documents to work with (per client session).

--doc-sample-path (Default: ) Path to a file with an UTF8 JSON document, e.g used for inserts.

--doc-key-prefix (Default: mm) Used as a prefix to generated document keys.

--doc-key-seed (Default: 0) Used as a starting seed when generating document keys.

--doc-key-range (Default: 1000) The maximum range of document IDs use above doc-key-seed.

--clusteruser (Default: Administrator) Cluster Administrator username.

--clusterpassword (Default: password) Cluster Administraor password.

-w, --warmup-ms (Default: 100) Determines how long time (ms) it takes before a workload's operation results is being seen as part of the workload.

-v, --verbose (Default: false) Determines detail level of output generated by output writers etc.

-r, --mutation-percentage (Default: 0.33) The percentage of operations that should be mutations.

--workload-type (Default: MutationPercentage) The type of workload to be used.

-t, --enable-timings (Default: false) Time operations and output at end of workload.

--use-json (Default: false) Enable writing JSON values instead of raw bytes.

--use-sync (Default: false) Uses a synchronous workload instead of async.

--use-ssl (Default: false) Enable SSL connections between client and Couchbase server.

--verify-ssl-certs (Default: false) Verify SSL certificates.

--pool-min (Default: 1) Sets the minimum connection pool size.

--pool-max (Default: 1) Sets the maximum connection pool size.

--flush-bucket (Default: false) Flush the bucket before executing workloads.

--rate-limit (Default: 0) Limits the number of operations per second. Zero applies no limit.

--help Display this help screen.

--version Display version information.
```

## MyGet feed

We push every incremental change to a public MyGet feed