Skip to content

Analyzed Data and Metrics in Uplinkr

The analyzed.json file contains aggregated statistics and analytics for all probes within a project. It provides both lifetime metrics and daily breakdowns of probe execution results.

storage/app/private/uplinkr/<project-name>/analyzed.json

The file is organized by project identifier, with nested time-based aggregations:

{
"<project_identifier>": {
"": { // Lifetime statistics
// ... metrics
},
"YYYY-MM-DD": { // Daily statistics
// ... metrics
}
}
}

Each aggregation (lifetime or daily) contains:

FieldTypeDescription
urlstringThe monitored URL
totalintegerTotal number of probe executions
reachableintegerNumber of successful responses
unreachableintegerNumber of failed responses
errorintegerNumber of error responses
unknownintegerNumber of unknown status responses
first_executed_atISO 8601 datetimeTimestamp of first probe execution
last_executed_atISO 8601 datetimeTimestamp of most recent probe execution
avg_duration_msfloatAverage response time in milliseconds
status_header_countsobjectCount of HTTP status codes received
{
"my_project": {
"": {
"url": "https://example.com/",
"total": 100,
"reachable": 98,
"unreachable": 2,
"error": 0,
"unknown": 0,
"first_executed_at": "2026-01-01T00:00:00+00:00",
"last_executed_at": "2026-02-03T08:00:00+00:00",
"avg_duration_ms": 245.5,
"status_header_counts": {
"200": 98,
"503": 2
}
},
"2026-02-03": {
"url": "https://example.com/",
"total": 24,
"reachable": 24,
"unreachable": 0,
"error": 0,
"unknown": 0,
"first_executed_at": "2026-02-03T00:00:15+00:00",
"last_executed_at": "2026-02-03T23:45:30+00:00",
"avg_duration_ms": 198.3,
"status_header_counts": {
"200": 24
}
}
}
}

The empty string key contains cumulative statistics across all probe executions since the project was initialized. This provides an overall health picture of the monitored endpoint.

Each date key contains statistics for that specific day, allowing you to:

  • Track daily performance trends
  • Identify patterns or anomalies
  • Compare response times across different time periods
  • reachable: HTTP responses indicating successful connection (typically 2xx status codes)
  • unreachable: Connection failures or timeouts
  • error: HTTP error responses (4xx, 5xx status codes)
  • unknown: Responses that don’t fit other categories

The analyzed.json file is generated and updated by the project:analyze command:

Terminal window
php artisan uplinkr:project:analyze --project=my-project
  • Performance monitoring: Track average response times over time
  • Reliability analysis: Calculate uptime percentages from reachable/unreachable counts
  • Trend detection: Compare daily statistics to identify degradation
  • Reporting: Generate summaries without processing individual probe files