我正在玩nfqueue读取包并修改它们.不幸的是,我有点卡在改变包的目标端口.请参阅下面的代码段.想法是将dest端口8888重写为8000.我确实看到修改后的软件包从队列中出来,但如果我想通过连接到端口8888连接到侦听端口8000的HTTP服务器,则连接超时.我假设包中有一些形式错误的东西.
package main
import (
"os"
"os/signal"
"syscall"
"github.com/chifflier/nfqueue-go/nfqueue"
"github.com/coreos/go-iptables/iptables"
"github.com/google/gopacket"
"github.com/google/gopacket/layers"
)
func sendNewPacket(payload *nfqueue.Payload, layers ...gopacket.SerializableLayer) {
buffer := gopacket.NewSerializeBuffer()
gopacket.SerializeLayers(buffer, gopacket.SerializeOptions{FixLengths: true, ComputeChecksums: true}, layers...)
outgoingPacket := buffer.Bytes()
payload.SetVerdictModified(nfqueue.NF_ACCEPT, outgoingPacket)
}
func realCallback(payload *nfqueue.Payload) int {
packet := gopacket.NewPacket(payload.Data, layers.LayerTypeIPv4, gopacket.Default)
ethLayer := packet.Layer(layers.LayerTypeEthernet)
eth, _ := ethLayer.(*layers.Ethernet)
if ipLayer := packet.Layer(layers.LayerTypeIPv4); ipLayer != nil {
ip, _ := ipLayer.(*layers.IPv4)
if tcpLayer := packet.Layer(layers.LayerTypeTCP); tcpLayer != nil {
tcp, _ := …
Run Code Online (Sandbox Code Playgroud) 我正在研究异常值检测.Brendan Gregg有一篇非常好的文章,我对他的可视化特别感兴趣.他使用的方法之一是频率跟踪.
我试图使用这个例子在matplotlib中重现这个.看起来像这样:
情节基于这个答案:https://stackoverflow.com/a/4152016/948369
现在我的问题就像Brendan所描述的那样,我有一条连续的线来掩盖异常值(我简化了输入值,所以你仍然可以看到它们):
对于不存在的值,使这条线"不连续"的任何帮助?
我的资源/ api有一个方法POST,它将身体代理到Kinesis Firehose(然后是ES).同时我希望它触发Lambda函数.
我尝试添加一个额外的方法ANY来触发Lambda函数,但API Gateway似乎更喜欢POST处理程序.
我知道我可以在POST上触发Lambda并从Lambda函数提交给Firehose,但我更喜欢让这两个人相互独立.