Skip to content

Commit a3cb0d4

Browse files
mininetmininet
mininet
authored and
mininet
committed
Add rest endpoints to get statistics
1 parent ef5cad8 commit a3cb0d4

File tree

1 file changed

+19
-3
lines changed

1 file changed

+19
-3
lines changed

esspresso.go

+19-3
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import (
44
"flag"
55
"fmt"
66
"io/ioutil"
7+
"net/http"
78
"log"
89
"time"
910
"github.com/google/gopacket"
@@ -14,6 +15,9 @@ import (
1415
func main() {
1516
var err error
1617

18+
requests := 0
19+
responses := 0
20+
1721
// cmd line options
1822
var (
1923
device = flag.String("device", "docker0", "device to sniff packets from")
@@ -30,6 +34,21 @@ func main() {
3034
log.SetOutput(ioutil.Discard)
3135
}
3236

37+
38+
go func() {
39+
http.HandleFunc("/requests", func(w http.ResponseWriter, r *http.Request) {
40+
if _, err := w.Write([]byte(fmt.Sprintf("%d\n", requests))); err != nil {
41+
log.Fatal("Can't write rate")
42+
}
43+
})
44+
http.HandleFunc("/responses", func(w http.ResponseWriter, r *http.Request) {
45+
if _, err := w.Write([]byte(fmt.Sprintf("%d\n", responses))); err != nil {
46+
log.Fatal("Can't write rate")
47+
}
48+
})
49+
log.Fatal(http.ListenAndServe(":6666", nil))
50+
}()
51+
3352
requestFilter := fmt.Sprintf("src %s and dst %s and (tcp[0xd] & tcp-syn) != 0", *clientIP, *gorbIP)
3453
responseFilter := fmt.Sprintf("dst %s and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)", *clientIP)
3554

@@ -71,9 +90,6 @@ func main() {
7190
}
7291
responsePacketSource = gopacket.NewPacketSource(handle_res, handle_res.LinkType())
7392

74-
requests := 0
75-
responses := 0
76-
7793
for {
7894
select {
7995
case request := <-requestPacketSource.Packets():

0 commit comments

Comments
 (0)