单目3D初始代码
This commit is contained in:
355
docs/en/platform/deploy/monitoring.md
Executable file
355
docs/en/platform/deploy/monitoring.md
Executable file
@@ -0,0 +1,355 @@
|
||||
---
|
||||
comments: true
|
||||
description: Monitor deployed YOLO models on Ultralytics Platform with real-time metrics, request logs, and performance dashboards.
|
||||
keywords: Ultralytics Platform, monitoring, metrics, logs, deployment, performance, YOLO, observability
|
||||
---
|
||||
|
||||
# Monitoring
|
||||
|
||||
[Ultralytics Platform](https://platform.ultralytics.com) provides monitoring for deployed endpoints. Track request metrics, view logs, and check health status with automatic polling.
|
||||
|
||||

|
||||
|
||||
## Deployments Dashboard
|
||||
|
||||
The `Deploy` page in the sidebar serves as the monitoring dashboard for all your deployments. It combines the world map, overview metrics, and deployment management in one view. See [Dedicated Endpoints](endpoints.md) for creating and managing deployments.
|
||||
|
||||
```mermaid
|
||||
graph TB
|
||||
subgraph Dashboard
|
||||
Map[World Map] --- Cards[Overview Cards]
|
||||
Cards --- List[Deployments List]
|
||||
end
|
||||
subgraph "Per Deployment"
|
||||
Metrics[Metrics Row]
|
||||
Health[Health Check]
|
||||
Logs[Logs Tab]
|
||||
Code[Code Tab]
|
||||
Predict[Predict Tab]
|
||||
end
|
||||
List --> Metrics
|
||||
List --> Health
|
||||
List --> Logs
|
||||
List --> Code
|
||||
List --> Predict
|
||||
|
||||
style Dashboard fill:#f5f5f5,color:#333
|
||||
style Map fill:#2196F3,color:#fff
|
||||
style Cards fill:#FF9800,color:#fff
|
||||
style List fill:#4CAF50,color:#fff
|
||||
```
|
||||
|
||||
### Overview Cards
|
||||
|
||||
Four summary cards at the top of the page show:
|
||||
|
||||

|
||||
|
||||
| Metric | Description |
|
||||
| ------------------------ | ----------------------------- |
|
||||
| **Total Requests (24h)** | Requests across all endpoints |
|
||||
| **Active Deployments** | Currently running endpoints |
|
||||
| **Error Rate (24h)** | Percentage of failed requests |
|
||||
| **P95 Latency (24h)** | 95th percentile response time |
|
||||
|
||||
!!! warning "Error Rate Alert"
|
||||
|
||||
The error rate card highlights in red when the rate exceeds 5%. Check the `Logs` tab on individual deployments to diagnose errors.
|
||||
|
||||
### World Map
|
||||
|
||||
The interactive world map shows:
|
||||
|
||||
- **Region pins** for all 43 available regions
|
||||
- **Green pins** for deployed regions
|
||||
- **Animated blue pins** for regions with active deployments in progress
|
||||
- **Pin size** varies based on deployment status and latency
|
||||
|
||||

|
||||
|
||||
### Deployments List
|
||||
|
||||
Below the overview cards, the deployments list shows all endpoints across your projects. Use the view mode toggle to switch between:
|
||||
|
||||
| View | Description |
|
||||
| ----------- | ---------------------------------------------------------------------------- |
|
||||
| **Cards** | Full detail cards with metrics, logs, code, and predict tabs |
|
||||
| **Compact** | Grid of smaller cards (1-4 columns) with key metrics |
|
||||
| **Table** | DataTable with sortable columns: Name, Region, Status, Requests, P95, Errors |
|
||||
|
||||
!!! tip "Real-Time Updates"
|
||||
|
||||
The dashboard polls every 30 seconds for metric updates. When deployments are in a transitional state (creating, deploying), polling increases to every 3 seconds. Click the refresh button for immediate updates.
|
||||
|
||||
## Per-Deployment Metrics
|
||||
|
||||
Each deployment card (in cards view) shows real-time metrics:
|
||||
|
||||
### Metrics Row
|
||||
|
||||
| Metric | Description |
|
||||
| --------------- | ----------------------------- |
|
||||
| **Requests** | Request count (24h) with icon |
|
||||
| **P95 Latency** | 95th percentile response time |
|
||||
| **Error Rate** | Percentage of failed requests |
|
||||
|
||||
Metrics are fetched from the sparkline API endpoint and refresh every 60 seconds.
|
||||
|
||||
### Health Check
|
||||
|
||||
Running deployments show a health check indicator:
|
||||
|
||||
| Indicator | Meaning |
|
||||
| ----------------- | -------------------------------- |
|
||||
| **Green heart** | Healthy — shows response latency |
|
||||
| **Red heart** | Unhealthy — shows error message |
|
||||
| **Spinning icon** | Health check in progress |
|
||||
|
||||
Health checks auto-retry every 20 seconds when unhealthy. Click the refresh icon to manually trigger a health check. The health check uses a 55-second timeout to accommodate cold starts on scale-to-zero endpoints.
|
||||
|
||||

|
||||
|
||||
!!! info "Cold Start Tolerance"
|
||||
|
||||
The health check uses a 55-second timeout to account for cold starts on scale-to-zero endpoints (up to ~45 seconds in worst case). Once the endpoint warms up, health checks complete in milliseconds.
|
||||
|
||||
## Logs
|
||||
|
||||
Each deployment card includes a `Logs` tab for viewing recent log entries:
|
||||
|
||||

|
||||
|
||||
### Log Entries
|
||||
|
||||
Each log entry shows:
|
||||
|
||||
| Field | Description |
|
||||
| ------------- | --------------------------------------- |
|
||||
| **Severity** | Color-coded bar (see below) |
|
||||
| **Timestamp** | Request time (local format) |
|
||||
| **Message** | Log content |
|
||||
| **HTTP info** | Status code and latency (if applicable) |
|
||||
|
||||
=== "Severity Levels"
|
||||
|
||||
Filter logs by severity using the filter buttons:
|
||||
|
||||
| Level | Color | Description |
|
||||
| ------------ | -------- | ------------------- |
|
||||
| **DEBUG** | Gray | Debug messages |
|
||||
| **INFO** | Blue | Normal requests |
|
||||
| **WARNING** | Yellow | Non-critical issues |
|
||||
| **ERROR** | Red | Failed requests |
|
||||
| **CRITICAL** | Dark Red | Critical failures |
|
||||
|
||||
=== "Log Controls"
|
||||
|
||||
| Control | Description |
|
||||
| ----------- | ----------------------------------- |
|
||||
| **Errors** | Filter to ERROR and WARNING entries |
|
||||
| **All** | Show all log entries |
|
||||
| **Copy** | Copy all visible logs to clipboard |
|
||||
| **Refresh** | Reload log entries |
|
||||
|
||||
The UI shows the 20 most recent entries. The API defaults to 50 entries per request (max 200).
|
||||
|
||||
!!! tip "Debugging Workflow"
|
||||
|
||||
When investigating errors: first click **Errors** to filter to ERROR and WARNING entries, then review timestamps and HTTP status codes. Copy logs to clipboard for sharing with your team.
|
||||
|
||||
## Code Examples
|
||||
|
||||
Each deployment card includes a `Code` tab showing ready-to-use API code with your actual endpoint URL and API key:
|
||||
|
||||
=== "Python"
|
||||
|
||||
```python
|
||||
import requests
|
||||
|
||||
# Deployment endpoint
|
||||
url = "https://predict-abc123.run.app/predict"
|
||||
|
||||
# Headers with your deployment API key
|
||||
headers = {"Authorization": "Bearer YOUR_API_KEY"}
|
||||
|
||||
# Inference parameters
|
||||
data = {"conf": 0.25, "iou": 0.7, "imgsz": 640}
|
||||
|
||||
# Send image for inference
|
||||
with open("image.jpg", "rb") as f:
|
||||
response = requests.post(url, headers=headers, data=data, files={"file": f})
|
||||
|
||||
print(response.json())
|
||||
```
|
||||
|
||||
=== "JavaScript"
|
||||
|
||||
```javascript
|
||||
// Build form data with image and parameters
|
||||
const formData = new FormData();
|
||||
formData.append("file", fileInput.files[0]);
|
||||
formData.append("conf", "0.25");
|
||||
formData.append("iou", "0.7");
|
||||
formData.append("imgsz", "640");
|
||||
|
||||
// Send image for inference
|
||||
const response = await fetch(
|
||||
"https://predict-abc123.run.app/predict",
|
||||
{
|
||||
method: "POST",
|
||||
headers: { Authorization: "Bearer YOUR_API_KEY" },
|
||||
body: formData,
|
||||
}
|
||||
);
|
||||
|
||||
const result = await response.json();
|
||||
console.log(result);
|
||||
```
|
||||
|
||||
=== "cURL"
|
||||
|
||||
```bash
|
||||
# Send image for inference
|
||||
curl -X POST "https://predict-abc123.run.app/predict" \
|
||||
-H "Authorization: Bearer YOUR_API_KEY" \
|
||||
-F "file=@image.jpg" \
|
||||
-F "conf=0.25" \
|
||||
-F "iou=0.7" \
|
||||
-F "imgsz=640"
|
||||
```
|
||||
|
||||
!!! note "Auto-Populated Credentials"
|
||||
|
||||
When viewing the `Code` tab in the platform, your actual endpoint URL and API key are automatically filled in. Copy the code and run it directly. See [API Keys](../account/api-keys.md) to generate a key.
|
||||
|
||||
## Deployment Predict
|
||||
|
||||
The `Predict` tab on each deployment card provides an inline predict panel — the same interface as the model's `Predict` tab, but running inference through the deployment endpoint instead of the shared service. This is useful for testing a deployed endpoint directly from the browser. See [Inference](inference.md) for parameter details and response formats.
|
||||
|
||||
## API Endpoints
|
||||
|
||||
### Monitoring Overview
|
||||
|
||||
```
|
||||
GET /api/monitoring
|
||||
```
|
||||
|
||||
Returns aggregated metrics for all deployments owned by the authenticated user. Workspace-aware via optional `owner` query parameter.
|
||||
|
||||
### Deployment Metrics
|
||||
|
||||
```
|
||||
GET /api/deployments/{deploymentId}/metrics?sparkline=true&range=24h
|
||||
```
|
||||
|
||||
Returns sparkline data and summary metrics for a specific deployment. Refresh interval: 60 seconds.
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| ----------- | ------ | --------------------------------------------- |
|
||||
| `sparkline` | bool | Include sparkline data |
|
||||
| `range` | string | Time range: `1h`, `6h`, `24h`, `7d`, or `30d` |
|
||||
|
||||
### Deployment Logs
|
||||
|
||||
```
|
||||
GET /api/deployments/{deploymentId}/logs?limit=50&severity=ERROR,WARNING
|
||||
```
|
||||
|
||||
Returns recent log entries with optional severity filter and pagination.
|
||||
|
||||
| Parameter | Type | Description |
|
||||
| ----------- | ------ | --------------------------------------------- |
|
||||
| `limit` | int | Max entries to return (default: 50, max: 200) |
|
||||
| `severity` | string | Comma-separated severity filter |
|
||||
| `pageToken` | string | Pagination token from previous response |
|
||||
|
||||
### Deployment Health
|
||||
|
||||
```
|
||||
GET /api/deployments/{deploymentId}/health
|
||||
```
|
||||
|
||||
Returns health check status with response latency.
|
||||
|
||||
```json
|
||||
{
|
||||
"healthy": true,
|
||||
"status": 200,
|
||||
"latencyMs": 142
|
||||
}
|
||||
```
|
||||
|
||||
## Performance Optimization
|
||||
|
||||
Use monitoring data to optimize your deployments:
|
||||
|
||||
=== "High Latency"
|
||||
|
||||
If latency is too high:
|
||||
|
||||
1. Check instance count (may need more)
|
||||
2. Verify model size is appropriate
|
||||
3. Consider a closer region
|
||||
4. Check image sizes being sent
|
||||
|
||||
!!! example "Reducing Latency"
|
||||
|
||||
Switch from `imgsz=1280` to `imgsz=640` for a ~4x speedup with minimal accuracy loss for most use cases. Deploy to a region closer to your users for lower network latency.
|
||||
|
||||
=== "High Error Rate"
|
||||
|
||||
If errors are occurring:
|
||||
|
||||
1. Review error logs in the `Logs` tab
|
||||
2. Check request format (multipart form required)
|
||||
3. Verify API key is valid
|
||||
4. Check rate limits
|
||||
|
||||
=== "Scaling Issues"
|
||||
|
||||
If hitting capacity:
|
||||
|
||||
1. Consider multiple regions
|
||||
2. Optimize request batching
|
||||
3. Increase CPU and memory resources
|
||||
|
||||
## FAQ
|
||||
|
||||
### How long is data retained?
|
||||
|
||||
| Data Type | Retention |
|
||||
| ----------- | --------- |
|
||||
| **Metrics** | 30 days |
|
||||
| **Logs** | 7 days |
|
||||
|
||||
### Can I set up external monitoring?
|
||||
|
||||
Yes, endpoint URLs work with external monitoring tools:
|
||||
|
||||
- Uptime monitoring (Pingdom, UptimeRobot)
|
||||
- APM tools (Datadog, New Relic)
|
||||
- Custom health checks via the `/health` endpoint
|
||||
|
||||
### How accurate are the latency numbers?
|
||||
|
||||
Latency metrics measure:
|
||||
|
||||
- **P50**: Median response time
|
||||
- **P95**: 95th percentile
|
||||
- **P99**: 99th percentile
|
||||
|
||||
These represent server-side processing time, not including network latency to your users.
|
||||
|
||||
### Why are my metrics delayed?
|
||||
|
||||
Metrics have a ~2 minute delay due to:
|
||||
|
||||
- Metrics aggregation pipeline
|
||||
- Aggregation windows
|
||||
- Dashboard caching
|
||||
|
||||
For real-time debugging, check logs which are near-instant.
|
||||
|
||||
### Can I monitor multiple endpoints together?
|
||||
|
||||
Yes, the deployments page shows all endpoints with aggregated overview cards. Use the table view to compare performance across deployments.
|
||||
Reference in New Issue
Block a user