forked from gitea/gitea
1
0
Fork 0
新一代DevSecOps平台,包括项目管理,代码托管,代码审查,安全扫描,CI/CD,制品库等功能,把Github搬回家。
Go to file
Vitaly Zhuravlev 2cd1479e77
Add grafana gitea-mixin (#17758)
This PR adds gitea-mixin, configurable Grafana dashboards (and potentially prometheus alerts+recording rules) based on Gitea [metrics](https://docs.gitea.io/en-us/config-cheat-sheet/#metrics-metrics).

The overview dashboard is described using jsonnet and grafonnet library: https://grafana.github.io/grafonnet-lib/

Mixins help to define dashboard and alerts as code so they can be collaboratively improved by the users.

![image](https://user-images.githubusercontent.com/14870891/142862822-fe57b384-c74a-4103-8548-033e92f90751.png)

__
## Generate config files

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

```bash
go get github.com/jsonnet-bundler/jsonnet-bundler/cmd/jb
go get github.com/google/go-jsonnet/cmd/jsonnet
# 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 get github.com/monitoring-mixins/mixtool/cmd/mixtool
go get github.com/google/go-jsonnet/cmd/jsonnetfmt
```

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` (for example, list of Gitea metrics to be shown under stats can be adjusted). if required and then build JSON dashboard files for Grafana:

```bash
make
```


For more about mixins, please see:
https://github.com/monitoring-mixins/docs
https://www.youtube.com/watch?v=GDdnL5R_l-Y* add gitea mixin

* remove alerts/rules

* gitea-mixin: add interval factor of 1/2 to remove duplicated change events

* gitea-mixin: fix changes panel, add aggregation interval for changes panel

* gitea-mixin: add totals singlestat

* gitea mixin: switch change graph to timeseries type

* add color overrides for issue labels

* bump grafonnet version

* gitea-mixin: convert graphs to timeseries

* gitea-mixin:  make fmt

* gitea-mixin: add .PHONE in Makefile

* gitea-mixin: add time configration

* gitea-mixin: make fmt and collapse addPanel grid

* gitea-mixin: add static ids for shared panels

* gitea-mixin: add flags showIssuesByRepository, showIssuesByLabel to show/hide corresponding panels

* gitea-mixin: update aggregation interval

* gitea-mixin: update defaults

* gitea-mixin: update panel names

* rename dir to gitea-monitoring-mixin

* gitea-mixin: add gitea_issues_open, gitea_issues_closed metrics

* gitea-mixin: update visible name for datasource

* gitea-mixin: update README

Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
Co-authored-by: zeripath <art27@cantab.net>
2021-12-20 07:52:33 +00:00
.gitea Issue template form (#16349) 2021-09-15 20:33:13 +03:00
.github hide note message for pull request template (#17529) 2021-11-02 22:43:16 -05:00
assets Clean up SVG (#13680) 2020-12-17 16:33:53 -05:00
build Update JS dependencies, adjust eslint config (#17904) 2021-12-04 14:43:14 +08:00
cmd Simplify parameter types (#18006) 2021-12-20 04:41:31 +00:00
contrib Add grafana gitea-mixin (#17758) 2021-12-20 07:52:33 +00:00
custom/conf Make AvatarRenderedSizeFactor configurable and set it to 3 (#17951) 2021-12-16 10:18:38 +08:00
docker Use shadowing script for docker (#17846) 2021-12-01 18:08:27 +00:00
docs Add option to define refs in issue templates (#17842) 2021-12-17 21:29:09 +00:00
integrations Simplify parameter types (#18006) 2021-12-20 04:41:31 +00:00
models Simplify parameter types (#18006) 2021-12-20 04:41:31 +00:00
modules Simplify parameter types (#18006) 2021-12-20 04:41:31 +00:00
options Abort merge if head has been updated before pressing merge (#18032) 2021-12-20 08:32:54 +08:00
public Add migrate from Codebase (#16768) 2021-12-02 23:24:02 +01:00
routers Simplify parameter types (#18006) 2021-12-20 04:41:31 +00:00
services Simplify parameter types (#18006) 2021-12-20 04:41:31 +00:00
snap Removable media support (#16136) 2021-06-11 14:51:05 -04:00
templates Abort merge if head has been updated before pressing merge (#18032) 2021-12-20 08:32:54 +08:00
tools Add bundle download for repository (#14538) 2021-08-24 11:47:09 -05:00
vendor Update chroma (#18033) 2021-12-20 02:49:38 +00:00
web_src Change <a> elements to underline on hover (#17898) 2021-12-18 05:29:00 +00:00
.air.toml Exclude from watching tests (#17744) 2021-11-22 05:17:21 -05:00
.changelog.yml Changelog for v1.15.0-rc1 (#16422) 2021-07-15 11:47:57 -04:00
.drone.yml no need for docker image mirror (#18031) 2021-12-19 16:53:15 -05:00
.editorconfig add well-known config for OIDC (#15355) 2021-04-15 22:32:00 -04:00
.eslintrc Update JS dependencies, adjust eslint config (#17904) 2021-12-04 14:43:14 +08:00
.gitattributes Set correct language for Dockerfile variants (#17999) 2021-12-16 04:52:01 -05:00
.gitignore Frontend refactor: move Vue related code from `index.js` to `components` dir, and remove unused codes. (#17301) 2021-10-15 10:35:26 +08:00
.golangci.yml Remove unnecessary variable assignments (#17695) 2021-11-18 09:33:06 +08:00
.ignore Fonts rework (#12114) 2020-07-06 11:56:54 +03:00
.lgtm refactor: ignore LGTM from author of pull request. (#3283) 2018-01-02 06:13:49 -06:00
.npmrc Stop packaging node_modules in release tarballs (#15273) 2021-04-09 01:08:14 -04:00
.revive.toml Avoid double imports (#17569) 2021-11-08 09:04:13 +02:00
.stylelintrc Update JS dependencies (#17611) 2021-11-11 09:52:16 +08:00
BSDmakefile Add BSDmakefile to prevent errors when `make` is called under FreeBSD (#4446) 2018-07-16 20:45:51 +02:00
CHANGELOG.md Changelog for v1.15.7 (#17871) (#17889) 2021-12-02 20:49:59 -05:00
CONTRIBUTING.md [API] generalize list header (#16551) 2021-08-12 14:43:08 +02:00
DCO follow the advisor: add DCO and some improvements 2016-11-04 16:43:41 +08:00
Dockerfile Use shadowing script for docker (#17846) 2021-12-01 18:08:27 +00:00
Dockerfile.rootless Use shadowing script for docker (#17846) 2021-12-01 18:08:27 +00:00
LICENSE Fix typo 2016-11-08 08:42:05 +01:00
MAINTAINERS Remove me from the maintainers (#17599) 2021-11-09 22:40:16 +08:00
Makefile Add new JS linter rules (#17699) 2021-11-22 16:19:01 +08:00
README.md Refactor repo-legacy.js, remove messy global variables. Fix errors. (#17646) 2021-11-19 00:45:00 +08:00
README_ZH.md Fix report card link (#16885) 2021-08-31 01:06:30 +02:00
SECURITY.md Add security policy to repo (#12536) 2020-08-19 17:15:55 +01:00
build.go Add bundle download for repository (#14538) 2021-08-24 11:47:09 -05:00
go.mod Update chroma (#18033) 2021-12-20 02:49:38 +00:00
go.sum Update chroma (#18033) 2021-12-20 02:49:38 +00:00
jest.config.js Add copy button to markdown code blocks (#17638) 2021-11-16 16:16:05 +08:00
main.go Dump github/gitlab/gitea repository data to a local directory and restore to gitea (#12244) 2020-12-27 11:34:19 +08:00
package-lock.json Bump swagger-ui-dist from 4.1.2 to 4.1.3 (#17965) 2021-12-12 22:57:35 -05:00
package.json Bump swagger-ui-dist from 4.1.2 to 4.1.3 (#17965) 2021-12-12 22:57:35 -05:00
webpack.config.js Update JS dependencies (#17357) 2021-10-19 15:23:58 +08:00

README.md

Gitea

Gitea - Git with a cup of tea

View the chinese version of this document

Purpose

The goal of this project is to make the easiest, fastest, and most painless way of setting up a self-hosted Git service. Using Go, this can be done with an independent binary distribution across all platforms which Go supports, including Linux, macOS, and Windows on x86, amd64, ARM and PowerPC architectures. Want to try it before doing anything else? Do it with the online demo! This project has been forked from Gogs since 2016.11 but changed a lot.

Building

From the root of the source tree, run:

TAGS="bindata" make build

or if sqlite support is required:

TAGS="bindata sqlite sqlite_unlock_notify" make build

The build target is split into two sub-targets:

  • make backend which requires Go 1.16 or greater.
  • make frontend which requires Node.js LTS or greater and Internet connectivity to download npm dependencies.

When building from the official source tarballs which include pre-built frontend files, the frontend target will not be triggered, making it possible to build without Node.js and Internet connectivity.

Parallelism (make -j <num>) is not supported.

More info: https://docs.gitea.io/en-us/install-from-source/

Using

./gitea web

NOTE: If you're interested in using our APIs, we have experimental support with documentation.

Contributing

Expected workflow is: Fork -> Patch -> Push -> Pull Request

NOTES:

  1. YOU MUST READ THE CONTRIBUTORS GUIDE BEFORE STARTING TO WORK ON A PULL REQUEST.
  2. If you have found a vulnerability in the project, please write privately to security@gitea.io. Thanks!

Translating

Translations are done through Crowdin. If you want to translate to a new language ask one of the managers in the Crowdin project to add a new language there.

You can also just create an issue for adding a language or ask on discord on the #translation channel. If you need context or find some translation issues, you can leave a comment on the string or ask on Discord. For general translation questions there is a section in the docs. Currently a bit empty but we hope fo fill it as questions pop up.

https://docs.gitea.io/en-us/translation-guidelines/

Crowdin

Further information

For more information and instructions about how to install Gitea, please look at our documentation. If you have questions that are not covered by the documentation, you can get in contact with us on our Discord server or create a post in the discourse forum.

We maintain a list of Gitea-related projects at gitea/awesome-gitea.
The hugo-based documentation theme is hosted at gitea/theme.
The official Gitea CLI is developed at gitea/tea.

Authors

Backers

Thank you to all our backers! 🙏 [Become a backer]

Sponsors

Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [Become a sponsor]

FAQ

How do you pronounce Gitea?

Gitea is pronounced /ɡɪti:/ as in "gi-tea" with a hard g.

Why is this not hosted on a Gitea instance?

We're working on it.

License

This project is licensed under the MIT License. See the LICENSE file for the full license text.

Screenshots

Looking for an overview of the interface? Check it out!

Dashboard User Profile Global Issues
Branches Web Editor Activity
New Migration Migrating Pull Request View
Pull Request Dark Diff Review Dark Diff Dark