{% extends "base.html" %}
{% from "_macros.html" import no_data with context %}
{% block title %}Trends{% endblock %}
{% macro forecast_cell(fc) -%}
{% if fc.soon %}⚠ {{ fc.text }}
{% elif fc.status == 'growing' %}{{ fc.text }}
{% elif fc.status == 'stable' %}{{ fc.text }}
{% else %}{{ fc.text }}{% endif %}
{% if fc.confidence_note %}
{{ fc.confidence_note }}
{% endif %}
{%- endmacro %}
{% block content %}
Trends
{% if not snap %}
{{ no_data() }}
{% else %}
{% for v in data.vpcs if not vpc or v.key == vpc %}
{{ v.key }} {{ v.name }}
· {{ v.cidr }} · {{ v.latest }} of {{ v.capacity }} usable subnet IPs used
{{ chart(v) }}
VPC forecast: {{ forecast_cell(v.forecast) }}
{% if v.forecast.status in ('growing', 'stable') %}
trend {{ '%+.2f' % v.forecast.slope_per_day }} IPs/day
{% endif %}
Limit: the usable addresses of its current subnets.
| Subnet | Name | CIDR | History | Used / limit | Trend (IPs/day) | Forecast |
{% for s in data.subnets[v.key] %}
| {{ s.key }} |
{{ s.name }} |
{{ s.cidr }} |
{{ chart(s, width=180, height=40, compact=true) }} |
{{ s.latest }} / {{ s.capacity }} |
{% if s.forecast.status in ('growing', 'stable') %}{{ '%+.2f' % s.forecast.slope_per_day }}{% else %}–{% endif %} |
{{ forecast_cell(s.forecast) }} |
{% else %}
| No subnets |
{% endfor %}
VPC data points ({{ v.points | length }})
| Snapshot taken | Used IPs |
{% for t, n in v.points %}| {{ t | localtime }} | {{ n }} |
{% endfor %}
{% else %}
No successful snapshots in the last {{ windows[window] }}.
{% endfor %}
{% endif %}
{% endblock %}