{"id":26493272,"url":"https://github.com/bblfsh/performance","last_synced_at":"2026-05-16T23:02:14.626Z","repository":{"id":64302230,"uuid":"195398769","full_name":"bblfsh/performance","owner":"bblfsh","description":"Babelfish performance testing","archived":false,"fork":false,"pushed_at":"2019-09-26T11:47:45.000Z","size":98,"stargazers_count":1,"open_issues_count":4,"forks_count":2,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-06-20T08:04:59.572Z","etag":null,"topics":["babelfish","performance-testing"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bblfsh.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":"CODEOWNERS","security":null,"support":null}},"created_at":"2019-07-05T11:33:06.000Z","updated_at":"2019-09-26T11:31:32.000Z","dependencies_parsed_at":"2023-01-15T09:45:20.858Z","dependency_job_id":null,"html_url":"https://github.com/bblfsh/performance","commit_stats":null,"previous_names":[],"tags_count":13,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bblfsh%2Fperformance","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bblfsh%2Fperformance/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bblfsh%2Fperformance/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bblfsh%2Fperformance/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bblfsh","download_url":"https://codeload.github.com/bblfsh/performance/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244591490,"owners_count":20477709,"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":["babelfish","performance-testing"],"created_at":"2025-03-20T09:51:53.022Z","updated_at":"2026-05-16T23:02:14.546Z","avatar_url":"https://github.com/bblfsh.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Babelfish performance testing\n\n## Build\n```bash\ngo generate ./...\ncd cmd/bblfsh-performance\ngo build\n```\n\n## Currently supports only 2 commands\n\n### parse-and-store\n```bash\n./bblfsh-performance parse-and-store --help\nparse file(s) with golang benchmark output and store it into a given storage\n\nUsage:\n  bblfsh-performance parse-and-store [--language=\u003clanguage\u003e] [--commit=\u003ccommit-id\u003e] [--storage=\u003cstorage\u003e] \u003cfile ...\u003e [flags]\n\nAliases:\n  parse-and-store, pas, parse-and-dump\n\nExamples:\nWARNING! To access storage corresponding environment variables should be set.\nFull examples of usage scripts are following:\n\n# for prometheus pushgateway\nexport PROM_ADDRESS=\"localhost:9091\"\nexport PROM_JOB=pushgateway\nbblfsh-performance parse-and-store --language=go --commit=3d9682b --storage=\"prom\" /var/log/bench0 /var/log/bench1\n\n# for influx db\nexport INFLUX_ADDRESS=\"http://localhost:8086\"\nexport INFLUX_USERNAME=\"\"\nexport INFLUX_PASSWORD=\"\"\nexport INFLUX_DB=mydb\nexport INFLUX_MEASUREMENT=benchmark\nbblfsh-performance parse-and-store --language=go --commit=3d9682b --storage=\"influxdb\" /var/log/bench0 /var/log/bench1\n\nFlags:\n  -c, --commit string     commit id that's being tested and will be used as a tag in performance report\n  -h, --help              help for parse-and-store\n  -l, --language string   name of the language to be tested\n  -s, --storage string    storage kind to store the results(prom, influxdb, file) (default \"prom\")\n```\n\n##### Command usage\nEither locally or in CI:\n1) pull driver repo\n2) perform benchmarks over the fixtures\n3) save output test benchmark output to the file\n4) run `bblfsh-performance parse-and-store` and pass the filepath(s) as an argument\n\n### driver-native\n```bash\n./bblfsh-performance driver-native --help\nrun language driver container and perform benchmark tests over the native driver, store results into a given storage\n\nUsage:\n  bblfsh-performance driver-native [--language=\u003clanguage\u003e] [--commit=\u003ccommit-id\u003e] [--storage=\u003cstorage\u003e] [--filter-prefix=\u003cfilter-prefix\u003e] [--native=\u003cpath-to-native\u003e] \u003cdirectory\u003e [flags]\n\nAliases:\n  driver-native, dn, native\n\nExamples:\nWARNING! Requires native-driver-performance binary to be build\nWARNING! To access storage corresponding environment variables should be set.\nFull examples of usage scripts are following:\n\n# for prometheus pushgateway\nexport PROM_ADDRESS=\"localhost:9091\"\nexport PROM_JOB=pushgateway\n./bblfsh-performance driver-native \\\n--language go \\\n--commit 096361d09049c27e829fd5a6658f1914fd3b62ac \\\n--native /home/lwsanty/goproj/lwsanty/performance/cmd/native-driver-performance/native-driver-performance \\\n/var/testdata/fixtures\n\n# for influx db\nexport INFLUX_ADDRESS=\"http://localhost:8086\"\nexport INFLUX_USERNAME=\"\"\nexport INFLUX_PASSWORD=\"\"\nexport INFLUX_DB=mydb\nexport INFLUX_MEASUREMENT=benchmark\n./bblfsh-performance driver-native \\\n--language go \\\n--commit 096361d09049c27e829fd5a6658f1914fd3b62ac \\\n--native /home/lwsanty/goproj/lwsanty/performance/cmd/native-driver-performance/native-driver-performance \\\n--storage=influxdb \\\n/var/testdata/fixtures\n\n\nFlags:\n  -c, --commit string              commit id that's being tested and will be used as a tag in performance report\n      --exclude-suffixes strings   file suffixes to be excluded (default [.legacy,.native,.uast])\n      --filter-prefix string       file prefix to be filtered (default \"bench_\")\n  -h, --help                       help for driver-native\n  -l, --language string            name of the language to be tested\n  -n, --native string              path to native driver performance util (default \"/root/utils/native-driver-test\")\n  -s, --storage string             storage kind to store the results(prom, influxdb, file) (default \"prom\")\n```\n\n### driver\n```bash\n./bblfsh-performance driver --help\nrun language driver container and perform benchmark tests over the driver, store results into a given storage\n\nUsage:\n  bblfsh-performance driver [--language=\u003clanguage\u003e] [--commit=\u003ccommit-id\u003e] [--storage=\u003cstorage\u003e] [--filter-prefix=\u003cfilter-prefix\u003e] \u003cdirectory\u003e [flags]\n\nAliases:\n  driver, d\n\nExamples:\nWARNING! To access storage corresponding environment variables should be set.\nFull examples of usage scripts are following:\n\n# for prometheus pushgateway\nexport PROM_ADDRESS=\"localhost:9091\"\nexport PROM_JOB=pushgateway\n./bblfsh-performance driver \\\n--language go \\\n--commit 096361d09049c27e829fd5a6658f1914fd3b62ac \\\n/var/testdata/fixtures\n\n# for influx db\nexport INFLUX_ADDRESS=\"http://localhost:8086\"\nexport INFLUX_USERNAME=\"\"\nexport INFLUX_PASSWORD=\"\"\nexport INFLUX_DB=mydb\nexport INFLUX_MEASUREMENT=benchmark\n./bblfsh-performance driver \\\n--language go \\\n--commit 096361d09049c27e829fd5a6658f1914fd3b62ac \\\n--storage=influxdb \\\n/var/testdata/fixtures\n\n\nFlags:\n  -c, --commit string              commit id that's being tested and will be used as a tag in performance report\n      --exclude-suffixes strings   file suffixes to be excluded (default [.legacy,.native,.uast])\n      --filter-prefix string       file prefix to be filtered (default \"bench_\")\n  -h, --help                       help for driver\n  -l, --language string            name of the language to be tested\n  -s, --storage string             storage kind to store the results(prom, influxdb, file) (default \"prom\")\n```\n\n### end-2-end\n```bash\n./bblfsh-performance end-to-end --help\nrun bblfshd container and perform benchmark tests, store results into a given storage\n\nUsage:\n  bblfsh-performance end-to-end [--language=\u003clanguage\u003e] [--commit=\u003ccommit-id\u003e] [--extension=\u003cfiles-extension\u003e] [--docker-tag=\u003cdocker-tag\u003e] [--storage=\u003cstorage\u003e] \u003cdirectory ...\u003e [flags]\n\nAliases:\n  end-to-end, e2e\n\nExamples:\nTo use external bblfshd set BBLFSHD_LOCAL=${bblfshd_address}\n\nWARNING! To access storage corresponding environment variables should be set.\nFull examples of usage scripts are following:\n\n# for prometheus pushgateway\nexport PROM_ADDRESS=\"localhost:9091\"\nexport PROM_JOB=pushgateway\n./bblfsh-performance end-to-end --language=go --commit=3d9682b --filter-prefix=\"bench_\" --exclude-suffixes=\".legacy\",\".native\",\".uast\" --storage=\"prom\" /var/testdata/benchmarks\n\n# for influx db\nexport INFLUX_ADDRESS=\"http://localhost:8086\"\nexport INFLUX_USERNAME=\"\"\nexport INFLUX_PASSWORD=\"\"\nexport INFLUX_DB=mydb\nexport INFLUX_MEASUREMENT=benchmark\nbblfsh-performance end-to-end --language=go --commit=3d9682b --filter-prefix=\"bench_\" --exclude-suffixes=\".legacy\",\".native\",\".uast\" --storage=\"influxdb\" /var/testdata/benchmarks\n\nFlags:\n  -c, --commit string              commit id that's being tested and will be used as a tag in performance report\n      --custom-driver              if this flag is set to true CLI pulls corresponding language driver repo's commit, builds docker image and installs it onto the bblfsh container\n  -t, --docker-tag string          bblfshd docker image tag to be tested (default \"latest-drivers\")\n      --exclude-suffixes strings   file suffixes to be excluded (default [.legacy,.native,.uast])\n      --filter-prefix string       file prefix to be filtered (default \"bench_\")\n  -h, --help                       help for end-to-end\n  -l, --language string            name of the language to be tested\n  -s, --storage string             storage kind to store the results(prom, influxdb, file) (default \"prom\")\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbblfsh%2Fperformance","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbblfsh%2Fperformance","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbblfsh%2Fperformance/lists"}