Metric Setup Guide

For the purposes of this guide, we will be setting up a single zone for DalmatinerDB, Tachyon, and NSQ with the below ip address and services. Note: For production setups its recommended you run multiple separated NSQ processes as well as a distributed DalmatinerDB Database.

Our setup will be as follows:

Zone NameIP AddressServicesHypervisor
DalmatinerDB Zone, Dalmatinerfe, NSQ, Tachyon, Grafana1
Hypervisors Global ZoneTachyon-Meter

The Grafana and Dalmatinerfe part of this guide are optional. Grafana is a dashboard builder for building custom graphs using metric data stored in the database. DalmatinerFE is a very simplistic web frontend to show you the different "buckets" and metric data stored within your DalmatinerDB database.

(Step 1) Create Zone

Please see the Requirements section for details on the requirements for datasets and the GZ.

Sample contents of 1.dalmatinerdb.json

 "autoboot": true,
 "brand": "joyent",
 "image_uuid": "<image uuid>",
 "delegate_dataset": true, 
 "max_physical_memory": 2048,
 "cpu_cap": 100,
 "alias": "1.dalmatinerdb",
 "quota": "80",
 "zfs_root_compression": "on",
 "resolvers": [
 "nics": [
   "interface": "net0",
   "nic_tag": "admin",
   "ip": "",
   "gateway": "",
   "netmask": ""

Next we create our DalmatinerDB JSON payload files and create our zone.

cd /opt
vi 1.dalmatinerdb.json
vmadm create -f 1.dalmatinerdb.json

The rest of the setup will be done within our newly created DalmatinerDB zone.

(Step 2) Zone Configuration

We now zlogin into the DalmatinerDB Zone

zlogin <zone-uuid>

First we do need to configure the delegate dataset to be mounted to /data we can do this from within the zone with the following command:

zfs set mountpoint=/data zones/$(zonename)/data

Add the FiFo package repository then install the "dalmatinerfe", "dalmatinerdb", "nsq" and "tachyon" services.

echo "${VERSION}" >> /opt/local/etc/pkgin/repositories.conf

curl -O
gpg --primary-keyring /opt/local/etc/gnupg/pkgsrc.gpg --import < fifo.gpg
gpg --keyring /opt/local/etc/gnupg/pkgsrc.gpg --fingerprint

pkgin -fy up
pkgin in dalmatinerfe dalmatinerdb nsq tachyon

Next we configure all the services in the Zone and edit each respective configuration file and changing ONLY the following settings - the rest of the config options will remain unchanged:

svcadm enable epmd
svcadm enable nsqadmin
svcadm enable nsqlookupd
svcadm enable nsqd
svcs epmd nsqadmin nsqlookupd nsqd

vi /data/dalmatinerdb/etc/dalmatinerdb.conf
vi /data/dalmatinerfe/etc/dalmatinerfe.conf


vi /data/dalmatinerdb/etc/dalmatinerdb.conf

nodename = dalmatinerdb@
handoff.ip =
lifetime = infinity

Note: You may want to adjust the lifetime = infinity value to something that matches your storage and data retention policies. As it stands, the infinity value will continue to store data until you run out of disk space.


vi /data/dalmatinerfe/etc/dalmatinerfe.conf

backend_server =
nodename = dalmatinerfe@

Next we start the services and confirm they are running:

svcadm enable epmd
svcadm enable dalmatiner/db
svcadm enable dalmatiner/fe
svcs epmd dalmatiner/db dalmatiner/fe

Next run the ddb-admin buckets command to confirm that the bucket is showing and check the time to live via ddb-admin ttl dalmatinerdb which by default is set to infinity.

$ ddb-admin buckets

$ ddb-admin ttl dalmatinerdb

You should now be able to access the DDB Web Frontend and see your bucket. Point your web browser at


Now we configure and start the Tachyon Aggregator service:


vi /data/tachyon/etc/tachyon.conf

ddb =
svcadm enable epmd
svcadm enable tachyon
svcs tachyon

(Step 3) Setup Tachyon-meter in the Global Zone

Return to the global zone of your hypervisor/s and download and install the tachyon-meter service. This is a service that gathers and distributes KSTAT metrics to NSQ which send it to the Tachyon Aggregator which optimizes it before sending it to DalmatinerDB.

cd /opt
curl -O
gunzip tachyon-meter-latest.gz
sh tachyon-meter-latest

Now we configure and start the Tachyon Meter service:


vi /opt/tachyon-meter/etc/tachyon.conf

svcadm restart tachyon-meter
svcs tachyon-meter

(Step 4) Configure FiFo Zone for Metrics & DalmatinerDB

Final step is to zlogin to your FiFo Zone and edit the following file and change the DDB ip and port to the ip of the zone running DalmatinerDB.

vi /data/sniffle/etc/sniffle.conf
vi /data/snarl/etc/snarl.conf
vi /data/howl/etc/howl.conf


folsom_ddb.ip =


folsom_ddb.ip =


folsom_ddb.ip =
ddb_connection.backend_host =

Restart your services and login to Cerberus UI and you should now see working metric graphs shown for both vm's and hypervisors.

svcadm restart sniffle
svcadm restart snarl
svcadm restart howl
svcs sniffle snarl howl

(Step 5) optional - Grafana setup

Since Grafana does not ship with support for a native DalmatinerDB datasource we maintain a special fork that includes support.

At present, a precompiled binary of Grafana with our changes can be downloaded here.

For the purposes of this guide we will run Grafana in the same zone as DalmatinerDB. Zlogin to the DalmatinerDB zone and install and run the binary.

curl -O
tar -xvzf grafana-2.0.2.tgz
cd grafana

You can now login to the Grafana Web Interface on the default username and password is admin / admin


Add and configure your data source then start creating custom graphs. Have fun!

907 1042