[autotest] Add capability to log metadata stats module to esdb

Adds functionality to stats objects to take in optional metadata that
is reported to elasticsearch. This change also includes a functional
test script that verifies stats objects correctly report metadata
to elasticsearch. This involves adding an external package for
wrapping a connection to es. Also added mock for elasticsearch
which resulted in refactor of statsd_mock.

TEST=python stats_es_functionaltest.py --all --es_port=prod
  for both http and udp (by changing shadow config)
TEST=python elasticsearch_mock_unittest.py
TEST=python statsd_mock_unittest.py
BUG=None

Change-Id: I5971e39623e465a42a46dafc61fb26a1fb129391
Reviewed-on: https://chromium-review.googlesource.com/205776
Tested-by: Michael Liang <michaelliang@chromium.org>
Reviewed-by: Dan Shi <dshi@chromium.org>
Commit-Queue: Michael Liang <michaelliang@chromium.org>
diff --git a/global_config.ini b/global_config.ini
index a776cef..7f032c3 100644
--- a/global_config.ini
+++ b/global_config.ini
@@ -200,10 +200,19 @@
 STATSD_SERVER: 172.22.10.48
 STATSD_PORT: 8125
 
+
 sam_instances: cautotest, cautotest-cq
 test_instance: chromeos-autotest.cbf
 extra_servers: chromeos-mcp
 
+# ES_HOST's hostname is chromeos-lab-graphite.cbf.corp.google.com
+ES_HOST: 172.25.61.45
+ES_PORT: 9200
+ES_UDP_PORT: 9700
+ES_USE_HTTP: False
+ES_DEFAULT_INDEX: default
+
+
 skip_devserver_health_check: True
 
 [BUG_REPORTING]