{"id":25176998,"url":"https://github.com/lovromazgon/impromptu","last_synced_at":"2025-05-06T23:21:52.954Z","repository":{"id":233263285,"uuid":"786115808","full_name":"lovromazgon/impromptu","owner":"lovromazgon","description":"CLI for scraping, querying and visualizing Prometheus metrics","archived":false,"fork":false,"pushed_at":"2025-05-02T18:45:48.000Z","size":395,"stargazers_count":11,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-02T19:37:15.946Z","etag":null,"topics":["cli","prometheus","promql","visualization"],"latest_commit_sha":null,"homepage":"","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/lovromazgon.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":"2024-04-13T13:32:48.000Z","updated_at":"2025-05-02T18:45:51.000Z","dependencies_parsed_at":"2024-09-17T22:06:10.895Z","dependency_job_id":"7aab02dc-f2c4-4722-9e39-94c3da6a1bc7","html_url":"https://github.com/lovromazgon/impromptu","commit_stats":null,"previous_names":["lovromazgon/impromptu"],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lovromazgon%2Fimpromptu","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lovromazgon%2Fimpromptu/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lovromazgon%2Fimpromptu/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lovromazgon%2Fimpromptu/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lovromazgon","download_url":"https://codeload.github.com/lovromazgon/impromptu/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252783897,"owners_count":21803574,"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":["cli","prometheus","promql","visualization"],"created_at":"2025-02-09T13:20:02.367Z","updated_at":"2025-05-06T23:21:52.948Z","avatar_url":"https://github.com/lovromazgon.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n    \u003cpicture\u003e\n        \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"https://github.com/lovromazgon/impromptu/blob/main/logo/impromptu-white.png\"\u003e\n        \u003csource media=\"(prefers-color-scheme: light)\" srcset=\"https://github.com/lovromazgon/impromptu/blob/main/logo/impromptu-black.png\"\u003e\n        \u003cimg alt=\"Impromptu logo\" width=\"600\" src=\"https://github.com/lovromazgon/impromptu/blob/main/logo/impromptu-black.png\"\u003e\n    \u003c/picture\u003e\n\u003c/p\u003e\n\n[![License](https://img.shields.io/github/license/lovromazgon/impromptu)](https://github.com/ConduitIO/conduit/blob/main/LICENSE)\n[![Test](https://github.com/lovromazgon/impromptu/actions/workflows/test.yml/badge.svg)](https://github.com/lovromazgon/impromptu/actions/workflows/test.yml)\n[![Go Report Card](https://goreportcard.com/badge/github.com/lovromazgon/impromptu)](https://goreportcard.com/report/github.com/lovromazgon/impromptu)\n\nImpromptu is a tool that scrapes metrics from a Prometheus endpoint and\ncontinuously executes a user-provided PromQL query to visualize the metrics\nin the CLI.\n\nYou can use Impromptu to get an insight into the metrics of a service without\ndeploying Prometheus and Grafana, mostly during development and testing.\n\n![demo](https://github.com/user-attachments/assets/223de1f0-b7b6-4591-8212-e7307f7aad0c)\n\n## Installation\n\nInstall using homebrew:\n\n```sh\nbrew install lovromazgon/tap/impromptu\n```\n\nOr download the binary manually from the [latest release](https://github.com/lovromazgon/impromptu/releases/latest).\n\n\u003e [!NOTE]\n\u003e When downloading Impromptu manually on MacOS you will get a warning about a safety issue.\n\u003e That's because Impromptu is currently not a signed binary, you have to do some\n\u003e [extra steps](https://support.apple.com/en-us/102445#openanyway) to make it run.\n\nOnce you have downloaded impromptu, you can try it out using this runnable example:\n\n```sh\nimpromptu -t https://node.demo.prometheus.io/metrics -q \"rate(node_cpu_seconds_total{mode=\\\"idle\\\"}[5s])\" -r 1m\n```\n\n## Usage\n\n```\nUsage:\n    impromptu -t URL -q PROMQL_QUERY [-i DURATION] [-r DURATION]\n\nOptions:\n    -t, --target-url URL               Fetch metrics from the specified URL\n    -q, --query-string PROMQL_QUERY    Query to execute against the metrics\n    -i, --query-interval DURATION      Interval to fetch metrics at [default: 1s]\n    -r, --query-range DURATION         Range of the query [default: 5m]\n    -v, --version                      Print version information\n\nURL represents an endpoint that serves Prometheus metrics in text format.\n\nPROMQL_QUERY is a Prometheus query language expression that returns a single\ntime series. The query is executed every second and the result is displayed\nin a terminal chart. The query should return a single time series, e.g. a\nrate or a sum of a counter. The query interval and range can be adjusted with\nthe -i and -r flags.\n\nDURATION is a time duration string that can be parsed by Go's time.ParseDuration\nfunction. It represents a time interval, e.g. \"5m\" for 5 minutes, \"1h\" for 1\nhour, \"30s\" for 30 seconds, \"1h 2m 3s\" for 1 hour, 2 minutes and 3 seconds etc.\n\nExample:\n    $ impromptu -t https://node.demo.prometheus.io/metrics -q \"rate(node_cpu_seconds_total{mode=\\\"idle\\\"}[5s])\" -r 1m\n```\n\n## Roadmap\n\n- [X] Remove initial 5 second delay (PR: https://github.com/prometheus/prometheus/pull/14073)\n- [ ] Support for multiple time series\n- [ ] Support for other charts (donut, bar chart)\n- [ ] Display legend\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flovromazgon%2Fimpromptu","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flovromazgon%2Fimpromptu","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flovromazgon%2Fimpromptu/lists"}