{"id":20564518,"url":"https://github.com/tarantool/microb","last_synced_at":"2025-04-14T15:12:55.926Z","repository":{"id":20302450,"uuid":"23576214","full_name":"tarantool/microb","owner":"tarantool","description":"Automatic performance regression testing framework","archived":false,"fork":false,"pushed_at":"2021-10-09T12:51:39.000Z","size":67,"stargazers_count":6,"open_issues_count":0,"forks_count":1,"subscribers_count":45,"default_branch":"dev","last_synced_at":"2025-04-14T15:12:54.408Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Lua","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tarantool.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-09-02T11:31:35.000Z","updated_at":"2025-04-07T12:04:38.000Z","dependencies_parsed_at":"2022-09-06T20:31:54.335Z","dependency_job_id":null,"html_url":"https://github.com/tarantool/microb","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tarantool%2Fmicrob","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tarantool%2Fmicrob/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tarantool%2Fmicrob/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tarantool%2Fmicrob/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tarantool","download_url":"https://codeload.github.com/tarantool/microb/tar.gz/refs/heads/dev","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248904637,"owners_count":21180835,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-16T04:27:29.755Z","updated_at":"2025-04-14T15:12:55.884Z","avatar_url":"https://github.com/tarantool.png","language":"Lua","funding_links":[],"categories":[],"sub_categories":[],"readme":"microB\n======\n\nMicrobenchmarking for Tarantool. More details in [wiki](https://github.com/tarantool/microb/wiki)\n\n## Benchmark ##\n### Usage ###\n```\ntarantool start_runner.lua\n```\n\n### Add a new benchmark ###\n\n* Add a new file to the benchmarks folder\n* Create a new configuration settings in [microb/cfg.lua](microb/cfg.lua) file.\nYou must set `name` and `engines` parameters. \n`name` must be equal to the filename from the first bullet.\n \nMinimal configuration example:\n```\n-- This module for benchmarks counts and other configuration value\n\n-- Engine configuration options\nlocal engine = {\n    memtx = {\n        engine_name = 'memtx',\n        index = { 'hash', 'tree' },\n        count = 500000,\n        wal_mode = 'none'\n    },\n}\n\n-- Benchmarks configuration settings (benchmarks must have the same names as in benchmarks folder)\nlocal crud = { name = 'crud', engines = { engine.memtx } }\n\n-- Global configuration settings\nreturn {\n    -- Number of iterations per benchmark\n    bench_iters = 1,\n    -- Benchmarks to run\n    benchmarks = { crud }\n}\n```\n\n## Web Storage and Site ##\n### Install ###\n* [install tarantool](http://tarantool.org/download.html)\n* [install luarocks](http://rocks.tarantool.org/)\n* create rpm\n```bash\n$make\n```\n* install package\n```bash\n$sudo yum localinstall tarantool-microb-module-x.y-z.noarch.rpm\n```\n* enable installed modules in tarantool\n```bash\n$sudo cp /etc/tarantool/instances.available/*.lua  /etc/tarantool/instances.enabled/\n```\n* Start microb storage and web ui\n```bash\n$sudo tarantoolctl start microb_storage\n$sudo tarantoolctl start microb_web\n```\n\n\nUsage\n-----\n1. Configure and run storage\n```bash\n$tarantool start_storage.lua\n2015-03-04 18:01:18.469 [4047] main/101/start_storage.lua C\u003e version 1.6.4-428-g248a2a7\n2015-03-04 18:01:18.470 [4047] main/101/start_storage.lua C\u003e log level 5\n2015-03-04 18:01:18.471 [4047] main/101/start_storage.lua I\u003e mapping 1073741824 bytes for a shared arena...\n...\n2015-03-04 18:01:18.563 [4047] main/101/start_storage.lua I\u003e Started http server at host = 0.0.0.0 and port = 3300 \n2015-03-04 18:01:18.563 [4047] main/104/http/0.0.0.0:33001 I\u003e started\n2015-03-04 18:01:18.564 [4047] main C\u003e entering the event loop\n\n```\n2. Run web ui\n```bash\n$tarantool start_web.lua\n2015-03-04 18:05:35.162 [4156] main/101/tarantoolctl C\u003e version 1.6.4-428-g248a2a7\n2015-03-04 18:05:35.164 [4156] main/101/tarantoolctl C\u003e log level 5\n2015-03-04 18:05:35.164 [4156] main/101/tarantoolctl I\u003e mapping 1073741824 bytes for a shared arena...\n...\n2015-03-04 18:05:35.278 [4156] main/101/microb_web I\u003e Starting_remote connection box-net-box on host = 127.0.0.1, port = 33011\n2015-03-04 18:05:35.284 [4156] main/101/microb_web I\u003e Started http server at host = 0.0.0.0 and port = 22222\n2015-03-04 18:05:35.285 [4156] main/108/http/0.0.0.0:22222 I\u003e started\n2015-03-04 18:05:35.285 [4156] main C\u003e entering the event loop\n```\n\n\n\nNginx proxy pass\n----------------\nBy default microb run web module at 22222 port. If you want you can handle in with nginx\n```nginx\nserver {\n        listen 80;\n        server_name bench.build.tarantool.org;\n        location / {\n                proxy_pass http://127.0.0.1:22222;\n        }\n}\n```\nIt's possible to save benchmarks in microb_storage using restful api. Example:\n```\nhttp://myserver.com/push?key=[API_KEY]\u0026name=[METRIC_NAME]\u0026param=[METRIC_VALUE]\u0026v=[TARANTOOL_VERSION]\u0026unit=[MEASUREMENT]\u0026tab=[METRIC_GROUP]\n```\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftarantool%2Fmicrob","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftarantool%2Fmicrob","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftarantool%2Fmicrob/lists"}