{"id":37173849,"url":"https://github.com/metrumresearchgroup/gridengine_prometheus","last_synced_at":"2026-01-14T20:19:02.557Z","repository":{"id":53048053,"uuid":"210453289","full_name":"metrumresearchgroup/gridengine_prometheus","owner":"metrumresearchgroup","description":"Prometheus exporter for the Sun Grid Engine","archived":false,"fork":false,"pushed_at":"2024-03-20T15:45:40.000Z","size":124,"stargazers_count":2,"open_issues_count":2,"forks_count":6,"subscribers_count":5,"default_branch":"develop","last_synced_at":"2024-06-19T13:40:32.830Z","etag":null,"topics":["gridengine","prometheus-exporter","qstat"],"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/metrumresearchgroup.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":"2019-09-23T21:10:42.000Z","updated_at":"2024-04-23T11:43:24.000Z","dependencies_parsed_at":"2024-06-19T13:26:49.408Z","dependency_job_id":"27c3ae3e-c9a5-404f-aaac-83e355c54157","html_url":"https://github.com/metrumresearchgroup/gridengine_prometheus","commit_stats":{"total_commits":79,"total_committers":7,"mean_commits":"11.285714285714286","dds":"0.25316455696202533","last_synced_commit":"f448a099c8ff1d10d9aec627b339357f890d16c8"},"previous_names":[],"tags_count":19,"template":false,"template_full_name":null,"purl":"pkg:github/metrumresearchgroup/gridengine_prometheus","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/metrumresearchgroup%2Fgridengine_prometheus","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/metrumresearchgroup%2Fgridengine_prometheus/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/metrumresearchgroup%2Fgridengine_prometheus/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/metrumresearchgroup%2Fgridengine_prometheus/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/metrumresearchgroup","download_url":"https://codeload.github.com/metrumresearchgroup/gridengine_prometheus/tar.gz/refs/heads/develop","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/metrumresearchgroup%2Fgridengine_prometheus/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28434422,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T18:57:19.464Z","status":"ssl_error","status_checked_at":"2026-01-14T18:52:48.501Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["gridengine","prometheus-exporter","qstat"],"created_at":"2026-01-14T20:19:01.802Z","updated_at":"2026-01-14T20:19:02.549Z","avatar_url":"https://github.com/metrumresearchgroup.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=metrumresearchgroup_gridengine_prometheus\u0026metric=alert_status)](https://sonarcloud.io/dashboard?id=metrumresearchgroup_gridengine_prometheus)\n\n[![Coverage Status](https://coveralls.io/repos/github/metrumresearchgroup/gridengine_prometheus/badge.svg?branch=master)](https://coveralls.io/github/metrumresearchgroup/gridengine_prometheus?branch=master)\n\n# Prometheus Exporter for Sun Grid Engine\n\nThis is a Prometheus exporter for the Sun Grid Engine meant to be run on your master nodes. It utilizes Qstat on the command line and uses the gogridengine library to serialize its XML output into native objects and then format for prometheus consumption. As long as the path for the executing user contains qstat, everything should work as the command execution inherits everything from the user. \n\n# Environment Variables\n`TEST`: `true` for test mode which will not attempt to reach out to the command line but will rather generate data. \n`LISTEN_PORT` : Defines what port the application should listen on\n\n# Running\nThere is one optional flag available to the binary, which is `--pidfile`. This should indicate where the pidfile for the application should be placed, and primarily services to facilitate service managers such as uptstart or systemd.\n\n## Default\n`./gridengine_prometheus`\nThis will run the application on the default port (9081)\n\n`./gridengine_prometheus --pidfile /tmp/pid.pid`\n\nWill run the application on the default port and write it's PID into a file located at `/tmp/pid.pid`\n\n## Opinions\n\nThis exporter has various opinions about how data is reported, primarily based on the XML structures from Qstat:\n\n* All metrics have a \"hostname\" hey\n    * This hostname is derivative of the Qlist Name (split by @ symbol)\n    * This facilitates PromQL statements for locating / isolating queries by host\n* Hostname is the primary identifier for host level metrics. This includes:\n    * Load Averages\n    * Resource Values:\n        * mem_free\n        * swap_used\n        * cpu ...\n* Job Details are recorded with the following labels:\n    * hostname\n    * Job Jumber\n    * Job Name\n    * Owner\n* Values that fit into this category are:\n    * State (Running = 1 , Not = 0)\n    * Priority\n    * Slots\n\nWith these labels, it should be easy to create variable driven dashboards to allow scientists to drill down to their specific jobs across any or all hosts at a time. \n\n## Testing\nFor the sake of testing, there's an environment variable called `TEST` that if set to `\"true\"`, will cause the collector to bypass trying to run the command line output and generate XML (2 instances) with some static and some invalid information. The invalid information is for unit testing purposes, but also to ensure that base values are still reported by the collector. This is exceptionally beneficial if you're looking to write custom grafana dashboards, as you can setup prometheus, the collector, and grafana in a local compose instance to basically consume generated data. \n\n## Grafana\n\nIf you want to work with grafana or try the existing dashboards, the docker-compose file in this directory will setup :\n\n* Prometheus\n* Grafana\n* Exporter\n\nThe exporter will be running in test mode and will generate a mix of static / non-static content. Prometheus is auto configured to scrape the exporter by name, and grafana is set with the magical username / pass of \"admin / admin\" although it'll make you change it on first setup. \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmetrumresearchgroup%2Fgridengine_prometheus","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmetrumresearchgroup%2Fgridengine_prometheus","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmetrumresearchgroup%2Fgridengine_prometheus/lists"}