.. Copyright 2016 tsuru authors. All rights reserved.
Use of this source code is governed by a BSD-style
license that can be found in the LICENSE file.
Metrics
=======
Since 0.12.x **tsuru** is capable of reading metrics from `Docker
`_ (using `docker stats
`_) and store this data in
a time series database.
Installing
----------
You will need a `Elasticsearch `_ and a `Logstash `_ installed.
tsuru send data to Logstash using udp protocol and the message is formatted in
json that requires a custom Logstash configuration:
.. highlight:: ruby
::
input {
udp {
port => 1984
}
}
filter {
json {
source => "message"
}
if "_jsonparsefailure" in [tags] {
mutate {
add_field => {
client => "error"
metric => "metric_error"
}
}
}
}
output {
elasticsearch {
hosts => ["http://ELASTICSEARCHHOST:ELASTICSEARCHPORT"]
index => ".measure-%{client}-%{+YYYY.MM.dd}"
document_type => "%{metric}"
}
}
Configuring
-----------
You should use `tsuru-admin node-container-update big-sibling --env NAME=VALUE`
to define the config values.
The available configs are:
`METRICS_INTERVAL` is the interval in seconds between metrics collecting and
reporting from bs to the metric backend. The default value is 60 seconds.
`METRICS_BACKEND` is the metric backend. Only 'logstash' is supported right now.
Logstash specific configs:
`METRICS_LOGSTASH_CLIENT` is the client name used to identify who is sending the
metric. The default value is tsuru.
`METRICS_LOGSTASH_PORT` is the Logstash port. The default value is 1984.
`METRICS_LOGSTASH_HOST` is the Logstash host. The default value is localhost.
Metrics graph on tsuru-dashboard
--------------------------------
**tsuru-dashboard** can be used to show a graphic for each metric by
application.
To enable it define the `METRICS_ELASTICSEARCH_HOST` using `tsuru-admin
node-container-update big-sibling --env`.