Project-FiFo

The Project-FiFo Developer Hub

Welcome to the Project-FiFo developer hub. You'll find comprehensive guides and documentation to help you start working with Project-FiFo as quickly as possible, as well as support if you get stuck. Let's jump right in!

Get Started    

Installation

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 Name

IP Address

Services

Hypervisor

DalmatinerDB Zone 1

10.1.1.24

Dalmatinerdb, Dalmatinerfe, NSQ, Tachyon, Grafana

1

Hypervisors Global Zone

Tachyon-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

You can create a new Zone for the metrics components using FiFo GUI or just plain SmartOS. Lets describe creating the zone 'manually' via SmartOS.

From the GZ (Global Zone) we install the base dataset which we will use. Then we have to confirm it is installed:

imgadm update
imgadm import 1bd84670-055a-11e5-aaa2-0346bb21d5a1
imgadm list | grep 1bd84670-055a-11e5-aaa2-0346bb21d5a1

If installed successfully you should see:

1bd84670-055a-11e5-aaa2-0346bb21d5a1  minimal-64-lts  14.4.2     smartos  2015-03-03T15:38:34Z

Sample contents of 1.dalmatinerdb.json

{
 "autoboot": true,
 "brand": "joyent",
 "image_uuid": "1bd84670-055a-11e5-aaa2-0346bb21d5a1",
 "delegate_dataset": true, 
 "max_physical_memory": 2048,
 "cpu_cap": 100,
 "alias": "1.dalmatinerdb",
 "quota": "80",
 "zfs_root_compression": "on",
 "resolvers": [
  "8.8.8.8",
  "8.8.4.4"
 ],
 "nics": [
  {
   "interface": "net0",
   "nic_tag": "admin",
   "ip": "10.1.1.24",
   "gateway": "10.1.1.1",
   "netmask": "255.255.255.0"
  }
 ]
}

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.

VERSION=rel
echo "http://release.project-fifo.net/pkg/${VERSION}" >> /opt/local/etc/pkgin/repositories.conf

curl -O https://project-fifo.net/fifo.gpg
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

dalmatinerdb.conf

vi /data/dalmatinerdb/etc/dalmatinerdb.conf

nodename = dalmatinerdb@10.1.1.24
handoff.ip = 10.1.1.24
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.

dalmatinerfe.conf

vi /data/dalmatinerfe/etc/dalmatinerfe.conf

backend_server = 10.1.1.24:5555
nodename = dalmatinerfe@10.1.1.24

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
dalmatinerdb

$ ddb-admin ttl dalmatinerdb
infinity

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

Now we configure and start the Tachyon Aggregator service:

tachyon.conf

vi /data/tachyon/etc/tachyon.conf

ddb = 10.1.1.24:5555
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 http://release.project-fifo.net/gz/rel/tachyon-meter-latest.gz
gunzip tachyon-meter-latest.gz
sh tachyon-meter-latest

Now we configure and start the Tachyon Meter service:

tachyon.conf

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

host=10.1.1.24
svcadm enable 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

sniffle.conf

folsom_ddb.ip = 10.1.1.24:5555

snarl.conf

folsom_ddb.ip = 10.1.1.24:5555

howl.conf

folsom_ddb.ip = 10.1.1.24:5555
backend_server = 10.1.1.24:5555

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 http://release.project-fifo.net/chunter/rel/grafana-2.0.2.tgz
tar -xvzf grafana-2.0.2.tgz
cd grafana
./grafana

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

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

Updated less than a minute ago

Installation


Metric Setup Guide

Suggested Edits are limited on API Reference Pages

You can only suggest edits to Markdown body content, but not to the API spec.