This makes it so we can encode errors in HTTP headers so long as the
encoder did not write anything.
This also changes the behavior to encode the stats trailer even in the
event of an error.
Introduces the Statisticser interface which ResultIterators may
implement.
The HTTP implementation uses HTTP trailers to preserve the statistics.
This way we do not need to have all encoders and decoders support
statistics.
This will match the /ping endpoint from the influxdb 1.x httpd service.
This endpoint is used by many of the clients that use the query service
and it will also be helpful for testing that the transpiler service is
up and working.
In the future, we will add the appropriate health endpoint that is
standard for 2.0. But, for the best compatibility, we have to return
something viable for 1.x clients.
feat(platform): add dashboard service interface and associated types
feat(bolt): add bolt implementation ofplatform dashboard service
feat(http): add dashboard http handler and http implementation dashboard service
feat(cmd/idpd): use bolt dashboard service in idpd
test(testing): add conformance test for dashboard service
test(bolt): ensure conforms dashboard service conforms to tests
fix(platform): rename DashboardContents to DashboardCellContents in test
fix(bolt): correct mispelled comments
The /query endpoint didn't have an orgID parameter so we can't have one
in the transpiler endpoint. This removes the parameter and replaces it
with a command line parameter that sets which organization we are using
for querying ifql.
This modifies the `MultiResultDecoder` interface to accept an
`io.ReadCloser` so the `ResultIterator` can close the `io.Reader`
instead of doing it through a defer call. It then makes it so the
`Cancel()` method will close the reader or the reader will be
automatically closed when `More()` returns false.
The query service now handles some errors (not all) from the ifqld
service. This way, the transpiler, which uses the query service, can
report when it encounters an error from ifqld.
The transpiler will now correctly return errors in the JSON response.