协议支持
内置 16 个 Wasm 包,HTTP 家族在一个包内共享连接状态。实现范围以下表为准;“支持某协议”不代表实现所有版本、扩展、认证和复制语义。
能力矩阵
| 协议 | 可用能力 | 主要限制 |
|---|---|---|
| HTTP/1.x | 请求阶段事件、事务、流水线、chunked/trailers、gzip/deflate、升级 | 未支持的 Upgrade 显式异常 |
| HTTP/2 | HPACK、并发 stream、CONTINUATION、trailers、RST/GOAWAY、h2c | 每连接 64 个 stream;需要可见明文和 SETTINGS 上下文 |
| WebSocket | 握手校验、双向分片、控制帧、UTF-8、hex 审计 | 支持 permessage-deflate;其他扩展拒绝,压缩/解压消息各最多 64 KiB |
| gRPC | unary/streaming、trailers 状态、消息计数、gzip、descriptor 解码 | HTTP 200 不代表 RPC 成功;无 descriptor 时不猜测消息类型 |
| DNS UDP/TCP | 关联、压缩域名、常见记录、TTL、回答/权威/附加区 | 不验证 DNSSEC;不自动解密 DoH/DoT |
| TLS | Hello、SNI、版本、套件、可见 ALPN、TLS 1.2 可见证书 | 不验证信任链;TLS 1.3 加密证书/ALPN 无法从网卡恢复 |
| MySQL | 普通/预处理、多结果、参数、long data、只读游标/FETCH | 不解析 binlog 复制;不支持的游标显式拒绝 |
| PostgreSQL | simple/extended、预处理、流水线、COPY IN/OUT/BOTH | 复制载荷仅有界审计,无 WAL 业务语义 |
| Redis | inline、RESP2/3、流水线、订阅/推送、MONITOR/RESET | SYNC/PSYNC 复制不支持;认证内容不输出 |
| MongoDB | OP_MSG、BSON、ID 关联、snappy/zlib/zstd、CRC32C | 旧 OP_QUERY/REPLY 仅 hello;帧上限 1 MiB |
| Kafka | Produce v0–12、Fetch v0–17、batch v2、常见压缩 | 其他 API 仅元数据;不解析非长度封装 SASL |
| MQTT | 3.1.1/5.0、QoS 0/1/2、订阅、topic alias、DUP | 必须看到 CONNECT;不输出 CONNECT/AUTH 凭据 |
| AMQP | 0-9-1 publish/deliver/get/return、publisher confirm | 不支持 AMQP 1.0;认证协商不输出 |
| Dubbo | Dubbo 2、请求 ID、Hessian2 方法元数据、响应/异常 | 不支持 Triple、反向请求或完整参数对象解码 |
| Thrift | framed binary/compact、方法/ID、oneway、异常 | 不支持 unframed、HeaderTransport、反向请求 |
| Memcached | classic ASCII、多键读取、非 quiet binary、命中/缺失 | 不支持 meta、UDP、binary quiet/STAT;noreply 不推断成功 |
| NATS | Core、PUB/MSG、HPUB/HMSG、同连接独占 reply 请求应答 | 不支持 JetStream 语义、集群路由、WebSocket;观察发布不等于送达 |
| LDAP v3 | Bind 结果、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 集合:
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 探针。
查看本机真实加载能力
netflowscout plugin info --config /etc/netflowscout/netflowscout.json
netflowscout status --component analyzer --config /etc/netflowscout/netflowscout.jsonmanifest 的 capabilities 描述实现范围;运行版本、模块摘要和实际请求验证共同证明本机生效。内置两个 shard 共声明 544 MiB 线性内存,总预算 640 MiB,重载含旧代际上限 1280 MiB。声明上限不等于 RSS;按需加载协议可减少预算。