@extends('adminlte::page') @section('title', 'Dashboard de Métricas') @section('content_header') @stop @section('content') @php $totalMetricas = $estatisticas['total_metricas'] ?? 0; $dataInicioFmt = \Carbon\Carbon::parse($filtros['data_inicio'])->format('d/m/Y'); $dataFimFmt = \Carbon\Carbon::parse($filtros['data_fim'])->format('d/m/Y'); $periodosRapidos = [ ['label' => '7 dias', 'dias' => 7], ['label' => '14 dias', 'dias' => 14], ['label' => '30 dias', 'dias' => 30], ]; @endphp
{{-- Hero --}}

Monitoramento

Dashboard de métricas

@if($instalacaoSelecionada ?? null) {{ $instalacaoSelecionada->nome }} · {{ $dataInicioFmt }} — {{ $dataFimFmt }} @else Todas as instalações · {{ $dataInicioFmt }} — {{ $dataFimFmt }} @endif · {{ number_format($totalMetricas, 0, ',', '.') }} pontos no período

Lista detalhada
{{-- KPIs --}}

{{ number_format($totalMetricas, 0, ',', '.') }}

Total de métricas

{{ $estatisticas['instalacoes_com_metricas'] ?? 0 }}

Instalações monitoradas

@if(!empty($estatisticas['ultima_coleta'])) {{ \Carbon\Carbon::parse($estatisticas['ultima_coleta'])->diffForHumans() }} @else — @endif

Última coleta

{{ $alertasCount ?? 0 }}

Alertas ativos (1h)

{{-- Filtros --}}

Período e instalação

@foreach($periodosRapidos as $periodo) @php $inicioRapido = now()->subDays($periodo['dias'])->format('Y-m-d'); $fimRapido = now()->format('Y-m-d'); $isActive = ($filtros['data_inicio'] ?? '') === $inicioRapido && ($filtros['data_fim'] ?? '') === $fimRapido && empty($filtros['instalacao_id']); $urlRapido = route('metricas.dashboard', [ 'data_inicio' => $inicioRapido, 'data_fim' => $fimRapido, ]); @endphp {{ $periodo['label'] }} @endforeach
@if($temFiltros ?? false)
Filtros ativos: @if($instalacaoSelecionada ?? null) Instalação: {{ $instalacaoSelecionada->nome }} @endif @if(($filtros['data_inicio'] ?? '') !== now()->subDays(7)->format('Y-m-d') || ($filtros['data_fim'] ?? '') !== now()->format('Y-m-d')) Período: {{ $dataInicioFmt }} — {{ $dataFimFmt }} @endif Limpar todos
@endif
Limpar
{{-- Gráficos principais --}}

Tempo de resposta médio

Uso de memória

Uso de CPU

Erros por hora

Usuários ativos

Requisições / min

Tamanho do banco

{{-- Rankings + alertas --}}

Alertas recentes

@if(($alertasCount ?? 0) > 0) {{ $alertasCount }} @endif
@if(!empty($alertas))
    @foreach(array_slice($alertas, 0, 5) as $alerta)
  • {{ $alerta['titulo'] ?? 'Alerta' }}

    {{ $alerta['mensagem'] ?? '' }}

    @if(!empty($alerta['timestamp']))

    {{ \Carbon\Carbon::parse($alerta['timestamp'])->diffForHumans() }}

    @endif
  • @endforeach
@else

Nenhum alerta crítico na última hora.

@endif

Métricas mais coletadas

@if(!empty($estatisticas['metricas_mais_coletadas']) && $totalMetricas > 0)
@foreach($estatisticas['metricas_mais_coletadas'] as $metrica) @php $pct = ($metrica->total / $totalMetricas) * 100; @endphp @endforeach
Métrica Total Share
{{ $metricasDisponiveis[$metrica->metrica] ?? $metrica->metrica }} {{ number_format($metrica->total, 0, ',', '.') }}
{{ number_format($pct, 1) }}%
@else

Sem dados de ranking no período.

@endif

Instalações com mais métricas

@if(!empty($estatisticas['instalacoes_com_mais_metricas']) && $totalMetricas > 0)
@foreach($estatisticas['instalacoes_com_mais_metricas'] as $instalacao) @php $pct = ($instalacao->total / $totalMetricas) * 100; @endphp @endforeach
Instalação Total Share
{{ $instalacao->nome }} {{ number_format($instalacao->total, 0, ',', '.') }}
{{ number_format($pct, 1) }}%
@else

Sem dados por instalação no período.

@endif
@stop @section('css') @stop @section('js') @stop