{"id":20095948,"url":"https://github.com/cortexproject/promqlsmith","last_synced_at":"2025-05-06T05:31:21.155Z","repository":{"id":142207955,"uuid":"610570083","full_name":"cortexproject/promqlsmith","owner":"cortexproject","description":"A random PromQL query generator","archived":false,"fork":false,"pushed_at":"2025-04-29T03:50:16.000Z","size":305,"stargazers_count":20,"open_issues_count":5,"forks_count":6,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-04-29T04:38:36.521Z","etag":null,"topics":["fuzz-testing","prometheus","promql"],"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/cortexproject.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,"zenodo":null}},"created_at":"2023-03-07T03:07:33.000Z","updated_at":"2025-04-29T03:48:43.000Z","dependencies_parsed_at":null,"dependency_job_id":"4275026a-3f11-4a6f-9ff6-24889a4b74d8","html_url":"https://github.com/cortexproject/promqlsmith","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/cortexproject%2Fpromqlsmith","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cortexproject%2Fpromqlsmith/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cortexproject%2Fpromqlsmith/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cortexproject%2Fpromqlsmith/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cortexproject","download_url":"https://codeload.github.com/cortexproject/promqlsmith/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252628902,"owners_count":21779101,"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":["fuzz-testing","prometheus","promql"],"created_at":"2024-11-13T16:57:07.790Z","updated_at":"2025-05-06T05:31:19.893Z","avatar_url":"https://github.com/cortexproject.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# PromQLsmith\n\n## Description\n\nA random query generator for PromQL. Its name is inspired by [SQLsmith](https://github.com/anse1/sqlsmith)\n\n## Usage\n\nPromQLsmith is a library that can be used in the test to generate PromQL queries. Example usage can be found under [example](example).\n\n```go\npackage main\n\nimport (\n\t\"fmt\"\n\t\"math/rand\"\n\t\"time\"\n\n\t\"github.com/prometheus/prometheus/model/labels\"\n\n\t\"github.com/cortexproject/promqlsmith\"\n)\n\nfunc main() {\n\tseriesSet := []labels.Labels{\n\t\tlabels.FromMap(map[string]string{\n\t\t\tlabels.MetricName: \"http_requests_total\",\n\t\t\t\"job\":             \"prometheus\",\n\t\t\t\"status_code\":     \"200\",\n\t\t}),\n\t\tlabels.FromMap(map[string]string{\n\t\t\tlabels.MetricName: \"http_requests_total\",\n\t\t\t\"job\":             \"prometheus\",\n\t\t\t\"status_code\":     \"400\",\n\t\t}),\n\t}\n\n\trnd := rand.New(rand.NewSource(time.Now().Unix()))\n\topts := []promqlsmith.Option{\n\t\tpromqlsmith.WithEnableOffset(true),\n\t\tpromqlsmith.WithEnableAtModifier(true),\n\t}\n\tps := promqlsmith.New(rnd, seriesSet, opts...)\n\t// Generate a query that can be used in instant query.\n\tq1 := ps.WalkInstantQuery()\n\t// Generate a query that can be used in range query.\n\tq2 := ps.WalkRangeQuery()\n\tfmt.Println(q1.Pretty(0))\n\tfmt.Println(q2.Pretty(2))\n}\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcortexproject%2Fpromqlsmith","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcortexproject%2Fpromqlsmith","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcortexproject%2Fpromqlsmith/lists"}