#!/usr/bin/env python3 import argparse from common import DEFAULT_CHROME_PROFILE, discover_grafana_dashboard, write_json def main() -> int: parser = argparse.ArgumentParser( description="Discover dashboard metadata and panel PromQL from an online Grafana dashboard link" ) parser.add_argument("link", help="Grafana dashboard link, or Grafana base URL when --dashboard-uid is provided") parser.add_argument("--dashboard-uid", default="", help="Grafana dashboard uid when link is only the Grafana base URL") parser.add_argument( "--profile", default=DEFAULT_CHROME_PROFILE, help="Chrome profile name for reusing an existing Grafana browser login session (default: auto).", ) args = parser.parse_args() result = discover_grafana_dashboard( args.link, dashboard_uid=args.dashboard_uid or None, profile_name=args.profile, ) write_json(result) return 0 if __name__ == "__main__": raise SystemExit(main())