Skip to content

hw-cookbooks/giraffe

Repository files navigation

Giraffe Chef Cookbook

Description

Chef cookbook for Giraffe, a graphite dashboard with a long neck.

Usage

This cookbook provides a Giraffe provider which for you to include in your recipes. The Giraffe provider installs and configures the Giraffe application. You will need to configure a webserver to serve the application.

Requirements

Chef

Tested on 11.10.4 but newer and older versions (of 11) should work just fine. File an issue if this isn't the case.

Platform

The following platforms have been tested with this cookbook, meaning that the recipes run on these platforms without error:

  • ubuntu (12.04)
  • centos (6.4)

Please report any additional platforms so they can be added.

Cookbooks

This cookbook depends on the following external cookbooks:

Recipes

default

This recipe installs git, a prerequisite for installing giraffe.

Attributes

  • node[:giraffe][:revision] - git reference (tag/branch/commit) to checkout (defaults to "1.1.0")
  • node[:giraffe][:repository] - uri of git repository to checkout (defaults to "https://github.com/kenhub/giraffe.git")

Resources and Providers

giraffe_instance

Actions

Action Description Default
create Installs Giraffe via git, configures dashboards.js Yes

Attributes

Attribute Description Default Value
path Name attribute: The path for the Giraffe installation. nil
graphite_url The url of the Graphite server for the Giraffe instance to use. nil
dashbords An array of configuration hashes which represent dashboards. []
git_repository The git repository hosting Giraffe source code. nil
git_revision The git revision specifying the revision of Giraffe code to checkout. nil
template_cookbook The cookbook to use when specifying a dashboards.js template. giraffe
template_source The name of the dashboards.js template file in the template_cookbook. dashboards.js.erb

Examples

giraffe_instance "/srv/www/giraffe" do
  graphite_url "http://127.0.0.1"
  dashboards [
    {
      :name => "test",
      :refresh => 5000,
      :description => "test dashboard",
      :metrics => [
        {
          :alias =>  "test",
          :target => "metrics.test.tests",
          :description => "Example metric",
          :summary => "sum",
          :summary_formatter => "d3.format(\",f\")"
        }
      ]
    }
  ]
end

Development

Pull requests are very welcome! Make sure your patches are well tested. Ideally create a topic branch for every separate change you make.

License and Author

Author:: Heavy Water Operations

Copyright 2011, 2012, 2013, 2014 Heavy Water Operations, LLC

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.