github-developer-exporter

command module
v0.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 4, 2020 License: MIT Imports: 12 Imported by: 0

README

Documentation

github-developer-exporter is a prometheus exporter which talks to GitHub or GitHub Enterprise API to get information about Organization, Repository, Issue and Pull Request connected to Assignee, Requested Reviewers, State etc.

Why do we create it ?

One of the problem in developer teams is that someone has a lot of tasks comparing with other members. Unbalanced assign of issues and of reviews makes them less productive. And we have no solution or tool to track time-series task assignee or requested reviewers. So we create it to check developer team conditions through time-series analysis via prometheus.

What I can do

We can visualize time-series Organization, Repository, Issue or Pull Request with labels as a Prometheus Exporter.

Prometheus is a open source systems monitoring with time series data. Grafana is a open source analytics and monitoring solution for every database.

Installation

This exporter is written in Go, making it easy to build and deploy as a static binary. You can clone this repository and build yourself or pull image from DockerHub.

Environment Variable

Name Description
PORT server port. default: 8888
MAX_WORKER background worker num. default: 2
MAX_QUEUE background queue size. default: 5
GITHUB_TOKEN token for GitHub API.
GITHUB_ORGS organization name. if you want to check multiple organizations, you can set them with comma. e.g. "hoge,fuga"
GITHUB_URL If GH:E, you should set your gh:e endpoint. default: https://api.github.com/
GITHUB_INTERVAL you should set it becaulse of API rate limit. default: 30 (minute)

Metrics

Metric name Metric type Labels/tags Status
org_info gauge login=<\login-field>
name=<\organization-name>
url=<url>
email=<\organization-email>
blog=<\blog-url>
created_at=<\created timestamp>
updated_at=<\last update timestamp>
STABLE
org_total_repos_count gauge login=<\login-field>
name=<\organization-name>
url=<\url>
email=<\organization-email>
blog=<\blog-url>
created_at=<\created timestamp>
updated_at=<\last update timestamp>
STABLE
org_public_repos_count gauge login=<\login-field>
name=<\organization-name>
url=<\url>
email=<\organization-email>
blog=<\blog-url>
created_at=<\created timestamp>
updated_at=<\last update timestamp>
STABLE
org_private_repos_count gauge login=<\login-field>
name=<\organization-name>
url=<\url>
email=<\organization-email>
blog=<\blog-url>
created_at=<\created timestamp>
updated_at=<\last update timestamp>
STABLE
repo_info gauge org_name=<\organization-name>
name=<\repository-name>
full_name=<\fullname>
owner=<\organization-owner>
url=<\repository-url>
default_branch=<\default-branch>
archived=<\true or false>
laungage=<\mainly used laungage>
created_at=<\created timestamp>
updated_at=<\last updated timestamp>
pushed_at=<\last pushed timestamp>
STABLE
repo_open_issue_count gauge org_name=<\organization-name>
name=<\repository-name>
full_name=<\fullname>
owner=<\organization-owner>
url=<\repository-url>
default_branch=<\default-branch>
archived=<\true or false>
laungage=<\mainly used laungage>
created_at=<\created timestamp>
updated_at=<\last updated timestamp>
pushed_at=<\last pushed timestamp>
STABLE
issue_info gauge org_name=<\organization-name>
repo_name=<\repository-name>
state=<\open or close>
title=<\issue-title>
created_at=<\creation timestamp>
updated_at=<\last updated timestamp>
closed_at=<\If not closed, it returns "">
assignee=<\if not assigned, it returns "">
label=<\labels joined with comma. e.g. "good first issue,help wanted">
STABLE
pull_request_info gauge org_name=<\organization-name>
repo_name=<\repository-name>
state=<\open or close\>
title=<\issue-title>
created_at=<\creation timestamp>
updated_at=<\last updated timestamp>
closed_at=<\If not closed, it returns "".>
assignee=<\If not assigned, it returns "".>
reviewer=<\If someone finished review, it does not return them.>
label=<labels joined with comma. e.g. "good first issue,help wanted">
STABLE

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL