Skip to content

webdevops/github-workflow-exporter

Repository files navigation

Github Workflows exporter

license DockerHub Quay.io Artifact Hub

Prometheus exporter for GitHub workflow runs

Usage

Usage:
  github-workflow-exporter [OPTIONS]

Application Options:
      --log.debug                      debug mode [$LOG_DEBUG]
      --log.devel                      development mode [$LOG_DEVEL]
      --log.json                       Switch log output to json format [$LOG_JSON]
      --github.enterprise.url=         GitHub enterprise url (self hosted) [$GITHUB_ENTERPRISE_URL]
      --github.organization=           GitHub organization name [$GITHUB_ORGANIZATION]
      --github.token=                  GitHub token auth: PAT [$GITHUB_TOKEN]
      --github.app.id=                 GitHub app auth: App ID [$GITHUB_APP_ID]
      --github.app.installationid=     GitHub app auth: App installation ID [$GITHUB_APP_INSTALLATION_ID]
      --github.app.keyfile=            GitHub app auth: Private key (path to file) [$GITHUB_APP_PRIVATE_KEY]
      --github.repository.customprops= GitHub repository custom properties as labels for repos and workflows (space delimiter)
                                       [$GITHUB_REPOSITORY_CUSTOMPROPS]
      --github.workflows.timeframe=    GitHub workflow timeframe for fetching (default: 168h) [$GITHUB_WORKFLOWS_TIMEFRAME]
      --scrape.time=                   Scrape time (default: 30m) [$SCRAPE_TIME]
      --cache.path=                    Cache path (to folder, file://path... or azblob://storageaccount.blob.core.windows.net/containername or
                                       k8scm://{namespace}/{configmap}}) [$CACHE_PATH]
      --server.bind=                   Server address (default: :8080) [$SERVER_BIND]
      --server.timeout.read=           Server read timeout (default: 5s) [$SERVER_TIMEOUT_READ]
      --server.timeout.write=          Server write timeout (default: 10s) [$SERVER_TIMEOUT_WRITE]

Help Options:
  -h, --help                           Show this help message

Authentication

Supports either PAT token auth via env var GITHUB_TOKEN or GitHub App auth with env vars GITHUB_APP_ID (id), GITHUB_APP_INSTALLATION_ID (id) and GITHUB_APP_PRIVATE_KEY (file path).

GOMEMLIMIT

automemlimit is used for automatically detecting GOMEMLIMIT inside containers.

Env var Description
AUTOMEMLIMIT=off Disabling auto memlimit
GOMEMLIMIT=0.9 Limits golang memory to 90% of system/cgroup memory (keep some mem available to system; default is 0.9)

Metrics

Metric Description
github_repository_info Repository info metric
github_workflow_info Workflow info metric
github_workflow_latest_run Latest workflow run with conclusion as label
github_workflow_latest_run_timestamp_seconds Latest workflow run with timestamp as value
github_workflow_consecutive_failed_runs Count of consecutive failed runs per workflow