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.  __ ## 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>
This commit is contained in:
		
							parent
							
								
									ff2fd08228
								
							
						
					
					
						commit
						2cd1479e77
					
				
					 12 changed files with 668 additions and 0 deletions
				
			
		
							
								
								
									
										33
									
								
								contrib/gitea-monitoring-mixin/README.md
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								contrib/gitea-monitoring-mixin/README.md
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -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.
 | 
			
		||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue