<% content_for :title, "Network Analytics - Baffle Hub" %>

Network Analytics

Detailed traffic analysis and network intelligence insights

Time Period

<% [:hour, :day, :week, :month].each do |period| %> <%= link_to period.to_s.humanize, analytics_networks_path(period: period), class: "px-3 py-1 rounded-md text-sm font-medium #{ @time_period == period ? 'bg-blue-100 text-blue-800' : 'text-gray-600 hover:text-gray-900 hover:bg-gray-100' }" %> <% end %>

Standard Networks

<%= number_with_delimiter(@network_breakdown.dig('standard', :networks) || 0) %>

<%= number_with_delimiter(@network_breakdown.dig('standard', :events) || 0) %> events (<%= @network_breakdown.dig('standard', :percentage) || 0 %>%)

Datacenter Networks

<%= number_with_delimiter(@network_breakdown.dig('datacenter', :networks) || 0) %>

<%= number_with_delimiter(@network_breakdown.dig('datacenter', :events) || 0) %> events (<%= @network_breakdown.dig('datacenter', :percentage) || 0 %>%)

VPN Networks

<%= number_with_delimiter(@network_breakdown.dig('vpn', :networks) || 0) %>

<%= number_with_delimiter(@network_breakdown.dig('vpn', :events) || 0) %> events (<%= @network_breakdown.dig('vpn', :percentage) || 0 %>%)

Proxy Networks

<%= number_with_delimiter(@network_breakdown.dig('proxy', :networks) || 0) %>

<%= number_with_delimiter(@network_breakdown.dig('proxy', :events) || 0) %> events (<%= @network_breakdown.dig('proxy', :percentage) || 0 %>%)

Top Networks by Traffic Volume

Networks with the most requests in the selected time period

<% if @top_networks.any? %> <% @top_networks.each do |network| %> <% end %>
Network Company Type Events Unique IPs Actions
<%= link_to network.cidr, network_range_path(network), class: "text-blue-600 hover:text-blue-800 hover:underline font-mono font-medium" %>
<% if network.display_country.present? %> 🏳️ <%= network.display_country %> <% if network.has_inherited_data? && network.display_country != network.country %> * <% end %> <% end %> <% if network.asn.present? %> • ASN <%= network.asn %> <% end %>
<%= network.display_company || 'Unknown' %> <% if network.has_inherited_data? %>
from <%= link_to network.inherited_from, network_range_path(NetworkRange.find_by(network: network.inherited_from)), class: "text-blue-600 hover:text-blue-800 hover:underline" %>
<% end %>
<% if network.is_datacenter? %> Datacenter <% elsif network.is_vpn? %> VPN <% elsif network.is_proxy? %> Proxy <% else %> Standard <% end %> <%= number_with_delimiter(network.event_count) %> <%= number_with_delimiter(network.unique_ips) %> <%= link_to "View Events", events_path(network_cidr: network.cidr), class: "text-blue-600 hover:text-blue-800 text-sm" %>
<% else %>

No network traffic

No network activity found in the selected time period.

<% end %>

Top Companies by Traffic

Companies generating the most traffic

<% if @top_companies.any? %>
<% @top_companies.each do |company| %>
<%= company.company %>
<%= number_with_delimiter(company.network_count) %> networks
<%= number_with_delimiter(company.event_count) %> events <%= number_with_delimiter(company.unique_ips) %> unique IPs
<%= link_to "Filter Events", events_path(company: company.company), class: "text-blue-600 hover:text-blue-800 text-sm font-medium" %>
<% end %>
<% else %>

No company data available for this time period.

<% end %>

Top Autonomous Systems

ASNs with the most traffic

<% if @top_asns.any? %>
<% @top_asns.each do |asn| %>
ASN <%= asn.asn %> <% if asn.asn_org.present? %> • <%= asn.asn_org.truncate(30) %> <% end %>
<%= number_with_delimiter(asn.event_count) %> events <%= number_with_delimiter(asn.unique_ips) %> unique IPs <%= number_with_delimiter(asn.network_count) %> networks
<%= link_to "Filter Events", events_path(asn: asn.asn), class: "text-blue-600 hover:text-blue-800 text-sm font-medium" %>
<% end %>
<% else %>

No ASN data available for this time period.

<% end %>
<%= link_to "← Back to Dashboard", analytics_path, class: "text-blue-600 hover:text-blue-800 font-medium" %>
Showing network analytics for the <%= @time_period.to_s.humanize.downcase %>