This commit is contained in:
Tomáš Dvořák
2025-10-16 13:32:05 +02:00
commit 12cba639b9
663 changed files with 168914 additions and 0 deletions
+173
View File
@@ -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