add jaeger support, link hot container & req span (#840)

* add jaeger support, link hot container & req span

* adds jaeger support now with FN_JAEGER_URL, there's a simple tutorial in the
operating/metrics.md file now and it's pretty easy to get up and running.
* links a hot request span to a hot container span. when we change this to
sample at a lower ratio we'll need to finagle the hot container span to always
sample or something, otherwise we'll hide that info. at least, since we're
sampling at 100% for now if this is flipped on, can see freeze/unfreeze etc.
if they hit. this is useful for debugging. note that zipkin's exporter does
not follow the link at all, hence jaeger... and they're backed by the Cloud
Empire now (CNCF) so we'll probably use it anyway.

* vendor: add thrift for jaeger
This commit is contained in:
Reed Allman
2018-03-13 15:57:12 -07:00
committed by GitHub
parent a7347a88b7
commit 9eaf824398
2953 changed files with 2334535 additions and 35 deletions

View File

@@ -1,6 +1,8 @@
# Metrics
You can use zipkin to gather stats about the functions server.
## Zipkin
You can use zipkin to gather traces from fn.
Running a zipkin node is easy to get started, they have a docker container:
@@ -10,9 +12,28 @@ With zipkin running you can point functions to it using an env var:
`ZIPKIN_URL=http://zipkin:9411/api/v1/spans`
TODO hook up zipkin to poop out to logs/statsd/something else too
Open your browser to observe:
## Statsd
`http://localhost:9411`
The [Logspout Statsd Adapter](https://github.com/treeder/logspout-statsd) adapter can parse the log metrics and forward
them to any statsd server.
## Jaeger
We have support for Jaeger traces, as well.
It is easy to get an all-in-one container of jaeger running to test:
[jaeger](http://jaeger.readthedocs.io/en/latest/getting_started/#all-in-one-docker-image)
And then point fn to jaeger with the environment variable:
`JAEGER_URL=http://jaeger:14268`
Open browser to observe:
`http://localhost:16686`
## Prometheus
Fn offers a prometheus metrics endpoint at `/metrics`
TODO we need to consolidate docs around this (3 places).