Implement network statistics
This commit is contained in:
parent
1c4d87e662
commit
c993bb9c6e
|
@ -1,5 +1,6 @@
|
|||
from core.lib.threshold import threshold_request
|
||||
|
||||
|
||||
def get_irc_stats():
|
||||
url = "irc/stats"
|
||||
payload = {}
|
||||
|
@ -8,10 +9,11 @@ def get_irc_stats():
|
|||
return {}
|
||||
return stats
|
||||
|
||||
|
||||
def get_irc_networks():
|
||||
url = "irc/networks"
|
||||
payload = {}
|
||||
networks = threshold_request(url, payload)
|
||||
if not networks:
|
||||
return {}
|
||||
return networks
|
||||
return networks
|
||||
|
|
|
@ -2,33 +2,33 @@
|
|||
<div class="content" style="max-height: 30em; overflow: auto;">
|
||||
<table class="table is-fullwidth is-hoverable">
|
||||
<thead>
|
||||
<th>name</th>
|
||||
<th>net</th>
|
||||
<th>relays</th>
|
||||
<th>channels</th>
|
||||
<th>records</th>
|
||||
</thead>
|
||||
{% for key, net in networks.items %}
|
||||
<tr>
|
||||
<th>{{ key }}</th>
|
||||
<td>
|
||||
<span class="icon has-text-info has-tooltip-info">
|
||||
<i class="fa-brands fa-unity"></i>
|
||||
</span>
|
||||
{{ net.relays }}
|
||||
</td>
|
||||
<td>
|
||||
<span class="icon has-text-info has-tooltip-info">
|
||||
<i class="fa-solid fa-hashtag"></i>
|
||||
</span>
|
||||
{{ net.channels }}
|
||||
</td>
|
||||
<td>
|
||||
<span class="icon has-text-info has-tooltip-info">
|
||||
<i class="fa-solid fa-album"></i>
|
||||
</span>
|
||||
{{ net.records }}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>{{ key }}</th>
|
||||
<td>
|
||||
<span class="icon has-text-info has-tooltip-info">
|
||||
<i class="fa-brands fa-unity"></i>
|
||||
</span>
|
||||
{{ net.relays }}
|
||||
</td>
|
||||
<td>
|
||||
<span class="icon has-text-info has-tooltip-info">
|
||||
<i class="fa-solid fa-hashtag"></i>
|
||||
</span>
|
||||
{{ net.channels }}
|
||||
</td>
|
||||
<td>
|
||||
<span class="icon has-text-info has-tooltip-info">
|
||||
<i class="fa-solid fa-album"></i>
|
||||
</span>
|
||||
{{ net.records }}
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</table>
|
||||
</div>
|
||||
|
|
|
@ -1,57 +1,49 @@
|
|||
<div id="stats">
|
||||
<div class="content" style="max-height: 30em; overflow: auto;">
|
||||
<div class="table-container">
|
||||
|
||||
<table class="table is-fullwidth is-hoverable">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>X</th>
|
||||
<th>total</th>
|
||||
<th>unique</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<th>total</th>
|
||||
<td>
|
||||
{{ stats.servers_total_total }}
|
||||
</td>
|
||||
<td>
|
||||
{{ stats.servers_total_unique }}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>online</th>
|
||||
<td>
|
||||
{{ stats.servers_online_total }}
|
||||
</td>
|
||||
<td>
|
||||
{{ stats.servers_online_unique }}
|
||||
</td>
|
||||
</tr>
|
||||
<table class="table is-fullwidth is-hoverable">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>attribute</th>
|
||||
<th>count</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<th>relays</th>
|
||||
<td>
|
||||
{{ stats.servers_online_total }}/{{ stats.servers_total_total }}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>networks</th>
|
||||
<td>
|
||||
{{ stats.servers_online_unique }}/{{ stats.servers_total_unique }}
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<th>channels</th>
|
||||
<td>
|
||||
{{ stats.channels}}
|
||||
</td>
|
||||
<tr>
|
||||
<th>channels</th>
|
||||
<td>
|
||||
{{ stats.channels}}
|
||||
</td>
|
||||
|
||||
</tr>
|
||||
<tr>
|
||||
<th>records</th>
|
||||
<td>
|
||||
{{ stats.records }}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>events</th>
|
||||
<td>
|
||||
{{ stats.eventrate }}
|
||||
</td>
|
||||
</tr>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>records</th>
|
||||
<td>
|
||||
{{ stats.records }}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>events</th>
|
||||
<td>
|
||||
{{ stats.eventrate }}
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
|
@ -1,51 +1,51 @@
|
|||
{% extends "base.html" %}
|
||||
{% block content %}
|
||||
|
||||
<div
|
||||
style="display: none;"
|
||||
hx-headers='{"X-CSRFToken": "{{ csrf_token }}"}'
|
||||
hx-post="{% url 'threshold_irc_stats' %}"
|
||||
hx-trigger="load"
|
||||
hx-target="#stats"
|
||||
hx-swap="outerHTML">
|
||||
</div>
|
||||
<div
|
||||
style="display: none;"
|
||||
hx-headers='{"X-CSRFToken": "{{ csrf_token }}"}'
|
||||
hx-post="{% url 'threshold_irc_stats' %}"
|
||||
hx-trigger="load"
|
||||
hx-target="#stats"
|
||||
hx-swap="outerHTML">
|
||||
</div>
|
||||
|
||||
<div
|
||||
style="display: none;"
|
||||
hx-headers='{"X-CSRFToken": "{{ csrf_token }}"}'
|
||||
hx-post="{% url 'threshold_irc_networks' %}"
|
||||
hx-trigger="load"
|
||||
hx-target="#networks"
|
||||
hx-swap="outerHTML">
|
||||
</div>
|
||||
<div
|
||||
style="display: none;"
|
||||
hx-headers='{"X-CSRFToken": "{{ csrf_token }}"}'
|
||||
hx-post="{% url 'threshold_irc_networks' %}"
|
||||
hx-trigger="load"
|
||||
hx-target="#networks"
|
||||
hx-swap="outerHTML">
|
||||
</div>
|
||||
|
||||
<div class="columns">
|
||||
<div class="column">
|
||||
<div class="box">
|
||||
<div id="stats">
|
||||
<div class="columns">
|
||||
<div class="column">
|
||||
<div class="box">
|
||||
<div id="stats">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="column">
|
||||
<div class="box">
|
||||
<div id="networks">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="column">
|
||||
<div class="box">
|
||||
<div id="networks">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="columns">
|
||||
<div class="column">
|
||||
<div class="box">
|
||||
<div id="channels">
|
||||
<div class="columns">
|
||||
<div class="column">
|
||||
<div class="box">
|
||||
<div id="channels">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="column">
|
||||
<div class="box">
|
||||
<div id="alerts">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="column">
|
||||
<div class="box">
|
||||
<div id="alerts">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
|
|
@ -1,12 +1,13 @@
|
|||
from django.views import View
|
||||
from django.shortcuts import render
|
||||
from django.views import View
|
||||
|
||||
from core.lib.manage.threshold import get_irc_networks, get_irc_stats
|
||||
from core.views.manage.permissions import SuperUserRequiredMixin
|
||||
from core.lib.manage.threshold import get_irc_stats, get_irc_networks
|
||||
|
||||
|
||||
class ThresholdIRCStats(SuperUserRequiredMixin, View):
|
||||
stats_template = "dynamic/manage/threshold/irc/stats.html"
|
||||
|
||||
|
||||
def post(self, request):
|
||||
stats = get_irc_stats()
|
||||
context = {"stats": stats}
|
||||
|
@ -16,8 +17,7 @@ class ThresholdIRCStats(SuperUserRequiredMixin, View):
|
|||
class ThresholdIRCNetworks(SuperUserRequiredMixin, View):
|
||||
stats_template = "dynamic/manage/threshold/irc/networks.html"
|
||||
|
||||
|
||||
def post(self, request):
|
||||
stats = get_irc_networks()
|
||||
context = {"networks": stats}
|
||||
return render(request, self.stats_template, context)
|
||||
return render(request, self.stats_template, context)
|
||||
|
|
Loading…
Reference in New Issue