@extends('layouts.app') @section('title', 'Analytics') @section('breadcrumb') @endsection @section('content')

Analytics Dashboard

Total API Calls
{{ \App\Models\ApiLog::count() }}
Success Rate
@php $totalCalls = \App\Models\ApiLog::count(); $successCalls = \App\Models\ApiLog::where('status_code', '>=', 200)->where('status_code', '<', 300)->count(); $successRate = $totalCalls > 0 ? round(($successCalls / $totalCalls) * 100, 1) : 0; @endphp {{ $successRate }}%
Avg Response Time
{{ number_format(\App\Models\ApiLog::avg('response_time') ?? 0, 2) }}s
Active Sources
{{ \App\Models\ApiSource::where('status', 'active')->count() }}
API Usage Overview
Response Status Distribution
Top API Sources
@php $topSources = \App\Models\ApiSource::withCount('apiLogs') ->orderBy('api_logs_count', 'desc') ->limit(5) ->get(); @endphp @foreach($topSources as $source)
{{ $source->name }}
{{ $source->api_logs_count }} requests
@endforeach
Recent Errors
@php $recentErrors = \App\Models\ApiLog::with('apiSource') ->where('status_code', '>=', 400) ->latest() ->limit(5) ->get(); @endphp @if($recentErrors->count() > 0) @foreach($recentErrors as $error)
{{ $error->apiSource->name ?? 'Unknown' }}
{{ $error->created_at->format('d M Y, H:i') }} - Status: {{ $error->status_code }}
@if($error->error_message)
{{ Str::limit($error->error_message, 60) }}
@endif
@endforeach @else

No recent errors found

@endif
@endsection @section('scripts') @endsection