mirror of
				https://github.com/fluxcd/flux2.git
				synced 2025-11-04 03:46:24 +08:00 
			
		
		
		
	Add guide for pprof endpoints
Signed-off-by: Hidde Beydals <hello@hidde.co>
This commit is contained in:
		
							
								
								
									
										35
									
								
								docs/dev-guides/debugging.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										35
									
								
								docs/dev-guides/debugging.md
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,35 @@
 | 
				
			|||||||
 | 
					# Advanced debugging
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					This guide covers more advanced debugging topics such as collecting
 | 
				
			||||||
 | 
					runtime profiling data from GitOps Toolkit components.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					As a user, this page normally should be a last resort, but you may
 | 
				
			||||||
 | 
					be asked by a maintainer to share a [collected profile](#collecting-a-profile)
 | 
				
			||||||
 | 
					to debug e.g. performance issues.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Pprof
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The [GitOps Toolkit components](../components/index.md) serve [`pprof`](https://golang.org/pkg/net/http/pprof/)
 | 
				
			||||||
 | 
					runtime profiling data on their metrics HTTP server (default `:8080`).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Endpoints
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					| Endpoint    | Path                   |
 | 
				
			||||||
 | 
					|-------------|------------------------|
 | 
				
			||||||
 | 
					| Index       | `/debug/pprof/`        |
 | 
				
			||||||
 | 
					| CPU profile | `/debug/pprof/profile` |
 | 
				
			||||||
 | 
					| Symbol      | `/debug/pprof/symbol`  |
 | 
				
			||||||
 | 
					| Trace       | `/debug/pprof/trace`   |
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Collecting a profile
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					To collect a profile, port-forward to the component's metrics endpoint and
 | 
				
			||||||
 | 
					collect the data from the [endpoint](#endpoints) of choice:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					```console
 | 
				
			||||||
 | 
					$ kubectl port-forward -n <namespace> deploy/<component> 8080
 | 
				
			||||||
 | 
					$ curl -Sk -v http://localhost:8080/debug/pprof/heap > heap.out
 | 
				
			||||||
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The collected profile [can be analyzed using `go`](https://blog.golang.org/pprof),
 | 
				
			||||||
 | 
					or shared with one of the maintainers.
 | 
				
			||||||
		Reference in New Issue
	
	Block a user