{"id":13581892,"url":"https://github.com/influxdata/inch","last_synced_at":"2025-04-04T16:16:39.574Z","repository":{"id":19603309,"uuid":"87450881","full_name":"influxdata/inch","owner":"influxdata","description":"An InfluxDB benchmarking tool.","archived":false,"fork":false,"pushed_at":"2025-01-27T20:19:20.000Z","size":2277,"stargazers_count":86,"open_issues_count":3,"forks_count":25,"subscribers_count":17,"default_branch":"master","last_synced_at":"2025-03-28T15:11:12.399Z","etag":null,"topics":["influxdb"],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/influxdata.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-04-06T16:24:36.000Z","updated_at":"2025-02-26T06:47:20.000Z","dependencies_parsed_at":"2025-01-12T01:08:57.300Z","dependency_job_id":"ab3fc073-301f-48e5-82ae-f2bae2f9f593","html_url":"https://github.com/influxdata/inch","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/influxdata%2Finch","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/influxdata%2Finch/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/influxdata%2Finch/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/influxdata%2Finch/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/influxdata","download_url":"https://codeload.github.com/influxdata/inch/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247208183,"owners_count":20901570,"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":["influxdb"],"created_at":"2024-08-01T15:02:18.210Z","updated_at":"2025-04-04T16:16:39.553Z","avatar_url":"https://github.com/influxdata.png","language":"Go","funding_links":[],"categories":["Go"],"sub_categories":[],"readme":"inch\n====\n\nInch is an InfluxDB benchmarking tool for testing with different tag\ncardinalities.\n\n\n## Installing\n\nTo install, simply `go get` from the command line:\n\n```sh\n$ go get github.com/influxdata/inch/cmd/inch\n```\n\n\n## Running\n\nThe `inch` program accepts several flags to adjust the number of points and\ntag values.\n\n```\nUsage of inch:\n  -b int\n    \tBatch size (default 5000)\n  -c int\n    \tConcurrency (default 1)\n  -consistency string\n    \tWrite consistency (default any) (default \"any\")\n  -db string\n    \tDatabase to write to (default \"stress\")\n  -delay duration\n    \tDelay between writes\n  -dry\n    \tDry run (maximum writer perf of inch on box)\n  -f int\n    \tFields per point (default 1)\n  -host string\n    \tHost (default \"http://localhost:8086\")\n  -m int\n    \tMeasurements (default 1)\n  -max-errors int\n    \tTerminate process if this many errors encountered\n  -p int\n    \tPoints per series (default 100)\n  -report-host string\n    \tHost to send metrics\n  -report-tags string\n    \tComma separated k=v tags to report alongside metrics\n  -shard-duration string\n    \tSet shard duration (default 7d)\n  -t string\n    \tTag cardinality (default \"10,10,10\")\n  -target-latency duration\n    \tIf set inch will attempt to adapt write delay to meet target\n  -time duration\n    \tTime span to spread writes over\n  -v\tVerbose\n```\n\nThe `-t` flag specifies the number of tags and the cardinality by using a\ncomma-separated list of integers. For example, the value `\"100,20,4\"` means \nthat 3 tag keys should be used. The first one has 100 values, the second one\nhas 20 values, and the last one has 4 values. `inch` will insert a series for\neach combination of these values so the total number of series can be computed\nby multiplying the values (`100 * 20 * 4`).\n\nBy setting the `verbose` flag you can see progress each second.\n\nThe `-target-latency` flag will allow `inch` to automatically backoff (add \ndelays after writing batches) according to the weighted moving average of \nresponse times from the InfluxDB server. If the WMA of responses is greater than \nthe target latency then delays will be increased in an attempt to allow the \nInfluxDB server time to recover and process in-flight writes. If a delay is in \nplace on `inch` clients yet the WMA of response times is lower than the target\nlatency, then `inch` will reduce the delays in an attempt to increase throughput.\n\nThe `-report-host` flag can be used to specify the location of an InfluxDB \ninstance, to be used for reporting the results of inch. A local instance to inch\nwould be specified as `-report-host http://localhost:8086`. Inch will provide \nappropriate tags where possible, but arbitrary tags can be set using the \n`-report-tags` flag. The format for `-report-tags` is a comma separated list of \nkey value pairs. For example `-report-tags instance=m4.2xlarge,index=tsi1`.\n\nWhen `-report-host` is set to a non-empty value, inch will report throughput, \npoints and values written, as well as write latency statistics.\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finfluxdata%2Finch","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Finfluxdata%2Finch","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finfluxdata%2Finch/lists"}