Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add grafana gitea-mixin #17758

Merged
merged 24 commits into from
Dec 20, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
7a32f37
add gitea mixin
v-zhuravlev Nov 8, 2021
9d7f1b6
remove alerts/rules
v-zhuravlev Nov 22, 2021
8d78b7a
gitea-mixin: add interval factor of 1/2 to remove duplicated change e…
v-zhuravlev Nov 24, 2021
1246988
gitea-mixin: fix changes panel, add aggregation interval for changes …
v-zhuravlev Dec 13, 2021
6f6622a
gitea-mixin: add totals singlestat
v-zhuravlev Dec 13, 2021
f4a07bd
gitea mixin: switch change graph to timeseries type
v-zhuravlev Dec 13, 2021
e70fd58
add color overrides for issue labels
v-zhuravlev Dec 13, 2021
7ccd873
bump grafonnet version
v-zhuravlev Dec 13, 2021
55023bd
gitea-mixin: convert graphs to timeseries
v-zhuravlev Dec 13, 2021
1dcc141
gitea-mixin: make fmt
v-zhuravlev Dec 14, 2021
dc51d8f
gitea-mixin: add .PHONE in Makefile
v-zhuravlev Dec 14, 2021
7739dcb
gitea-mixin: add time configration
v-zhuravlev Dec 14, 2021
15c17ac
gitea-mixin: make fmt and collapse addPanel grid
v-zhuravlev Dec 14, 2021
c8b305f
gitea-mixin: add static ids for shared panels
v-zhuravlev Dec 15, 2021
74c4a8d
gitea-mixin: add flags showIssuesByRepository, showIssuesByLabel to s…
v-zhuravlev Dec 15, 2021
3b32e19
gitea-mixin: update aggregation interval
v-zhuravlev Dec 15, 2021
e549661
gitea-mixin: update defaults
v-zhuravlev Dec 15, 2021
493b4d6
gitea-mixin: update panel names
v-zhuravlev Dec 15, 2021
8d44068
rename dir to gitea-monitoring-mixin
v-zhuravlev Dec 15, 2021
b7b822c
gitea-mixin: add gitea_issues_open, gitea_issues_closed metrics
v-zhuravlev Dec 15, 2021
2a14eba
gitea-mixin: update visible name for datasource
v-zhuravlev Dec 15, 2021
a75b139
gitea-mixin: update README
v-zhuravlev Dec 15, 2021
e628e20
Merge branch 'main' into main
lunny Dec 16, 2021
102de09
Merge branch 'main' into main
zeripath Dec 20, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions contrib/gitea-monitoring-mixin/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
dashboards_out
vendor
31 changes: 31 additions & 0 deletions contrib/gitea-monitoring-mixin/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
JSONNET_FMT := jsonnetfmt -n 2 --max-blank-lines 1 --string-style s --comment-style s

.PHONY: all
all: build dashboards_out

vendor: jsonnetfile.json
jb install

.PHONY: build
build: vendor

.PHONY: fmt
fmt:
find . -name 'vendor' -prune -o -name '*.libsonnet' -print -o -name '*.jsonnet' -print | \
xargs -n 1 -- $(JSONNET_FMT) -i

.PHONY: lint
lint: build
find . -name 'vendor' -prune -o -name '*.libsonnet' -print -o -name '*.jsonnet' -print | \
while read f; do \
$(JSONNET_FMT) "$$f" | diff -u "$$f" -; \
done
mixtool lint mixin.libsonnet

dashboards_out: mixin.libsonnet config.libsonnet $(wildcard dashboards/*)
@mkdir -p dashboards_out
jsonnet -J vendor -m dashboards_out lib/dashboards.jsonnet

.PHONY: clean
clean:
rm -rf dashboards_out
33 changes: 33 additions & 0 deletions contrib/gitea-monitoring-mixin/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
# Gitea Mixin

Gitea Mixin is a set of configurable Grafana dashboards based on the metrics exported by the Gitea built-in metrics endpoint.

## Generate config files

You can manually generate dashboards, but first you should install some tools:

```bash
go install github.com/jsonnet-bundler/jsonnet-bundler/cmd/jb@latest
go install github.com/google/go-jsonnet/cmd/jsonnet@latest
# or in brew: brew install go-jsonnet
```

For linting and formatting, you would also need `mixtool` and `jsonnetfmt` installed. If you
have a working Go development environment, it's easiest to run the following:

```bash
go install github.com/monitoring-mixins/mixtool/cmd/mixtool@latest
go install github.com/google/go-jsonnet/cmd/jsonnetfmt@latest
```

The files in `dashboards_out` need to be imported
into your Grafana server. The exact details will be depending on your environment.

Edit `config.libsonnet` if required and then build JSON dashboard files for Grafana:

```bash
make
```

For more advanced uses of mixins, see
https://github.com/monitoring-mixins/docs.
99 changes: 99 additions & 0 deletions contrib/gitea-monitoring-mixin/config.libsonnet
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
{
_config+:: {
local c = self,
dashboardNamePrefix: 'Gitea',
dashboardTags: ['gitea'],
dashboardPeriod: 'now-1h',
dashboardTimezone: 'default',
dashboardRefresh: '1m',

// please see https://docs.gitea.io/en-us/config-cheat-sheet/#metrics-metrics
// Show issue by repository metrics with format gitea_issues_by_repository{repository="org/repo"} 5.
// Requires Gitea 1.16.0 with ENABLED_ISSUE_BY_REPOSITORY set to true.
showIssuesByRepository: true,
// Show graphs for issue by label metrics with format gitea_issues_by_label{label="bug"} 2.
// Requires Gitea 1.16.0 with ENABLED_ISSUE_BY_LABEL set to true.
showIssuesByLabel: true,

// Requires Gitea 1.16.0.
showIssuesOpenClose: true,

// add or remove metrics from dashboard
giteaStatMetrics:
[
{
name: 'gitea_organizations',
description: 'Organizations',
},
{
name: 'gitea_teams',
description: 'Teams',
},
{
name: 'gitea_users',
description: 'Users',
},
{
name: 'gitea_repositories',
description: 'Repositories',
},
{
name: 'gitea_milestones',
description: 'Milestones',
},
{
name: 'gitea_stars',
description: 'Stars',
},
{
name: 'gitea_releases',
description: 'Releases',
},
]
+
if c.showIssuesOpenClose then
[
{
name: 'gitea_issues_open',
description: 'Issues opened',
},
{
name: 'gitea_issues_closed',
description: 'Issues closed',
},
] else
[
{
name: 'gitea_issues',
description: 'Issues',
},
],
//set this for using label colors on graphs
issueLabels: [
{
label: 'bug',
color: '#ee0701',
},
{
label: 'duplicate',
color: '#cccccc',
},
{
label: 'invalid',
color: '#e6e6e6',
},
{
label: 'enhancement',
color: '#84b6eb',
},
{
label: 'help wanted',
color: '#128a0c',
},
{
label: 'question',
color: '#cc317c',
},
],
},
}
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
(import 'overview.libsonnet')
Loading