mirror of
https://github.com/Dvorinka/MyClubServer.git
synced 2026-06-04 02:32:57 +00:00
upload
This commit is contained in:
@@ -0,0 +1,173 @@
|
||||
# Analytics Graph Fix - Testing Instructions
|
||||
|
||||
## What Was Fixed
|
||||
|
||||
### 1. Frontend Improvements
|
||||
- **Added error detection**: The page now detects when Umami returns no data
|
||||
- **Visual feedback**: Orange warning banner appears when analytics are not configured
|
||||
- **Empty state display**: Graph shows a clear message when no data is available
|
||||
- **Better error messages**: Czech language messages explaining the issue
|
||||
|
||||
### 2. Backend Improvements
|
||||
- **Enhanced logging**: Detailed logs at every step of Umami connection
|
||||
- **Auto-detection**: System automatically finds the first Umami website if UMAMI_WEBSITE_ID is empty
|
||||
- **Better error handling**: Graceful fallback when Umami is unreachable
|
||||
|
||||
## How to Test
|
||||
|
||||
### Step 1: Restart Backend
|
||||
Restart your backend to apply the changes:
|
||||
|
||||
```bash
|
||||
# If using Docker:
|
||||
docker-compose restart backend
|
||||
|
||||
# Or rebuild if needed:
|
||||
docker-compose up -d --build backend
|
||||
|
||||
# If running locally:
|
||||
make run
|
||||
# or
|
||||
go run main.go
|
||||
```
|
||||
|
||||
### Step 2: Watch Backend Logs
|
||||
Open a terminal and watch the logs:
|
||||
|
||||
```bash
|
||||
# Docker:
|
||||
docker-compose logs -f backend
|
||||
|
||||
# Local:
|
||||
# Logs will appear in the terminal where you run the server
|
||||
```
|
||||
|
||||
### Step 3: Access Analytics Page
|
||||
1. Open your browser
|
||||
2. Go to: `http://localhost:3000/admin/analytika` (or your frontend URL)
|
||||
3. Log in as admin if needed
|
||||
|
||||
### Step 4: Observe the Behavior
|
||||
|
||||
#### Scenario A: Umami is Properly Connected
|
||||
You should see:
|
||||
- **Backend logs**:
|
||||
```
|
||||
[INFO] UMAMI_WEBSITE_ID is empty, attempting to auto-detect...
|
||||
[INFO] Attempting to get default Umami website ID from https://umami.tdvorak.dev
|
||||
[INFO] Successfully authenticated with Umami at https://umami.tdvorak.dev
|
||||
[INFO] Found default Umami website: ID=xxxxx, Name=..., Domain=...
|
||||
[INFO] Auto-detected and cached Umami website ID: xxxxx
|
||||
[INFO] Using Umami website ID: xxxxx
|
||||
[INFO] Successfully fetched Umami stats for websiteID=xxxxx (days=0)
|
||||
```
|
||||
|
||||
- **Frontend display**:
|
||||
- Statistics cards showing numbers (may be 0 if no traffic yet)
|
||||
- Graph displaying page views (or empty state if no data)
|
||||
- Country flags showing visitor locations
|
||||
|
||||
#### Scenario B: No Data Yet (Normal for New Sites)
|
||||
You should see:
|
||||
- **Backend logs**: Successful connection messages
|
||||
- **Frontend display**:
|
||||
- Orange warning banner: "Analytika není k dispozici"
|
||||
- Message: "Umami není správně nakonfigurováno nebo ještě nebyly zaznamenány žádné návštěvy"
|
||||
- Empty graph with "Žádná data pro zobrazení"
|
||||
|
||||
#### Scenario C: Umami Connection Failed
|
||||
You should see:
|
||||
- **Backend logs**:
|
||||
```
|
||||
[ERROR] Failed to resolve Umami website ID: ...
|
||||
[WARN] No Umami websites found in instance at https://umami.tdvorak.dev
|
||||
```
|
||||
|
||||
- **Frontend display**:
|
||||
- Orange warning banner with error message
|
||||
- All statistics showing 0
|
||||
- Empty graph
|
||||
|
||||
### Step 5: Generate Test Traffic (Optional)
|
||||
To populate the analytics with data:
|
||||
|
||||
1. Open your website in multiple tabs/browsers
|
||||
2. Navigate to different pages
|
||||
3. Wait 2-5 minutes for Umami to process the data
|
||||
4. Refresh the analytics page
|
||||
5. You should now see data in the graphs
|
||||
|
||||
## Expected Log Output (Success Case)
|
||||
|
||||
```
|
||||
2025-01-14 13:45:23 [INFO] UMAMI_WEBSITE_ID is empty, attempting to auto-detect...
|
||||
2025-01-14 13:45:23 [INFO] Attempting to find Umami website by domain: localhost
|
||||
2025-01-14 13:45:23 [INFO] Attempting to get default Umami website ID from https://umami.tdvorak.dev
|
||||
2025-01-14 13:45:23 [INFO] Successfully authenticated with Umami at https://umami.tdvorak.dev (new token issued, expires at 2025-01-15 12:45:23)
|
||||
2025-01-14 13:45:24 [INFO] Found default Umami website: ID=a1b2c3d4-e5f6-7890-abcd-ef1234567890, Name=My Fotbal Club, Domain=fotbalclub.example.com
|
||||
2025-01-14 13:45:24 [INFO] Auto-detected and cached Umami website ID: a1b2c3d4-e5f6-7890-abcd-ef1234567890
|
||||
2025-01-14 13:45:24 [INFO] Using Umami website ID: a1b2c3d4-e5f6-7890-abcd-ef1234567890
|
||||
2025-01-14 13:45:25 [INFO] Successfully fetched Umami stats for websiteID=a1b2c3d4-e5f6-7890-abcd-ef1234567890 (days=0)
|
||||
2025-01-14 13:45:25 [INFO] Successfully fetched 0 Umami metrics (websiteID=a1b2c3d4-e5f6-7890-abcd-ef1234567890, type=url, days=0)
|
||||
```
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Issue: Backend logs show "No websites found"
|
||||
**Fix**: Log into Umami (`https://umami.tdvorak.dev`) and create a website:
|
||||
1. Click "Add Website"
|
||||
2. Enter name: "Fotbal Club"
|
||||
3. Enter domain: your website domain
|
||||
4. Click "Save"
|
||||
5. Restart backend
|
||||
|
||||
### Issue: Backend logs show "Authentication failed"
|
||||
**Fix**: Check credentials in `.env`:
|
||||
```env
|
||||
UMAMI_URL=https://umami.tdvorak.dev
|
||||
UMAMI_USERNAME=admin
|
||||
UMAMI_PASSWORD=eevRQ6h3G@!c#y4A1T
|
||||
```
|
||||
|
||||
### Issue: Backend logs show connection timeout
|
||||
**Fix**:
|
||||
1. Check if Umami is running: `curl https://umami.tdvorak.dev`
|
||||
2. Check firewall/network settings
|
||||
3. Verify UMAMI_URL is correct
|
||||
|
||||
### Issue: Graph shows but says "Žádná data"
|
||||
**Fix**: This is normal! It means:
|
||||
- Umami is connected ✓
|
||||
- Website ID is detected ✓
|
||||
- But no traffic has been recorded yet
|
||||
- Solution: Visit your website and wait a few minutes
|
||||
|
||||
## Files Modified
|
||||
|
||||
1. **frontend/src/pages/admin/AnalyticsAdminPage.tsx**
|
||||
- Added error detection and display
|
||||
- Added empty state for graphs
|
||||
- Better visual feedback
|
||||
|
||||
2. **internal/controllers/umami_controller.go**
|
||||
- Enhanced logging at each step
|
||||
- Better error messages
|
||||
- Improved website ID resolution
|
||||
|
||||
3. **internal/services/umami_service.go**
|
||||
- Added detailed logging for authentication
|
||||
- Better error messages for website detection
|
||||
|
||||
## Next Steps After Successful Test
|
||||
|
||||
1. **Optional**: Set `UMAMI_WEBSITE_ID` in `.env` to avoid auto-detection on every restart
|
||||
2. Monitor backend logs for any Umami-related errors
|
||||
3. Check analytics page periodically to see real traffic data
|
||||
4. Share the Umami dashboard URL with your team for detailed analytics
|
||||
|
||||
## Support
|
||||
|
||||
If you continue to experience issues:
|
||||
1. Check the full backend logs
|
||||
2. Verify Umami is accessible
|
||||
3. Review `ANALYTICS_GRAPH_FIX.md` for detailed solutions
|
||||
Reference in New Issue
Block a user