httpstat icon indicating copy to clipboard operation
httpstat copied to clipboard

Higher level HTTP tracing for Go

httpstat

WIP Go HTTP tracing pkg. Not yet in production for Apex Ping, but likely will be at some point.

Example

res, _ := httpstat.Request("GET", "http://apex.sh", nil, nil)
enc := json.NewEncoder(os.Stderr)
enc.SetIndent("", "  ")
enc.Encode(res.Stats())
{
  "status": 200,
  "redirects": 1,
  "tls": true,
  "header": {
    "Age": [
      "2687"
    ],
    "Content-Length": [
      "9095"
    ],
    "Content-Type": [
      "text/html"
    ],
    "Date": [
      "Wed, 28 Jun 2017 03:13:39 GMT"
    ],
    "Etag": [
      "\"3889de5294fd56ac2596668b3943b58e\""
    ],
    "Last-Modified": [
      "Tue, 27 Jun 2017 18:32:26 GMT"
    ],
    "Server": [
      "AmazonS3"
    ],
    "Vary": [
      "Accept-Encoding"
    ],
    "Via": [
      "1.1 6a1e4dd9fa29c61c4b71a53d6bf94267.cloudfront.net (CloudFront)"
    ],
    "X-Amz-Cf-Id": [
      "zFqohdPbqpqeXvMdB2mr8m9JiUIBCw_tMfDUY_RfaOzvdvShxEub-Q=="
    ],
    "X-Cache": [
      "Hit from cloudfront"
    ]
  },
  "header_size": 396,
  "body_size": 9095,
  "time_dns": 1244723,
  "time_connect": 19610427,
  "time_tls": 101961103,
  "time_wait": 21167169,
  "time_response": 21330931,
  "time_download": 163762,
  "time_total": 145177108,
  "time_total_with_redirects": 193749062,
  "time_redirects": 48571954,
  "traces": [
    {
      "tls": false,
      "time_dns": 1789711,
      "time_connect": 21597753,
      "time_tls": 0,
      "time_wait": 24391045,
      "time_response": 169912459,
      "time_download": 145521414,
      "time_total": 193749608
    },
    {
      "tls": true,
      "time_dns": 1244723,
      "time_connect": 19610427,
      "time_tls": 101961103,
      "time_wait": 21167169,
      "time_response": 21338000,
      "time_download": 170831,
      "time_total": 145184177
    }
  ]
}

GoDoc