added loglines to http get requests

This commit is contained in:
Elad Nachmias 2018-12-06 12:40:41 +05:30
parent 0edb2bbfe1
commit 4f589df12f
2 changed files with 60 additions and 6 deletions

View file

@ -3,10 +3,12 @@ package main
import ( import (
"bytes" "bytes"
"crypto/md5" "crypto/md5"
"crypto/tls"
"fmt" "fmt"
"io" "io"
"io/ioutil" "io/ioutil"
"net/http" "net/http"
"net/http/httptrace"
"os" "os"
"os/exec" "os/exec"
"strings" "strings"
@ -306,10 +308,39 @@ func fetchFeed(topic string, user string, endpoint string, original []byte, ruid
time.Sleep(3 * time.Second) time.Sleep(3 * time.Second)
log.Trace("http get request (feed)", "ruid", ruid, "api", endpoint, "topic", topic, "user", user) log.Trace("http get request (feed)", "ruid", ruid, "api", endpoint, "topic", topic, "user", user)
res, err := http.Get(endpoint + "/bzz-feed:/?topic=" + topic + "&user=" + user)
reqUri := endpoint + "/bzz-feed:/?topic=" + topic + "&user=" + user
req, _ := http.NewRequest("GET", reqUri, nil)
trace := &httptrace.ClientTrace{
GetConn: func(_ string) { log.Trace("http get request (feed) - GetConn") },
GotConn: func(_GotConnInfo) { log.Trace("http get request (feed) - GotConn") },
PutIdleConn: func(err error) { log.Trace("http get request (feed) - PutIdleConn", "err", err) },
GotFirstResponseByte: func() { log.Trace("http get request (feed) - GotFirstResponseByte") },
Got100Continue: func() { log.Trace("http get request (feed) - Got100Continue") },
DNSStart: func(_ DNSStartInfo) { log.Trace("http get request (feed) - DNSStart") },
DNSDone: func(_ DNSDoneInfo) { log.Trace("http get request (feed) - DNSDone") },
ConnectStart: func(network, addr string) {
log.Trace("http get request (feed) - ConnectStart", "network", network, "addr", addr)
},
ConnectDone: func(network, addr string, err error) {
log.Trace("http get request (feed) - ConnectDone", "network", network, "addr", addr, "err", err)
},
WroteHeaders: func() { log.Trace("http get request (feed) - WroteHeaders(request)") },
Wait100Continue: func() { log.Trace("http get request (feed) - Wait100Continue") },
WroteRequest: func(_ WroteRequestInfo) { log.Trace("http get request (feed) - WroteRequest") },
}
req = req.WithContext(httptrace.WithClientTrace(req.Context(), trace))
transport := http.DefaultTransport
transport.TLSClientConfig = &tls.Config{InsecureSkipVerify: true}
res, err := transport.RoundTrip(req)
if err != nil { if err != nil {
log.Error(err.Error(), "ruid", ruid)
return err return err
} }
log.Trace("http get response (feed)", "ruid", ruid, "api", endpoint, "topic", topic, "user", user, "code", res.StatusCode, "len", res.ContentLength) log.Trace("http get response (feed)", "ruid", ruid, "api", endpoint, "topic", topic, "user", user, "code", res.StatusCode, "len", res.ContentLength)
if res.StatusCode != 200 { if res.StatusCode != 200 {

View file

@ -26,6 +26,7 @@ import (
"io" "io"
"io/ioutil" "io/ioutil"
"net/http" "net/http"
"net/http/httptrace"
"os" "os"
"os/exec" "os/exec"
"strings" "strings"
@ -139,12 +140,34 @@ func fetch(hash string, endpoint string, original []byte, ruid string) error {
time.Sleep(3 * time.Second) time.Sleep(3 * time.Second)
log.Trace("http get request", "ruid", ruid, "api", endpoint, "hash", hash) log.Trace("http get request", "ruid", ruid, "api", endpoint, "hash", hash)
client := &http.Client{Transport: &http.Transport{
TLSClientConfig: &tls.Config{InsecureSkipVerify: true}, reqUri := endpoint + "/bzz:/" + hash + "/"
}} req, _ := http.NewRequest("GET", reqUri, nil)
res, err := client.Get(endpoint + "/bzz:/" + hash + "/") trace := &httptrace.ClientTrace{
GetConn: func(_ string) { log.Trace("http get request - GetConn") },
GotConn: func(_GotConnInfo) { log.Trace("http get request - GotConn") },
PutIdleConn: func(err error) { log.Trace("http get request - PutIdleConn", "err", err) },
GotFirstResponseByte: func() { log.Trace("http get request - GotFirstResponseByte") },
Got100Continue: func() { log.Trace("http get request - Got100Continue") },
DNSStart: func(_ DNSStartInfo) { log.Trace("http get request - DNSStart") },
DNSDone: func(_ DNSDoneInfo) { log.Trace("http get request - DNSDone") },
ConnectStart: func(network, addr string) {
log.Trace("http get request - ConnectStart", "network", network, "addr", addr)
},
ConnectDone: func(network, addr string, err error) {
log.Trace("http get request - ConnectDone", "network", network, "addr", addr, "err", err)
},
WroteHeaders: func() { log.Trace("http get request - WroteHeaders(request)") },
Wait100Continue: func() { log.Trace("http get request - Wait100Continue") },
WroteRequest: func(_ WroteRequestInfo) { log.Trace("http get request - WroteRequest") },
}
req = req.WithContext(httptrace.WithClientTrace(req.Context(), trace))
transport := http.DefaultTransport
transport.TLSClientConfig = &tls.Config{InsecureSkipVerify: true}
res, err := transport.RoundTrip(req)
if err != nil { if err != nil {
log.Warn(err.Error(), "ruid", ruid) log.Error(err.Error(), "ruid", ruid)
return err return err
} }
log.Trace("http get response", "ruid", ruid, "api", endpoint, "hash", hash, "code", res.StatusCode, "len", res.ContentLength) log.Trace("http get response", "ruid", ruid, "api", endpoint, "hash", hash, "code", res.StatusCode, "len", res.ContentLength)