diff --git a/docs/administration.md b/docs/administration.md
index 26c7ed7ba..fca8db4dc 100644
--- a/docs/administration.md
+++ b/docs/administration.md
@@ -97,3 +97,62 @@ Note: This will only work when the replication factor is >= 2
- Modify the cluster config file to replace the previous node address with the new node address.
- Restart the cluster
- Wait for the 1st sync (10 minutes) to validate Index connections
+
+#### Metrics
+
+Pilosa can be configured to emit metrics pertaining to its internal processes in one of two formats: Expvar or StatsD. Metric recording is disabled by default.
+The metrics configuration options are:
+
+ - Host to receive events
+ - Polling interval for runtime metrics
+ - Metric type (StatsD, Expvar).
+
+##### Tags
+StatsD Tags adhere to the DataDog format (key:value), and we tag the following:
+
+- NodeID
+- Index
+- Frame
+- View
+- Slice
+
+##### Events
+We currently track the following events
+
+Index: The creation of a new Index.
+
+Frame: The creation of a new Frame.
+
+MaxSlice: The Creation of a new Slice.
+
+SetBit: Count of set bits.
+
+ClearBit: Count of cleared bits.
+
+ImportBit: During a bulk data import this represents the count of bits created.
+
+SetRowAttrs: Count of Attributes set per row.
+
+SetColumnAttrs: Count of Attributes set per collumn.
+
+Bitmap: Count of Bitmap queries.
+
+TopN: Count of TopN queries.
+
+Union: Count of Union queries.
+
+Intersection: Count of Intersection queries.
+
+Difference: Count of Difference queries.
+
+Count: Count of Count queries.
+
+Range: Count of Range queries.
+
+Snapshot: Event count when the snapshot process is triggered.
+
+BlockRepair: Count of data blocks that were out of sync and repaired.
+
+Garbage Collection: Event count when Garbage Collection occurs.
+
+Goroutines: Number of running Goroutines.
diff --git a/docs/configuration.md b/docs/configuration.md
index 12153dde1..f93647cb5 100644
--- a/docs/configuration.md
+++ b/docs/configuration.md
@@ -167,3 +167,36 @@ Any flag that has a value that is a comma separated list on the command line bec
[profile]
cpu-time = "30s"
```
+##### Metric Service
+* Description: Which stats service to use (StatsD or ExpVar).
+* Flag: `--metric.service=statsd`
+* Env: `PILOSA_METRIC.SERVICE=statsd'
+* Config:
+
+ ```toml
+ [metric]
+ service = “statsd”
+ ```
+
+##### Metric Host
+* Description: Address of the StatsD service host.
+* Flag: `--metric.host=localhost:8125`
+* Env: `PILOSA_METRIC.HOST=localhost:8125'
+* Config:
+
+ ```toml
+ [metric]
+ host = "localhost:8125"
+ ```
+
+##### Metric Poll Interval
+
+* Description: Polling interval for runtime metrics.
+* Flag: `metric.poll-interval=”0m15s”`
+* Env: `PILOSA_METRIC.POLL_INTERVAL=0m15s`
+* Config:
+
+ ```toml
+ [metric]
+ poll-interval = "0m15s"
+ ```
\ No newline at end of file
diff --git a/server/server_test.go b/server/server_test.go
index d677569e0..57037a0bc 100644
--- a/server/server_test.go
+++ b/server/server_test.go
@@ -449,7 +449,7 @@ func TestMain_SendReceiveMessage(t *testing.T) {
}
}
if !reflect.DeepEqual(received0, expected) {
- t.Fatalf("unexpected schema on node0: %d", received0)
+ t.Fatalf("unexpected schema on node0: %s", received0)
}
// Make sure node1 knows about the index and frame created.
@@ -465,7 +465,7 @@ func TestMain_SendReceiveMessage(t *testing.T) {
}
}
if !reflect.DeepEqual(received1, expected) {
- t.Fatalf("unexpected schema on node1: %d", received1)
+ t.Fatalf("unexpected schema on node1: %s", received1)
}
// Write data on first node.