Skip to content

Commit

Permalink
chore: add instructions on how to run SLO locally
Browse files Browse the repository at this point in the history
See slo-workload/DEV.md
  • Loading branch information
Alexey Zorkaltsev committed Feb 27, 2024
1 parent 7cfdeb4 commit b94d9c7
Show file tree
Hide file tree
Showing 3 changed files with 54 additions and 2 deletions.
52 changes: 52 additions & 0 deletions slo-workload/DEV.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
# SLO development guide

## Local testing

### Start local environment

In the [slo-tests](https://github.com/ydb-platform/slo-tests) project
in the _playground_ folder

`docker compose up -d`

### Check everything in the browser

In the browser, open

* [Grafana](http://localhost:3000/)

* [YDB](http://localhost:8765/) (Check SLO dashboard)

### Configure local console to run SLO tests

In the [ydb-nodejs-sdk](https://github.com/ydb-platform/ydb-nodejs-sdk) project
in the _slo-workload_ folder

`npm i`

`set YDB_ANONYMOUS_CREDENTIALS=1`

`set YDB_SSL_ROOT_CERTIFICATES_FILE=../../slo-tests/playground/data/ydb_certs/ca.pem`

### Create the test database

`npx ts-node src/index.ts create grpcs://localhost:2135 local`

### Run the test - for 5 min

`npx ts-node src/index.ts run grpcs://localhost:2135 local`

### Clean the baseClean the base

`npx ts-node src/index.ts cleanup grpcs://localhost:2135 local`

### What to do in case of problems

* Restart the environment

`docker compose down`

`docker compose up -d`

* Repeat the tests several times. There are floating errors because the tests
are integration tests. So the picture may vary from one run to another
2 changes: 1 addition & 1 deletion slo-workload/src/metricsJob.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import Executor from './utils/Executor'

export class MetricsJob {
private intervalId: NodeJS.Timer | undefined
private intervalId: NodeJS.Timeout | undefined
private endTime: number
private promise: Promise<void>

Expand Down
2 changes: 1 addition & 1 deletion slo-workload/src/utils/RateLimiter.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import NanoTimer from 'nanotimer'
export default class RateLimiter {
private delayMicroSec: number
private count: number = 0
private realRPSObserverId: NodeJS.Timer
private realRPSObserverId: NodeJS.Timeout
private returnerTimer: NanoTimer
private real: number = 0
private returner = () => {}
Expand Down

0 comments on commit b94d9c7

Please sign in to comment.