preview: add run_detail preview + cluster_detail variance text descriptions

This commit is contained in:
PM-pinou
2026-07-24 14:13:04 +08:00
parent e54499fa78
commit 806cfc0a64
4 changed files with 308 additions and 150 deletions
+7 -7
View File
@@ -39,14 +39,14 @@ h2{font-size:1.2rem}.badge{display:inline-block;padding:.15rem .5rem;border-radi
<div class="card">
<h3>📊 特征分析 <span style="font-weight:400;font-size:.8rem;color:#888">12 个特征</span></h3>
<table class="feat-table">
<thead><tr><th>#</th><th>特征名</th><th>区分度</th><th>均值</th><th>标准差</th><th>中位数</th><th>P25</th><th>P75</th></tr></thead>
<thead><tr><th>#</th><th>特征名</th><th>区分度</th><th>均值</th> <th>标准差</th><th>中位数</th><th>P25</th><th>P75</th><th>离散度</th></tr></thead>
<tbody>
<tr><td>1</td><td><code>延迟 (4dur)</code></td><td class="feat-p">+3.213</td><td>23.0ms</td><td>5.1</td><td>21ms</td><td>18ms</td><td>26ms</td></tr>
<tr><td>2</td><td><code>数据包 (8ppk)</code></td><td class="feat-p">+2.346</td><td>1520.0B</td><td>128</td><td>1480B</td><td>1400B</td><td>1650B</td></tr>
<tr><td>3</td><td><code>TLS版本 (0ver)</code></td><td class="feat-n">-1.845</td><td>1.2</td><td>0.3</td><td>1.2</td><td>1.2</td><td>1.3</td></tr>
<tr><td>4</td><td><code>目标端口 (:prd)</code></td><td class="feat-p">+1.821</td><td>443</td><td>12</td><td>443</td><td>443</td><td>443</td></tr>
<tr><td>5</td><td><code>会话时长 (8ses)</code></td><td class="feat-n">-1.523</td><td>15s</td><td>4s</td><td>14s</td><td>12s</td><td>18s</td></tr>
<tr><td>6</td><td><code>密钥大小 (4ksz)</code></td><td class="feat-p">+1.234</td><td>256</td><td>0</td><td>256</td><td>256</td><td>256</td></tr>
<tr><td>1</td><td><code>延迟 (4dur)</code></td><td class="feat-p">+3.213</td><td>23.0ms</td><td>5.1</td><td>21ms</td><td>18ms</td><td>26ms</td><td><span style="color:#e65100;font-size:.72rem;">离散中</span></td></tr>
<tr><td>2</td><td><code>数据包 (8ppk)</code></td><td class="feat-p">+2.346</td><td>1520.0B</td><td>128</td><td>1480B</td><td>1400B</td><td>1650B</td><td><span style="color:#e65100;font-size:.72rem;">离散中</span></td></tr>
<tr><td>3</td><td><code>TLS版本 (0ver)</code></td><td class="feat-n">-1.845</td><td>1.2</td><td>0.3</td><td>1.2</td><td>1.2</td><td>1.3</td><td><span style="color:#43aa8b;font-size:.72rem;">高度集中</span></td></tr>
<tr><td>4</td><td><code>目标端口 (:prd)</code></td><td class="feat-p">+1.821</td><td>443</td><td>12</td><td>443</td><td>443</td><td>443</td><td><span style="color:#1565c0;font-size:.72rem;">极集中</span></td></tr>
<tr><td>5</td><td><code>会话时长 (8ses)</code></td><td class="feat-n">-1.523</td><td>15s</td><td>4s</td><td>14s</td><td>12s</td><td>18s</td><td><span style="color:#e65100;font-size:.72rem;">离散中</span></td></tr>
<tr><td>6</td><td><code>密钥大小 (4ksz)</code></td><td class="feat-p">+1.234</td><td>256</td><td>0</td><td>256</td><td>256</td><td>256</td><td><span style="color:#1565c0;font-size:.72rem;">零离散</span></td></tr>
</tbody>
</table>
</div>
+184
View File
@@ -0,0 +1,184 @@
<!DOCTYPE html>
<html lang="zh-hans">
<head><meta charset="UTF-8"><title>运行详情 — 预览</title>
<style>
*{margin:0;padding:0;box-sizing:border-box}
body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;background:#f5f7fa;color:#1a1a2e;padding:1rem 2rem}
.card{background:#fff;border-radius:8px;padding:1.5rem;margin-bottom:1rem;box-shadow:0 1px 3px rgba(0,0,0,.1)}
h2{font-size:1.2rem;margin:0}h3{font-size:1rem;margin-bottom:.5rem}
.badge{display:inline-block;padding:.15rem .5rem;border-radius:12px;font-size:.75rem;font-weight:600}
.badge-success{background:#d4edda;color:#155724}
.badge-danger{background:#f8d7da;color:#721c24}
.badge-info{background:#d1ecf1;color:#0c5460}
.stat{font-size:2rem;font-weight:700;color:#1a1a2e}
.stat-label{font-size:.85rem;color:#666;margin-top:.25rem}
.grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1.5rem}
.grid-svd{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}
.svd-card{background:#f8f9fa;border:1px solid #e0e0e0;border-radius:8px;padding:.8rem}
.svd-card h4{margin:0 0 .3rem;font-size:.9rem}
.var-bar{height:8px;border-radius:4px;background:#4361ee;margin:.2rem 0}
.feat-tag{display:inline-block;background:#e8f0fe;padding:.1rem .4rem;border-radius:3px;font-size:.75rem;margin:.1rem;color:#333}
.small{font-size:.8rem;color:#888}
.btn{display:inline-block;padding:.4rem .8rem;border-radius:6px;text-decoration:none;font-size:.85rem;background:#4361ee;color:#fff}
.tl-step{margin-bottom:.5rem}.tl-step .hdr{font-weight:700;font-size:.85rem;color:#4361ee;padding:.4rem 0 .2rem;border-top:1px solid #eee}
.tl-think{background:#eef2ff;padding:.5rem;border-radius:6px;font-size:.78rem;line-height:1.6;color:#333;border:1px solid #d0d8f0;margin-bottom:.3rem}
.tl-tool{border:1px solid #e0e0e0;border-radius:6px;margin-bottom:.3rem;overflow:hidden}
.tl-tool .hd{background:#f8f9fa;padding:.35rem .6rem;cursor:pointer;display:flex;justify-content:space-between;align-items:center;font-size:.8rem;font-weight:600}
.tl-tool .bd{display:none;padding:.4rem .6rem;background:#fafbfc;font-size:.72rem}
.tl-tool .bd pre{background:#1a1a2e;color:#e0e0e0;padding:.4rem;border-radius:4px;font-size:.65rem;overflow:auto;margin:.2rem 0}
.cluster-table{width:100%;border-collapse:collapse;font-size:.85rem;margin-top:.5rem}
.cluster-table th{background:#f5f5f5;padding:.3rem .5rem;text-align:left;font-weight:600;border-bottom:2px solid #ddd}
.cluster-table td{padding:.3rem .5rem;border-bottom:1px solid #eee}
</style>
</head>
<body>
<div class="card">
<div style="display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:.5rem">
<div>
<h2>运行 #9</h2>
<p style="color:#666;font-size:.9rem;margin-top:.25rem">2024-01-15 08:23 — 状态: <span class="badge badge-success">完成</span></p>
</div>
<a href="#" class="btn">聚类概览 →</a>
</div>
</div>
<div class="grid-3">
<div class="card" style="text-align:center"><div class="stat">1,284,592</div><div class="stat-label">总流数</div></div>
<div class="card" style="text-align:center"><div class="stat">1,284,592</div><div class="stat-label">行数</div></div>
<div class="card" style="text-align:center"><div class="stat">3</div><div class="stat-label">聚类数</div></div>
</div>
<!-- 全域 SVD 特征分析 -->
<div class="card">
<div style="display:flex;justify-content:space-between;align-items:center">
<h3>🔬 全域 SVD 特征分析 <span class="small">基于 1,284,592 行数据</span></h3>
</div>
<p style="font-size:.82rem;color:#666;margin-top:.3rem">奇异值分解 (TruncatedSVD) 降维后的各主成分解释方差比例与贡献特征。</p>
<div class="grid-svd" style="margin-top:.75rem">
<div class="svd-card">
<h4>PC1</h4>
<div style="display:flex;justify-content:space-between;font-size:.78rem;color:#555"><span>解释方差: 42.3%</span><span>累积: 42.3%</span></div>
<div class="var-bar" style="width:42%"></div>
<div style="margin-top:.4rem">
<span class="feat-tag">8pak: 0.321</span>
<span class="feat-tag">8ack: 0.284</span>
<span class="feat-tag">4dur: 0.198</span>
<span class="feat-tag">8ses: 0.156</span>
<span class="feat-tag">2tmo: 0.112</span>
</div>
</div>
<div class="svd-card">
<h4>PC2</h4>
<div style="display:flex;justify-content:space-between;font-size:.78rem;color:#555"><span>解释方差: 28.7%</span><span>累积: 71.0%</span></div>
<div class="var-bar" style="width:29%"></div>
<div style="margin-top:.4rem">
<span class="feat-tag">:prd: 0.412</span>
<span class="feat-tag">:prs: 0.334</span>
<span class="feat-tag">1ipp: 0.187</span>
<span class="feat-tag">0ver: 0.098</span>
<span class="feat-tag">4dbn: 0.045</span>
</div>
</div>
<div class="svd-card">
<h4>PC3</h4>
<div style="display:flex;justify-content:space-between;font-size:.78rem;color:#555"><span>解释方差: 15.2%</span><span>累积: 86.2%</span></div>
<div class="var-bar" style="width:15%"></div>
<div style="margin-top:.4rem">
<span class="feat-tag">0ver: 0.502</span>
<span class="feat-tag">4ksz: 0.321</span>
<span class="feat-tag">0cph: 0.145</span>
<span class="feat-tag">0crv: 0.088</span>
<span class="feat-tag">cnam: 0.032</span>
</div>
</div>
<div class="svd-card">
<h4>PC4</h4>
<div style="display:flex;justify-content:space-between;font-size:.78rem;color:#555"><span>解释方差: 8.9%</span><span>累积: 95.1%</span></div>
<div class="var-bar" style="width:9%"></div>
<div style="margin-top:.4rem">
<span class="feat-tag">snam: 0.432</span>
<span class="feat-tag">cnam: 0.356</span>
<span class="feat-tag">ecdhe: 0.178</span>
<span class="feat-tag">:ips: 0.089</span>
<span class="feat-tag">:ipd: 0.034</span>
</div>
</div>
<div class="svd-card">
<h4>PC5</h4>
<div style="display:flex;justify-content:space-between;font-size:.78rem;color:#555"><span>解释方差: 4.9%</span><span>累积: 100%</span></div>
<div class="var-bar" style="width:5%"></div>
<div style="margin-top:.4rem">
<span class="feat-tag">timestamp: 0.523</span>
<span class="feat-tag">8dbd: 0.312</span>
<span class="feat-tag">8seq: 0.145</span>
<span class="feat-tag">8did: 0.067</span>
<span class="feat-tag">row: 0.021</span>
</div>
</div>
</div>
<p style="font-size:.78rem;color:#888;margin-top:.5rem">前 3 个主成分解释了 86.2% 的方差。SVD 去噪保留 95% 方差,去除 ~5% 作为底噪。</p>
</div>
<!-- LLM 自动分析流程 -->
<div class="card">
<h3>🧠 LLM 自动分析流程</h3>
<div>
<div class="tl-step">
<div class="hdr">步骤 0</div>
<div class="tl-think">💭 思考:先对数据集进行概要分析,了解列类型和分布后再决定下一步。</div>
<div class="tl-tool">
<div class="hd"><span>🔧 profile_data</span><span></span></div>
<div class="bd"><div>输入:</div><pre>{"dataset_id": "upload_9"}</pre><div>输出:</div><pre>{"columns": 57, "numeric": 28, "string": 20, ...}</pre></div>
</div>
</div>
<div class="tl-step">
<div class="hdr">步骤 1</div>
<div class="tl-think">💭 思考:数据包含 28 个数值列,选择聚类相关的特征列进行分析。</div>
<div class="tl-tool">
<div class="hd"><span>🔧 filter_data</span><span></span></div>
<div class="bd"><div>输入:</div><pre>{"dataset_id": "upload_9", "filters": [...]}</pre><div>输出:</div><pre>{"row_count": 1284592, "columns": 57}</pre></div>
</div>
</div>
<div class="tl-step">
<div class="hdr">步骤 2</div>
<div class="tl-think">💭 思考:数据准备完成,对原始行进行聚类分析(KMeans,3 个簇)。</div>
<div class="tl-tool">
<div class="hd"><span>🔧 run_clustering</span><span></span></div>
<div class="bd"><div>输入:</div><pre>{"dataset_id": "upload_9", "algorithm": "kmeans", "cluster_columns": [...], "_timeout": 300}</pre><div>输出:</div><pre>{"n_clusters": 3, "n_noise": 0, "silhouette": 0.68}</pre></div>
</div>
</div>
<div class="tl-step">
<div class="hdr">步骤 3</div>
<div class="tl-think">💭 思考:✅ 分析完成。聚类产生 3 个簇,轮廓系数 0.68。簇 #0(66%,低延迟大数据包)、簇 #1(24%,高TLS1.3短会话)、簇 #2(9%,高频非标准端口)。</div>
<div style="background:#e8f5e9;padding:.5rem;border-radius:6px;font-size:.82rem;line-height:1.7;color:#333;border:1px solid #c8e6c9">
<span style="font-weight:600;color:#2e7d32;display:block;margin-bottom:.25rem">✅ 回答</span>
<strong>聚类分析完成</strong>,数据划分为 3 个行为簇:<br>
<strong>簇 #0</strong>847,293 条,66%):低延迟、大数据包、目标端口集中于443 —— 典型的 <strong>正常HTTPS流量</strong><br>
<strong>簇 #1</strong>311,482 条,24%):高TLS1.3比例、短会话、ECDHE X25519 —— <strong>现代浏览器访问</strong><br>
<strong>簇 #2</strong>(112,970 条,9%):高连接频率、非标准端口、多域名 —— <strong>API/微服务调用</strong>
</div>
</div>
</div>
</div>
<!-- 聚类列表 -->
<div class="card">
<h3>📊 聚类结果</h3>
<table class="cluster-table">
<thead><tr><th></th><th>大小</th><th>比例</th><th>轮廓系数</th><th></th></tr></thead>
<tbody>
<tr><td><span class="badge badge-info">#0</span></td><td>847,293</td><td>0.66</td><td>0.7100</td><td><a href="#" class="btn" style="padding:.2rem .5rem;font-size:.75rem;">详情</a></td></tr>
<tr><td><span class="badge badge-info">#1</span></td><td>311,482</td><td>0.24</td><td>0.6500</td><td><a href="#" class="btn" style="padding:.2rem .5rem;font-size:.75rem;">详情</a></td></tr>
<tr><td><span class="badge badge-info">#2</span></td><td>112,970</td><td>0.09</td><td>0.5200</td><td><a href="#" class="btn" style="padding:.2rem .5rem;font-size:.75rem;">详情</a></td></tr>
</tbody>
</table>
</div>
<script>
// Toggle tool details on click
document.querySelectorAll('.tl-tool .hd').forEach(function(el){
el.onclick=function(){var b=this.nextElementSibling;if(b)b.style.display=b.style.display==='block'?'none':'block';};
});
</script>
</body>
</html>
+116 -142
View File
@@ -1,143 +1,117 @@
Restored 1 datasets from disk
[2026-07-24 12:30:18,755] INFO analysis.data_loader: [LOAD] files=1 total_rows_est=200
[2026-07-24 12:30:18,742] INFO django: Restored 1 datasets from disk
[2026-07-24 12:30:18,811] INFO analysis.data_loader: [LOAD_SCHEMA] col=0cph dtype=String
[2026-07-24 12:30:18,811] INFO analysis.data_loader: [LOAD_SCHEMA] col=0crv dtype=String
[2026-07-24 12:30:18,811] INFO analysis.data_loader: [LOAD_SCHEMA] col=0rnd dtype=String
[2026-07-24 12:30:18,811] INFO analysis.data_loader: [LOAD_SCHEMA] col=0rnt dtype=String
[2026-07-24 12:30:18,811] INFO analysis.data_loader: [LOAD_SCHEMA] col=0ver dtype=String
[2026-07-24 12:30:18,811] INFO analysis.data_loader: [LOAD_SCHEMA] col=1ipp dtype=Int64
[2026-07-24 12:30:18,811] INFO analysis.data_loader: [LOAD_SCHEMA] col=2tmo dtype=Float64
[2026-07-24 12:30:18,811] INFO analysis.data_loader: [LOAD_SCHEMA] col=4dbn dtype=Int64
[2026-07-24 12:30:18,817] INFO analysis.data_loader: [LOAD_SCHEMA] col=4dur dtype=Float64
[2026-07-24 12:30:18,817] INFO analysis.data_loader: [LOAD_SCHEMA] col=4ksz dtype=Int64
[2026-07-24 12:30:18,817] INFO analysis.data_loader: [LOAD_SCHEMA] col=4srs dtype=Int64
[2026-07-24 12:30:18,817] INFO analysis.data_loader: [LOAD_SCHEMA] col=8ack dtype=Int64
[2026-07-24 12:30:18,817] INFO analysis.data_loader: [LOAD_SCHEMA] col=8byt dtype=Int64
[2026-07-24 12:30:18,817] INFO analysis.data_loader: [LOAD_SCHEMA] col=8dbd dtype=Int64
[2026-07-24 12:30:18,818] INFO analysis.data_loader: [LOAD_SCHEMA] col=8did dtype=Int64
[2026-07-24 12:30:18,818] INFO analysis.data_loader: [LOAD_SCHEMA] col=8pak dtype=Int64
[2026-07-24 12:30:18,818] INFO analysis.data_loader: [LOAD_SCHEMA] col=8ppk dtype=Int64
[2026-07-24 12:30:18,818] INFO analysis.data_loader: [LOAD_SCHEMA] col=8seq dtype=Float64
[2026-07-24 12:30:18,818] INFO analysis.data_loader: [LOAD_SCHEMA] col=8ses dtype=Float64
[2026-07-24 12:30:18,818] INFO analysis.data_loader: [LOAD_SCHEMA] col=:ipd dtype=String
[2026-07-24 12:30:18,818] INFO analysis.data_loader: [LOAD_SCHEMA] col=:ipd.anon dtype=String
[2026-07-24 12:30:18,822] INFO analysis.data_loader: [LOAD_SCHEMA] col=:ipd.city dtype=String
[2026-07-24 12:30:18,822] INFO analysis.data_loader: [LOAD_SCHEMA] col=:ipd.doma dtype=String
[2026-07-24 12:30:18,822] INFO analysis.data_loader: [LOAD_SCHEMA] col=:ipd.ispn dtype=String
[2026-07-24 12:30:18,822] INFO analysis.data_loader: [LOAD_SCHEMA] col=:ipd.latd dtype=String
[2026-07-24 12:30:18,822] INFO analysis.data_loader: [LOAD_SCHEMA] col=:ipd.lond dtype=String
[2026-07-24 12:30:18,822] INFO analysis.data_loader: [LOAD_SCHEMA] col=:ipd.orgn dtype=String
[2026-07-24 12:30:18,822] INFO analysis.data_loader: [LOAD_SCHEMA] col=:ips dtype=String
[2026-07-24 12:30:18,822] INFO analysis.data_loader: [LOAD_SCHEMA] col=:ips.anon dtype=String
[2026-07-24 12:30:18,822] INFO analysis.data_loader: [LOAD_SCHEMA] col=:ips.city dtype=String
[2026-07-24 12:30:18,822] INFO analysis.data_loader: [LOAD_SCHEMA] col=:ips.doma dtype=String
[2026-07-24 12:30:18,822] INFO analysis.data_loader: [LOAD_SCHEMA] col=:ips.ispn dtype=String
[2026-07-24 12:30:18,822] INFO analysis.data_loader: [LOAD_SCHEMA] col=:ips.latd dtype=String
[2026-07-24 12:30:18,822] INFO analysis.data_loader: [LOAD_SCHEMA] col=:ips.lond dtype=String
[2026-07-24 12:30:18,822] INFO analysis.data_loader: [LOAD_SCHEMA] col=:ips.orgn dtype=String
[2026-07-24 12:30:18,827] INFO analysis.data_loader: [LOAD_SCHEMA] col=:prd dtype=Int64
[2026-07-24 12:30:18,827] INFO analysis.data_loader: [LOAD_SCHEMA] col=:prs dtype=Int64
[2026-07-24 12:30:18,827] INFO analysis.data_loader: [LOAD_SCHEMA] col=cipher-suite dtype=String
[2026-07-24 12:30:18,827] INFO analysis.data_loader: [LOAD_SCHEMA] col=client-ip dtype=String
[2026-07-24 12:30:18,827] INFO analysis.data_loader: [LOAD_SCHEMA] col=cnam dtype=String
[2026-07-24 12:30:18,827] INFO analysis.data_loader: [LOAD_SCHEMA] col=crcc dtype=String
[2026-07-24 12:30:18,827] INFO analysis.data_loader: [LOAD_SCHEMA] col=dcnt dtype=String
[2026-07-24 12:30:18,827] INFO analysis.data_loader: [LOAD_SCHEMA] col=ecdhe-named-curve dtype=String
[2026-07-24 12:30:18,827] INFO analysis.data_loader: [LOAD_SCHEMA] col=name dtype=String
[2026-07-24 12:30:18,827] INFO analysis.data_loader: [LOAD_SCHEMA] col=orga dtype=String
[2026-07-24 12:30:18,827] INFO analysis.data_loader: [LOAD_SCHEMA] col=orgu dtype=Int64
[2026-07-24 12:30:18,827] INFO analysis.data_loader: [LOAD_SCHEMA] col=scnt dtype=String
[2026-07-24 12:30:18,827] INFO analysis.data_loader: [LOAD_SCHEMA] col=server-ip dtype=String
[2026-07-24 12:30:18,827] INFO analysis.data_loader: [LOAD_SCHEMA] col=snam dtype=String
[2026-07-24 12:30:18,827] INFO analysis.data_loader: [LOAD_SCHEMA] col=source-node dtype=String
[2026-07-24 12:30:18,832] INFO analysis.data_loader: [LOAD_SCHEMA] col=tabl dtype=String
[2026-07-24 12:30:18,832] INFO analysis.data_loader: [LOAD_SCHEMA] col=time dtype=String
[2026-07-24 12:30:18,832] INFO analysis.data_loader: [LOAD_SCHEMA] col=timestamp dtype=Float64
[2026-07-24 12:30:18,840] INFO analysis.data_loader: [CLEAN] Generic numeric coercion applied: [':ipd.lond', ':ipd.doma', ':ipd.ispn', 'cnam', ':ips.ispn', ':ips.doma', 'orga', 'snam', 'time', ':ips.orgn', ':ipd.orgn', 'crcc', ':ips.latd', ':ipd.latd', ':ips.city', ':ipd.city', ':ips.lond']
[2026-07-24 12:30:18,840] INFO analysis.data_loader: [CLEAN] HEX columns added hex_pairs_count: ['0cph', '0crv', '0ver', '0rnt', '0rnd']
[24/Jul/2026 12:30:37] "HEAD / HTTP/1.1" 200 0
[24/Jul/2026 12:31:07] "HEAD / HTTP/1.1" 200 0
[24/Jul/2026 12:31:37] "HEAD / HTTP/1.1" 200 0
[24/Jul/2026 12:32:07] "HEAD / HTTP/1.1" 200 0
[24/Jul/2026 12:32:37] "HEAD / HTTP/1.1" 200 0
[24/Jul/2026 12:33:07] "HEAD / HTTP/1.1" 200 0
[24/Jul/2026 12:33:37] "HEAD / HTTP/1.1" 200 0
[24/Jul/2026 12:34:07] "HEAD / HTTP/1.1" 200 0
[24/Jul/2026 12:34:37] "HEAD / HTTP/1.1" 200 0
[24/Jul/2026 12:35:07] "HEAD / HTTP/1.1" 200 0
[24/Jul/2026 12:35:37] "HEAD / HTTP/1.1" 200 0
[24/Jul/2026 12:36:07] "HEAD / HTTP/1.1" 200 0
[24/Jul/2026 12:36:37] "HEAD / HTTP/1.1" 200 0
[24/Jul/2026 12:37:07] "HEAD / HTTP/1.1" 200 0
[24/Jul/2026 12:37:37] "HEAD / HTTP/1.1" 200 0
[24/Jul/2026 12:38:07] "HEAD / HTTP/1.1" 200 0
[24/Jul/2026 12:38:37] "HEAD / HTTP/1.1" 200 0
[24/Jul/2026 12:39:07] "HEAD / HTTP/1.1" 200 0
[24/Jul/2026 12:39:37] "HEAD / HTTP/1.1" 200 0
[24/Jul/2026 12:40:07] "HEAD / HTTP/1.1" 200 0
[24/Jul/2026 12:40:37] "HEAD / HTTP/1.1" 200 0
[24/Jul/2026 12:41:07] "HEAD / HTTP/1.1" 200 0
[24/Jul/2026 12:41:37] "HEAD / HTTP/1.1" 200 0
[24/Jul/2026 12:42:07] "HEAD / HTTP/1.1" 200 0
[24/Jul/2026 12:42:37] "HEAD / HTTP/1.1" 200 0
[24/Jul/2026 12:43:07] "HEAD / HTTP/1.1" 200 0
[24/Jul/2026 12:43:37] "HEAD / HTTP/1.1" 200 0
[24/Jul/2026 12:44:07] "HEAD / HTTP/1.1" 200 0
[24/Jul/2026 12:44:37] "HEAD / HTTP/1.1" 200 0
[24/Jul/2026 12:45:07] "HEAD / HTTP/1.1" 200 0
[24/Jul/2026 12:45:37] "HEAD / HTTP/1.1" 200 0
[24/Jul/2026 12:46:07] "HEAD / HTTP/1.1" 200 0
[24/Jul/2026 12:46:37] "HEAD / HTTP/1.1" 200 0
[24/Jul/2026 12:47:07] "HEAD / HTTP/1.1" 200 0
[24/Jul/2026 12:47:37] "HEAD / HTTP/1.1" 200 0
[24/Jul/2026 12:48:07] "HEAD / HTTP/1.1" 200 0
[24/Jul/2026 12:48:37] "HEAD / HTTP/1.1" 200 0
[24/Jul/2026 12:49:07] "HEAD / HTTP/1.1" 200 0
[24/Jul/2026 12:49:37] "HEAD / HTTP/1.1" 200 0
[24/Jul/2026 12:50:07] "HEAD / HTTP/1.1" 200 0
[24/Jul/2026 12:50:37] "HEAD / HTTP/1.1" 200 0
[24/Jul/2026 12:51:07] "HEAD / HTTP/1.1" 200 0
[24/Jul/2026 12:51:37] "HEAD / HTTP/1.1" 200 0
[24/Jul/2026 12:52:07] "HEAD / HTTP/1.1" 200 0
[24/Jul/2026 12:52:37] "HEAD / HTTP/1.1" 200 0
[24/Jul/2026 12:53:07] "HEAD / HTTP/1.1" 200 0
[24/Jul/2026 12:53:37] "HEAD / HTTP/1.1" 200 0
[24/Jul/2026 12:54:07] "HEAD / HTTP/1.1" 200 0
[24/Jul/2026 12:54:37] "HEAD / HTTP/1.1" 200 0
[24/Jul/2026 12:55:07] "HEAD / HTTP/1.1" 200 0
[24/Jul/2026 12:55:37] "HEAD / HTTP/1.1" 200 0
[24/Jul/2026 12:56:07] "HEAD / HTTP/1.1" 200 0
[24/Jul/2026 12:56:37] "HEAD / HTTP/1.1" 200 0
[24/Jul/2026 12:57:07] "HEAD / HTTP/1.1" 200 0
[24/Jul/2026 12:57:37] "HEAD / HTTP/1.1" 200 0
[24/Jul/2026 12:58:07] "HEAD / HTTP/1.1" 200 0
[24/Jul/2026 12:58:37] "HEAD / HTTP/1.1" 200 0
[24/Jul/2026 12:59:07] "HEAD / HTTP/1.1" 200 0
[24/Jul/2026 12:59:37] "HEAD / HTTP/1.1" 200 0
[24/Jul/2026 13:00:07] "HEAD / HTTP/1.1" 200 0
[24/Jul/2026 13:00:37] "HEAD / HTTP/1.1" 200 0
[24/Jul/2026 13:01:07] "HEAD / HTTP/1.1" 200 0
[24/Jul/2026 13:01:37] "HEAD / HTTP/1.1" 200 0
[24/Jul/2026 13:02:07] "HEAD / HTTP/1.1" 200 0
[24/Jul/2026 13:02:37] "HEAD / HTTP/1.1" 200 0
[24/Jul/2026 13:03:07] "HEAD / HTTP/1.1" 200 0
[24/Jul/2026 13:03:37] "HEAD / HTTP/1.1" 200 0
[24/Jul/2026 13:04:07] "HEAD / HTTP/1.1" 200 0
[24/Jul/2026 13:04:37] "HEAD / HTTP/1.1" 200 0
[24/Jul/2026 13:05:07] "HEAD / HTTP/1.1" 200 0
[24/Jul/2026 13:05:37] "HEAD / HTTP/1.1" 200 0
[24/Jul/2026 13:06:07] "HEAD / HTTP/1.1" 200 0
[24/Jul/2026 13:06:37] "HEAD / HTTP/1.1" 200 0
[24/Jul/2026 13:07:07] "HEAD / HTTP/1.1" 200 0
[24/Jul/2026 13:07:37] "HEAD / HTTP/1.1" 200 0
[24/Jul/2026 13:08:07] "HEAD / HTTP/1.1" 200 0
[24/Jul/2026 13:08:37] "HEAD / HTTP/1.1" 200 0
[24/Jul/2026 13:09:07] "HEAD / HTTP/1.1" 200 0
[24/Jul/2026 13:09:37] "HEAD / HTTP/1.1" 200 0
[24/Jul/2026 13:10:07] "HEAD / HTTP/1.1" 200 0
[24/Jul/2026 13:10:37] "HEAD / HTTP/1.1" 200 0
[24/Jul/2026 13:11:07] "HEAD / HTTP/1.1" 200 0
[24/Jul/2026 13:11:37] "HEAD / HTTP/1.1" 200 0
[24/Jul/2026 13:12:07] "HEAD / HTTP/1.1" 200 0
[24/Jul/2026 13:12:37] "HEAD / HTTP/1.1" 200 0
[2026-07-24 14:04:56,246] INFO django: Restored 1 datasets from disk
[2026-07-24 14:04:56,258] INFO analysis.data_loader._csv: [LOAD] files=1 total_rows_est=200
[2026-07-24 14:04:56,258] INFO analysis.data_loader._csv: [LOAD_SCHEMA] col=0cph dtype=String
[2026-07-24 14:04:56,258] INFO analysis.data_loader._csv: [LOAD_SCHEMA] col=0crv dtype=String
[2026-07-24 14:04:56,258] INFO analysis.data_loader._csv: [LOAD_SCHEMA] col=0rnd dtype=String
[2026-07-24 14:04:56,258] INFO analysis.data_loader._csv: [LOAD_SCHEMA] col=0rnt dtype=String
[2026-07-24 14:04:56,258] INFO analysis.data_loader._csv: [LOAD_SCHEMA] col=0ver dtype=String
[2026-07-24 14:04:56,258] INFO analysis.data_loader._csv: [LOAD_SCHEMA] col=1ipp dtype=Int64
[2026-07-24 14:04:56,258] INFO analysis.data_loader._csv: [LOAD_SCHEMA] col=2tmo dtype=Float64
[2026-07-24 14:04:56,265] INFO analysis.data_loader._csv: [LOAD_SCHEMA] col=4dbn dtype=Int64
[2026-07-24 14:04:56,265] INFO analysis.data_loader._csv: [LOAD_SCHEMA] col=4dur dtype=Float64
[2026-07-24 14:04:56,265] INFO analysis.data_loader._csv: [LOAD_SCHEMA] col=4ksz dtype=Int64
[2026-07-24 14:04:56,265] INFO analysis.data_loader._csv: [LOAD_SCHEMA] col=4srs dtype=Int64
[2026-07-24 14:04:56,265] INFO analysis.data_loader._csv: [LOAD_SCHEMA] col=8ack dtype=Int64
[2026-07-24 14:04:56,265] INFO analysis.data_loader._csv: [LOAD_SCHEMA] col=8byt dtype=Int64
[2026-07-24 14:04:56,265] INFO analysis.data_loader._csv: [LOAD_SCHEMA] col=8dbd dtype=Int64
[2026-07-24 14:04:56,265] INFO analysis.data_loader._csv: [LOAD_SCHEMA] col=8did dtype=Int64
[2026-07-24 14:04:56,265] INFO analysis.data_loader._csv: [LOAD_SCHEMA] col=8pak dtype=Int64
[2026-07-24 14:04:56,265] INFO analysis.data_loader._csv: [LOAD_SCHEMA] col=8ppk dtype=Int64
[2026-07-24 14:04:56,265] INFO analysis.data_loader._csv: [LOAD_SCHEMA] col=8seq dtype=Float64
[2026-07-24 14:04:56,265] INFO analysis.data_loader._csv: [LOAD_SCHEMA] col=8ses dtype=Float64
[2026-07-24 14:04:56,270] INFO analysis.data_loader._csv: [LOAD_SCHEMA] col=:ipd dtype=String
[2026-07-24 14:04:56,270] INFO analysis.data_loader._csv: [LOAD_SCHEMA] col=:ipd.anon dtype=String
[2026-07-24 14:04:56,270] INFO analysis.data_loader._csv: [LOAD_SCHEMA] col=:ipd.city dtype=String
[2026-07-24 14:04:56,271] INFO analysis.data_loader._csv: [LOAD_SCHEMA] col=:ipd.doma dtype=String
[2026-07-24 14:04:56,271] INFO analysis.data_loader._csv: [LOAD_SCHEMA] col=:ipd.ispn dtype=String
[2026-07-24 14:04:56,271] INFO analysis.data_loader._csv: [LOAD_SCHEMA] col=:ipd.latd dtype=String
[2026-07-24 14:04:56,271] INFO analysis.data_loader._csv: [LOAD_SCHEMA] col=:ipd.lond dtype=String
[2026-07-24 14:04:56,271] INFO analysis.data_loader._csv: [LOAD_SCHEMA] col=:ipd.orgn dtype=String
[2026-07-24 14:04:56,271] INFO analysis.data_loader._csv: [LOAD_SCHEMA] col=:ips dtype=String
[2026-07-24 14:04:56,271] INFO analysis.data_loader._csv: [LOAD_SCHEMA] col=:ips.anon dtype=String
[2026-07-24 14:04:56,271] INFO analysis.data_loader._csv: [LOAD_SCHEMA] col=:ips.city dtype=String
[2026-07-24 14:04:56,274] INFO analysis.data_loader._csv: [LOAD_SCHEMA] col=:ips.doma dtype=String
[2026-07-24 14:04:56,274] INFO analysis.data_loader._csv: [LOAD_SCHEMA] col=:ips.ispn dtype=String
[2026-07-24 14:04:56,274] INFO analysis.data_loader._csv: [LOAD_SCHEMA] col=:ips.latd dtype=String
[2026-07-24 14:04:56,274] INFO analysis.data_loader._csv: [LOAD_SCHEMA] col=:ips.lond dtype=String
[2026-07-24 14:04:56,274] INFO analysis.data_loader._csv: [LOAD_SCHEMA] col=:ips.orgn dtype=String
[2026-07-24 14:04:56,274] INFO analysis.data_loader._csv: [LOAD_SCHEMA] col=:prd dtype=Int64
[2026-07-24 14:04:56,274] INFO analysis.data_loader._csv: [LOAD_SCHEMA] col=:prs dtype=Int64
[2026-07-24 14:04:56,276] INFO analysis.data_loader._csv: [LOAD_SCHEMA] col=cipher-suite dtype=String
[2026-07-24 14:04:56,276] INFO analysis.data_loader._csv: [LOAD_SCHEMA] col=client-ip dtype=String
[2026-07-24 14:04:56,276] INFO analysis.data_loader._csv: [LOAD_SCHEMA] col=cnam dtype=String
[2026-07-24 14:04:56,276] INFO analysis.data_loader._csv: [LOAD_SCHEMA] col=crcc dtype=String
[2026-07-24 14:04:56,276] INFO analysis.data_loader._csv: [LOAD_SCHEMA] col=dcnt dtype=String
[2026-07-24 14:04:56,276] INFO analysis.data_loader._csv: [LOAD_SCHEMA] col=ecdhe-named-curve dtype=String
[2026-07-24 14:04:56,276] INFO analysis.data_loader._csv: [LOAD_SCHEMA] col=name dtype=String
[2026-07-24 14:04:56,276] INFO analysis.data_loader._csv: [LOAD_SCHEMA] col=orga dtype=String
[2026-07-24 14:04:56,276] INFO analysis.data_loader._csv: [LOAD_SCHEMA] col=orgu dtype=Int64
[2026-07-24 14:04:56,280] INFO analysis.data_loader._csv: [LOAD_SCHEMA] col=scnt dtype=String
[2026-07-24 14:04:56,280] INFO analysis.data_loader._csv: [LOAD_SCHEMA] col=server-ip dtype=String
[2026-07-24 14:04:56,280] INFO analysis.data_loader._csv: [LOAD_SCHEMA] col=snam dtype=String
[2026-07-24 14:04:56,280] INFO analysis.data_loader._csv: [LOAD_SCHEMA] col=source-node dtype=String
[2026-07-24 14:04:56,280] INFO analysis.data_loader._csv: [LOAD_SCHEMA] col=tabl dtype=String
[2026-07-24 14:04:56,280] INFO analysis.data_loader._csv: [LOAD_SCHEMA] col=time dtype=String
[2026-07-24 14:04:56,280] INFO analysis.data_loader._csv: [LOAD_SCHEMA] col=timestamp dtype=Float64
[2026-07-24 14:04:56,290] INFO analysis.data_loader._csv: [CLEAN] Generic numeric coercion applied: [':ipd.lond', '0cph', ':ips.anon', '0crv', ':ipd.doma', ':ipd.ispn', '0ver', 'scnt', 'cnam', ':ips.ispn', 'tabl', 'cipher-suite', ':ips.doma', 'orga', 'snam', 'time', ':ips.orgn', ':ipd.orgn', '0rnt', 'crcc', 'ecdhe-named-curve', 'dcnt', ':ips.latd', ':ipd.latd', ':ips.city', ':ipd.city', ':ipd.anon', ':ips.lond', '0rnd']
[24/Jul/2026 14:05:07] "HEAD / HTTP/1.1" 200 0
[2026-07-24 14:05:22,226] INFO analysis.data_loader._csv: [LOAD] files=1 total_rows_est=200
[2026-07-24 14:05:22,292] INFO analysis.data_loader._csv: [LOAD_SCHEMA] col=0cph dtype=String
[2026-07-24 14:05:22,293] INFO analysis.data_loader._csv: [LOAD_SCHEMA] col=0crv dtype=String
[2026-07-24 14:05:22,293] INFO analysis.data_loader._csv: [LOAD_SCHEMA] col=0rnd dtype=String
[2026-07-24 14:05:22,293] INFO analysis.data_loader._csv: [LOAD_SCHEMA] col=0rnt dtype=String
[2026-07-24 14:05:22,293] INFO analysis.data_loader._csv: [LOAD_SCHEMA] col=0ver dtype=String
[2026-07-24 14:05:22,293] INFO analysis.data_loader._csv: [LOAD_SCHEMA] col=1ipp dtype=Int64
[2026-07-24 14:05:22,293] INFO analysis.data_loader._csv: [LOAD_SCHEMA] col=2tmo dtype=Float64
[2026-07-24 14:05:22,293] INFO analysis.data_loader._csv: [LOAD_SCHEMA] col=4dbn dtype=Int64
[2026-07-24 14:05:22,293] INFO analysis.data_loader._csv: [LOAD_SCHEMA] col=4dur dtype=Float64
[2026-07-24 14:05:22,293] INFO analysis.data_loader._csv: [LOAD_SCHEMA] col=4ksz dtype=Int64
[2026-07-24 14:05:22,293] INFO analysis.data_loader._csv: [LOAD_SCHEMA] col=4srs dtype=Int64
[2026-07-24 14:05:22,293] INFO analysis.data_loader._csv: [LOAD_SCHEMA] col=8ack dtype=Int64
[2026-07-24 14:05:22,293] INFO analysis.data_loader._csv: [LOAD_SCHEMA] col=8byt dtype=Int64
[2026-07-24 14:05:22,293] INFO analysis.data_loader._csv: [LOAD_SCHEMA] col=8dbd dtype=Int64
[2026-07-24 14:05:22,293] INFO analysis.data_loader._csv: [LOAD_SCHEMA] col=8did dtype=Int64
[2026-07-24 14:05:22,293] INFO analysis.data_loader._csv: [LOAD_SCHEMA] col=8pak dtype=Int64
[2026-07-24 14:05:22,293] INFO analysis.data_loader._csv: [LOAD_SCHEMA] col=8ppk dtype=Int64
[2026-07-24 14:05:22,293] INFO analysis.data_loader._csv: [LOAD_SCHEMA] col=8seq dtype=Float64
[2026-07-24 14:05:22,293] INFO analysis.data_loader._csv: [LOAD_SCHEMA] col=8ses dtype=Float64
[2026-07-24 14:05:22,293] INFO analysis.data_loader._csv: [LOAD_SCHEMA] col=:ipd dtype=String
[2026-07-24 14:05:22,293] INFO analysis.data_loader._csv: [LOAD_SCHEMA] col=:ipd.anon dtype=String
[2026-07-24 14:05:22,293] INFO analysis.data_loader._csv: [LOAD_SCHEMA] col=:ipd.city dtype=String
[2026-07-24 14:05:22,293] INFO analysis.data_loader._csv: [LOAD_SCHEMA] col=:ipd.doma dtype=String
[2026-07-24 14:05:22,300] INFO analysis.data_loader._csv: [LOAD_SCHEMA] col=:ipd.ispn dtype=String
[2026-07-24 14:05:22,300] INFO analysis.data_loader._csv: [LOAD_SCHEMA] col=:ipd.latd dtype=String
[2026-07-24 14:05:22,301] INFO analysis.data_loader._csv: [LOAD_SCHEMA] col=:ipd.lond dtype=String
[2026-07-24 14:05:22,301] INFO analysis.data_loader._csv: [LOAD_SCHEMA] col=:ipd.orgn dtype=String
[2026-07-24 14:05:22,301] INFO analysis.data_loader._csv: [LOAD_SCHEMA] col=:ips dtype=String
[2026-07-24 14:05:22,301] INFO analysis.data_loader._csv: [LOAD_SCHEMA] col=:ips.anon dtype=String
[2026-07-24 14:05:22,301] INFO analysis.data_loader._csv: [LOAD_SCHEMA] col=:ips.city dtype=String
[2026-07-24 14:05:22,301] INFO analysis.data_loader._csv: [LOAD_SCHEMA] col=:ips.doma dtype=String
[2026-07-24 14:05:22,301] INFO analysis.data_loader._csv: [LOAD_SCHEMA] col=:ips.ispn dtype=String
[2026-07-24 14:05:22,304] INFO analysis.data_loader._csv: [LOAD_SCHEMA] col=:ips.latd dtype=String
[2026-07-24 14:05:22,304] INFO analysis.data_loader._csv: [LOAD_SCHEMA] col=:ips.lond dtype=String
[2026-07-24 14:05:22,304] INFO analysis.data_loader._csv: [LOAD_SCHEMA] col=:ips.orgn dtype=String
[2026-07-24 14:05:22,304] INFO analysis.data_loader._csv: [LOAD_SCHEMA] col=:prd dtype=Int64
[2026-07-24 14:05:22,304] INFO analysis.data_loader._csv: [LOAD_SCHEMA] col=:prs dtype=Int64
[2026-07-24 14:05:22,304] INFO analysis.data_loader._csv: [LOAD_SCHEMA] col=cipher-suite dtype=String
[2026-07-24 14:05:22,304] INFO analysis.data_loader._csv: [LOAD_SCHEMA] col=client-ip dtype=String
[2026-07-24 14:05:22,304] INFO analysis.data_loader._csv: [LOAD_SCHEMA] col=cnam dtype=String
[2026-07-24 14:05:22,304] INFO analysis.data_loader._csv: [LOAD_SCHEMA] col=crcc dtype=String
[2026-07-24 14:05:22,304] INFO analysis.data_loader._csv: [LOAD_SCHEMA] col=dcnt dtype=String
[2026-07-24 14:05:22,304] INFO analysis.data_loader._csv: [LOAD_SCHEMA] col=ecdhe-named-curve dtype=String
[2026-07-24 14:05:22,304] INFO analysis.data_loader._csv: [LOAD_SCHEMA] col=name dtype=String
[2026-07-24 14:05:22,304] INFO analysis.data_loader._csv: [LOAD_SCHEMA] col=orga dtype=String
[2026-07-24 14:05:22,304] INFO analysis.data_loader._csv: [LOAD_SCHEMA] col=orgu dtype=Int64
[2026-07-24 14:05:22,309] INFO analysis.data_loader._csv: [LOAD_SCHEMA] col=scnt dtype=String
[2026-07-24 14:05:22,310] INFO analysis.data_loader._csv: [LOAD_SCHEMA] col=server-ip dtype=String
[2026-07-24 14:05:22,310] INFO analysis.data_loader._csv: [LOAD_SCHEMA] col=snam dtype=String
[2026-07-24 14:05:22,310] INFO analysis.data_loader._csv: [LOAD_SCHEMA] col=source-node dtype=String
[2026-07-24 14:05:22,310] INFO analysis.data_loader._csv: [LOAD_SCHEMA] col=tabl dtype=String
[2026-07-24 14:05:22,310] INFO analysis.data_loader._csv: [LOAD_SCHEMA] col=time dtype=String
[2026-07-24 14:05:22,310] INFO analysis.data_loader._csv: [LOAD_SCHEMA] col=timestamp dtype=Float64
[2026-07-24 14:05:22,315] INFO analysis.data_loader._csv: [CLEAN] Generic numeric coercion applied: [':ipd.lond', '0cph', ':ips.anon', '0crv', ':ipd.doma', ':ipd.ispn', '0ver', 'scnt', 'cnam', ':ips.ispn', 'tabl', 'cipher-suite', ':ips.doma', 'orga', 'snam', 'time', ':ips.orgn', ':ipd.orgn', '0rnt', 'crcc', 'ecdhe-named-curve', 'dcnt', ':ips.latd', ':ipd.latd', ':ips.city', ':ipd.city', ':ipd.anon', ':ips.lond', '0rnd']
[2026-07-24 14:05:22,337] INFO analysis.geoip: [GEOIP] loaded 0 ranges (0 skipped)
[2026-07-24 14:05:22,337] INFO analysis.geoip: [GEOIP] loaded 211 cached entries
[24/Jul/2026 14:05:22] "GET /clusters/9/ HTTP/1.1" 200 28390
[24/Jul/2026 14:05:22] "GET /globe/?embed=1&data=upload_9 HTTP/1.1" 200 5545
+1 -1
View File
@@ -1,7 +1,7 @@
Performing system checks...
System check identified no issues (0 silenced).
July 24, 2026 - 12:30:18
July 24, 2026 - 14:04:56
Django version 4.2.30, using settings 'tianxuan.settings'
Starting development server at http://127.0.0.1:8765/
Quit the server with CTRL-BREAK.