Josh Bleecher Snyder
e98f2c57d6
tsweb: add StdHandlerOpts that accepts an options struct
...
I'm about to add yet another StdHandler option.
Time to refactor.
Signed-off-by: Josh Bleecher Snyder <josh@tailscale.com>
2020-10-30 11:07:57 -07:00
David Crawshaw
815bf017fc
tsweb: when unwrapping HTTPError, record the user-facing message also in the log
...
There's often some useful piece of information in there not already
repeated in the internal error.
Signed-off-by: David Crawshaw <crawshaw@tailscale.com>
2020-09-17 10:12:48 -04:00
David Crawshaw
dea3ef0597
tsweb: make JSONHandlerFunc implement ReturnHandler, not http.Handler
...
This way something is capable of logging errors on the server.
Fixes #766
Signed-off-by: David Crawshaw <crawshaw@tailscale.com>
2020-09-17 09:07:32 -04:00
halulu
1835bb6f85
tsweb: rewrite JSONHandler without using reflect ( #684 )
...
Closes #656 #657
Signed-off-by: Zijie Lu <zijie@tailscale.com>
2020-08-18 17:37:01 -04:00
Zijie Lu
c9e40abfb8
tsweb: jsonhandler: fix content type
...
Signed-off-by: Zijie Lu <zijie@tailscale.com>
2020-07-14 15:27:26 -04:00
Zijie Lu
d1a30be275
tsweb: JSONHandler: supports HTTPError
...
Signed-off-by: Zijie Lu <zijie@tailscale.com>
2020-06-09 17:40:45 -04:00
Zijie Lu
5e1ee4be53
tsweb: fix JSONHandler nil response
...
Signed-off-by: Zijie Lu <zijie@tailscale.com>
2020-06-08 15:48:38 -04:00
halulu
1d2e497d47
tsweb: JSONHandler using reflect ( #437 )
...
Updates #395 #437
Signed-off-by: Zijie Lu <zijie@tailscale.com>
2020-06-05 00:10:50 -04:00
David Anderson
0038223632
tstest: rename from testy.
...
Signed-off-by: David Anderson <danderson@tailscale.com>
2020-04-28 20:45:12 -07:00
David Anderson
eccae0cd0c
tsweb: add ReturnHandlerFunc.
...
Signed-off-by: David Anderson <danderson@tailscale.com>
2020-04-22 15:34:28 -07:00
Brad Fitzpatrick
7bf436ba30
tsweb: add some Benchmarks
...
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2020-04-05 13:16:36 -07:00
Brad Fitzpatrick
64334143a1
tsweb: rename Handler to ReturnHandler
...
The name's been bugging me for a long time.
I liked neither the overlap between tsweb.Handler and http.Handler,
nor the name "ServeHTTPErr" which sounds like it's an error being
returned, like it's an error handler and not sometimes a happy path.
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2020-04-05 13:16:36 -07:00
David Anderson
b446de103a
tsweb: fix tests.
...
Signed-off-by: David Anderson <dave@natulte.net>
2020-04-05 00:22:03 -07:00
David Anderson
af3a9dfad6
tsweb: add a StdHandler that doesn't log 200 responses.
...
Signed-off-by: David Anderson <dave@natulte.net>
2020-04-05 00:14:38 -07:00
Brad Fitzpatrick
2863e49db9
tsweb: don't flush, treat no-op Handler as 200, like Go
...
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2020-04-04 16:11:53 -07:00
David Anderson
5d995d9d6b
tsweb: add a test case for nil child errors in tsweb.Error.
...
Signed-off-by: David Anderson <dave@natulte.net>
2020-04-03 10:37:39 -07:00
David Anderson
2c2dff9559
tsweb: don't panic if we get a tsweb.Error with no embedded error.
...
It's technically weird to return a tsweb.Error with no child err,
but it's a sensible thing to want to do, and we shouldn't panic
if it happens.
Signed-off-by: David Anderson <dave@natulte.net>
2020-04-03 10:36:21 -07:00
David Anderson
12a6626a94
tsweb: use a ResponseWriter wrapper to log more accurately.
...
Also adds tests, because the logging handler is acquiring a fair
number of branches.
Signed-off-by: David Anderson <dave@natulte.net>
2020-03-19 20:11:07 -07:00
Brad Fitzpatrick
6de37f4cc0
tsweb: move some comments, add a TODO
2020-03-18 09:54:48 -07:00
David Anderson
df4636567f
tsweb: adjust names and docs of the "handler with errors" functions.
...
Signed-off-by: David Anderson <dave@natulte.net>
2020-03-18 01:39:01 -07:00
David Anderson
98eceae55e
tsweb: add a Handler type.
...
Handler is like http.Handler, but returns errors. ErrHandler
converts back to an http.Handler, with added error handling
and logging.
Signed-off-by: David Anderson <dave@natulte.net>
2020-03-17 21:34:44 -07:00
Brad Fitzpatrick
c706731dc7
tsweb: add copyright header
...
And fix an unlikely but potential crash.
2020-03-17 20:08:13 -07:00
David Anderson
a567c56971
tsweb: pull in tlog data structures from corp repo.
...
This is a prelude to having logging helpers in tsweb.
Signed-off-by: David Anderson <dave@natulte.net>
2020-03-17 17:21:50 -07:00
Brad Fitzpatrick
5c1e443d34
wgengine/monitor: don't call LinkChange when interfaces look unchanged
...
Basically, don't trust the OS-level link monitor to only tell you
interesting things. Sanity check it.
Also, move the interfaces package into the net directory now that we
have it.
2020-03-10 11:03:19 -07:00
Brad Fitzpatrick
a9cd8f31de
tsweb: don't double import expvar; appease staticcheck
2020-03-06 13:08:32 -08:00
Brad Fitzpatrick
890f5dff40
tsweb: export runtime.MemStats var in Prometheus format
2020-03-06 13:02:01 -08:00
Brad Fitzpatrick
61f3fda405
tsweb: let expvar.Ints be gauges too
2020-03-05 15:10:01 -08:00
Brad Fitzpatrick
57de94c7aa
tsweb: add /debug/ access via &debugkey + TS_DEBUG_KEY_PATH
2020-03-04 13:49:30 -08:00
David Anderson
d580157921
tsweb: quote label values to comply with Prometheus format.
2020-03-04 13:46:00 -08:00
David Anderson
f192c05413
metrics: add a LabelMap type for variables with 1 label dimension.
...
This lets us publish sets of vars that are breakdowns along one
dimension in a format that Prometheus and Grafana natively know
how to do useful things with.
Signed-off-by: David Anderson <dave@natulte.net>
2020-03-04 13:22:50 -08:00
Brad Fitzpatrick
e371520cc5
tsweb, derp: add expvar http.Handler for Prometheus's format
...
And add some opinions.
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2020-03-03 13:59:16 -08:00
Brad Fitzpatrick
824f825552
tsweb, cmd/derper: move common web/debug stuff from derper to new tsweb
...
Signed-off-by: Brad Fitzpatrick <bradfitz@tailscale.com>
2020-02-25 10:06:56 -08:00