Grafana Dashboards
Gitaly includes pre-built Grafana dashboards for monitoring performance on GitLab.com and self-managed instances.Overview Dashboard
The main overview dashboard provides high-level metrics across all Gitaly operations:- Overall RPC request rates
- Latency percentiles
- Error rates
- Resource utilization
Feature Request Rate Overview
For detailed analysis of specific features and RPC methods: View Features Overview DashboardEditing Dashboards
Use the Grafana web interface to customize dashboards:Tiled (Repeated) Dashboards
When editing tiled dashboards:- Edit only the first tile (top left)
- Settings from the first tile automatically apply to all other tiles
- Changes to any other tile will be lost
Drop-down Values
Dashboard drop-down menus (for GRPC method names, Prometheus jobs, etc.) use Prometheus queries:- Click the gear icon at the top of the dashboard
- Navigate to the ‘Templating’ section
- Edit the Prometheus queries as needed
Grafana templates use a combination of PromQL and Grafana-specific modifiers.
Prometheus Metrics
Gitaly exposes metrics via Prometheus for monitoring:- RPC request rates and latencies
- Git command execution times
- Repository access patterns
- Resource consumption (CPU, memory, disk I/O)
- Concurrency and rate limiting events
Backpressure Metrics
Metrics provide visibility into how concurrency and rate limits are being applied. See the backpressure configuration page for details on limit settings. For comprehensive metric details, refer to the GitLab Documentation.Ad-hoc Latency Analysis with ELK
For more accurate latency percentiles than Prometheus exponential buckets provide:- Go to ELK
- Click ‘Visualize’
- Search for
gitaly rpc latency example - Edit the query as needed for your analysis
Distributed Tracing
Gitaly supports distributed tracing through LabKit using OpenTracing APIs.Enabling Tracing
By default, no tracing implementation is linked. Enable tracing by compiling with build tags:Supported Providers
- Jaeger - Recommended for most deployments
- Other OpenTracing-compatible providers via LabKit
Configuration
Configure tracing via theGITLAB_TRACING environment variable: