跳至正文

协议支持 ​

内置 16 个 Wasm 包,HTTP 家族在一个包内共享连接状态。实现范围以下表为准;“支持某协议”不代表实现所有版本、扩展、认证和复制语义。

能力矩阵 ​

协议可用能力主要限制
HTTP/1.x请求阶段事件、事务、流水线、chunked/trailers、gzip/deflate、升级未支持的 Upgrade 显式异常
HTTP/2HPACK、并发 stream、CONTINUATION、trailers、RST/GOAWAY、h2c每连接 64 个 stream;需要可见明文和 SETTINGS 上下文
WebSocket握手校验、双向分片、控制帧、UTF-8、hex 审计支持 permessage-deflate;其他扩展拒绝,压缩/解压消息各最多 64 KiB
gRPCunary/streaming、trailers 状态、消息计数、gzip、descriptor 解码HTTP 200 不代表 RPC 成功;无 descriptor 时不猜测消息类型
DNS UDP/TCP关联、压缩域名、常见记录、TTL、回答/权威/附加区不验证 DNSSEC;不自动解密 DoH/DoT
TLSHello、SNI、版本、套件、可见 ALPN、TLS 1.2 可见证书不验证信任链;TLS 1.3 加密证书/ALPN 无法从网卡恢复
MySQL普通/预处理、多结果、参数、long data、只读游标/FETCH不解析 binlog 复制;不支持的游标显式拒绝
PostgreSQLsimple/extended、预处理、流水线、COPY IN/OUT/BOTH复制载荷仅有界审计,无 WAL 业务语义
Redisinline、RESP2/3、流水线、订阅/推送、MONITOR/RESETSYNC/PSYNC 复制不支持;认证内容不输出
MongoDBOP_MSG、BSON、ID 关联、snappy/zlib/zstd、CRC32C旧 OP_QUERY/REPLY 仅 hello;帧上限 1 MiB
KafkaProduce v0–12、Fetch v0–17、batch v2、常见压缩其他 API 仅元数据;不解析非长度封装 SASL
MQTT3.1.1/5.0、QoS 0/1/2、订阅、topic alias、DUP必须看到 CONNECT;不输出 CONNECT/AUTH 凭据
AMQP0-9-1 publish/deliver/get/return、publisher confirm不支持 AMQP 1.0;认证协商不输出
DubboDubbo 2、请求 ID、Hessian2 方法元数据、响应/异常不支持 Triple、反向请求或完整参数对象解码
Thriftframed binary/compact、方法/ID、oneway、异常不支持 unframed、HeaderTransport、反向请求
Memcachedclassic ASCII、多键读取、非 quiet binary、命中/缺失不支持 meta、UDP、binary quiet/STAT;noreply 不推断成功
NATSCore、PUB/MSG、HPUB/HMSG、同连接独占 reply 请求应答不支持 JetStream 语义、集群路由、WebSocket;观察发布不等于送达
LDAP v3Bind 结果、Search 计数、ID 关联、增删改、Extended OID仅元数据,无认证/属性值/过滤器值;不支持 SASL 安全层或分页合并
HTTP/3被动 goquic 明文、独立 stream、FIN/reset、静态 QPACK仅受支持的 quic-go;不解密镜像 UDP,见下文

请求、正文与解码 ​

http.request 默认关闭,开启后在完整请求头到达时产生;只有 http.transaction 计入 HTTP 业务请求统计。query 默认不保留,header 默认白名单为 content-type/x-request-id/traceparent。配置白名单不等于允许原文输出,仍受隐私策略控制。

gRPC 可加载包含依赖的 descriptor 集合:

sh
protoc --include_imports --descriptor_set_out=service.pb service.proto

主配置加入 "grpc":{"descriptors":["./service.pb"]} 后重启分析器。grpc.request_json/response_json 是消息数组 JSON 字符串,可用 DSL 的 JSON pointer 函数判断。decoded 只说明保留部分解码成功;完整内容判断还必须检查 not truncated 及完整性。未知压缩、缺失上下文或解码失败不会被解释成健康。

被动 HTTP/3 ​

使用 module=goquic、protocol=http3。目前支持 quic-go v0.64.0 / v0.59.1;运行证据为 Linux arm64 / Go 1.26.9。需要 Linux ≥ 5.17、BTF、root、目标 ELF 符号与 DWARF。剥离符号、缺失 DWARF、不支持的依赖布局或其他 QUIC 实现会拒绝挂载。

支持静态 QPACK;动态 QPACK、server push、WebTransport 显式拒绝。普通 OpenSSL/Go TLS 探针不能替代 QUIC 探针。

查看本机真实加载能力 ​

sh
netflowscout plugin info --config /etc/netflowscout/netflowscout.json
netflowscout status --component analyzer --config /etc/netflowscout/netflowscout.json

manifest 的 capabilities 描述实现范围;运行版本、模块摘要和实际请求验证共同证明本机生效。内置两个 shard 共声明 544 MiB 线性内存,总预算 640 MiB,重载含旧代际上限 1280 MiB。声明上限不等于 RSS;按需加载协议可减少预算。