Current Version: v1.0.0
FuncTrace Analyzer is a professional Go function tracing analysis tool that helps developers deeply understand function call relationships and performance bottlenecks through visualization technologies. The system combines the efficient Kratos framework backend with a dynamic Vue.js frontend, providing a complete solution from data collection to 3D visualization.
- Intelligent Function Tracing - Real-time goroutine execution path capture
- Multi-dimensional Analysis - Time dimension, call depth, resource consumption analysis
- Interactive Visualization - Dynamic zoomable Mermaid flowcharts + parameter heatmaps
- Smart Diagnostics - Performance bottleneck prediction based on historical data
- Cross-platform Support - Lightweight SQLite storage solution
- Low-overhead Monitoring - Under 5% performance overhead
- Zero-Intrusive Integration - No code modification required
- Millisecond Response - Fast query for 10M+ call chains
- Production-ready - Rigorously stress-tested
| Domain | Technologies |
|---|---|
| Backend | Kratos (Microservices) |
| Frontend | Vue3 + Composition API |
| Visualization | Mermaid.js + ECharts |
| Storage | SQLite + WAL Mode |
| Search | fuse.js fuzzy search |
| Deployment | Docker + Kubernetes-ready |
- Description: Search and display goroutines related to specific functions
- Component:
TraceViewer.vue - Details:
- Dynamic filtering with input and dropdown
- API integration for GID retrieval
- Fuzzy search using
fuse.js
- Description: Detailed trace analysis for specific GIDs
- Component:
TraceDetails.vue - Details:
- Parameter inspection capabilities
- Interactive timeline navigation
- Description: Visualize function call relationships
- Component:
MermaidViewer.vue - Details:
- Mermaid.js rendering
- Zoom/drag support
- Description: SQLite data storage/query
- Details:
Datastruct encapsulation- CRUD operations for trace data
- Description: Cross-origin resource sharing
- Details: CORS middleware configuration
.
├── cmd
│ └── server
│ └── server.go # Server entry
│ └── rewrite.go # Rewrite logic
│ └── main.go # Main entry
├── internal
│ ├── data
│ │ └── data.go # Database operations
│ ├── service
│ │ └── analysis.go # Business logic
│ └── server
│ └── server.go # Server config
├── functrace
│ └── trace.go # Tracing implementation
├── static
│ └── analysis
│ ├── src
│ │ ├── components
│ │ │ ├── MermaidViewer.vue
│ │ │ ├── TraceDetails.vue
│ │ │ └── TraceViewer.vue
│ │ ├── App.vue
│ │ └── main.js
│ └── vue.config.js # Vue config
└── api
└── analysis
└── v1
├── analysis.proto # gRPC proto
└── analysis_grpc.pb.go # Generated code
- Go 1.19+
- Node.js 16+
- SQLite3 3.36+
# Clone repository
git clone https://github.com/toheart/goanalysis.git
# Start server
go run cmd/server/server.gocd frontWeb
# Install dependencies
npm install
# Start development server
npm run serve| Endpoint | Method | Description |
|---|---|---|
/api/gids |
GET | Get all GIDs |
/api/functions |
GET | List all functions |
/api/gids/function |
POST | Find GIDs by function |
/api/traces/{gid} |
GET | Get trace by GID |
/api/params/{id} |
GET | Get parameters by ID |
/api/traces/{gid}/mermaid |
GET | Get Mermaid diagram data |
We follow Gitflow workflow:
- Create feature branch:
git checkout -b feature/your-feature - Commit atomic changes (follow Conventional Commits)
- Write unit tests (≥80% coverage)
- Update documentation
- Create PR to
developbranch
| Version | Date | Milestone |
|---|---|---|
| v1.0.0 | 2025-03-09 | Official release |
| v0.9.0 | 2025-02-25 | Distributed tracing support |
| v0.8.0 | 2025-02-18 | Parameter heatmap analysis |
- Maintainer: toheart
- Issues: GitHub Issues
- WeChat: 小唐云原生
FuncTrace Analyzer - Powered by Go+Vue Tech Stack
📌 Last Updated: 2025-03-09 CST