Giter Club home page Giter Club logo

graphite-formula's Introduction

graphite

Formula to set up and configure graphite servers on Debian and RedHat systems

Set monitor_master role grain on the minion you want graphite installed on:

salt 'graphitemaster' grains.append roles monitor_master

Starting Service

Setup database if not already done :

python /opt/graphite/webapp/graphite/manage.py syncdb

Start graphite :

/opt/graphite/bin/run-graphite-devel-server.py /opt/graphite &

Generating a new password

Uses the Passlib library :

pip install passlib

Then make:

python -c "from passlib.hash import pbkdf2_sha256; import getpass, pwd; print pbkdf2_sha256.encrypt(getpass.getpass())"
Password: [ENTER YOUR PASSWORD HERE]

Available states

graphite

Installs all dependencies and the graphite packages themselves, sets up a minimal system including supervisor to run carbon and django and nginx as the proxy.

graphite.supervisor

Adds a basic supervisor configuration for the graphite daemons to work on top of. The graphite state already depends on this one internally - eventually there should be a supervisor-formula.

graphite.mysqldb

Depends on the mysql-formula's mysql.client and mysql.server, makes the graphite server use mysql for the admin login.

Please note that this is a very basic (and monolithic) formula, not necessarily intended for production use.

graphite-formula's People

Contributors

aboe76 avatar carlcrott avatar cleberjsantos avatar duk3luk3 avatar nmadhok avatar puneetk avatar sroegner avatar whiteinge avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

graphite-formula's Issues

supervisor-service not starting

Using Ubuntu:


# lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 16.04.1 LTS
Release:	16.04
Codename:	xenial

On state.apply:

---------
          ID: supervisor-service
    Function: service.running
        Name: supervisor
      Result: False
     Comment: The named service supervisor is not available
     Started: 03:27:01.323226
    Duration: 31.832 ms
     Changes:   

When starting manually:

# /etc/init.d/supervisor start
/etc/init.d/supervisor: line 17: /etc/rc.d/init.d/functions: No such file or directory
Starting supervisord: 

Ensure lock file location exists

The supervisor init script attempts to touch the file /var/lock/subsys/supervisord without asserting that the parent folder exists, resulting in a failure to start the service.

We should ensure this folder exists as part of the salt state.

pip not installed early enough

Traceback (most recent call last):
  File "/usr/bin/salt-call", line 11, in <module>
    salt_call()
  File "/usr/lib/python2.7/dist-packages/salt/scripts.py", line 227, in salt_call
    client.run()
  File "/usr/lib/python2.7/dist-packages/salt/cli/call.py", line 69, in run
    caller.run()
  File "/usr/lib/python2.7/dist-packages/salt/cli/caller.py", line 236, in run
    ret = self.call()
  File "/usr/lib/python2.7/dist-packages/salt/cli/caller.py", line 138, in call
    ret['return'] = func(*args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/salt/modules/state.py", line 681, in sls
    ret = st_.state.call_high(high_)
  File "/usr/lib/python2.7/dist-packages/salt/state.py", line 2067, in call_high
    ret = dict(list(disabled.items()) + list(self.call_chunks(chunks).items()))
  File "/usr/lib/python2.7/dist-packages/salt/state.py", line 1623, in call_chunks
    running = self.call_chunk(low, running, chunks)
  File "/usr/lib/python2.7/dist-packages/salt/state.py", line 1769, in call_chunk
    self._mod_init(low)
  File "/usr/lib/python2.7/dist-packages/salt/state.py", line 612, in _mod_init
    self.states['{0}.{1}'.format(low['state'], low['fun'])]  # pylint: disable=W0106
  File "/usr/lib/python2.7/dist-packages/salt/utils/lazy.py", line 90, in __getitem__
    raise KeyError(key)
KeyError: 'pip.installed'
root@graphite:~# salt-call --versions-report
                  Salt: 2015.5.3
                Python: 2.7.8 (default, Oct 18 2014, 12:50:18)
                Jinja2: 2.7.3
              M2Crypto: 0.21.1
        msgpack-python: 0.4.2
          msgpack-pure: Not Installed
              pycrypto: 2.6.1
               libnacl: Not Installed
                PyYAML: 3.11
                 ioflo: Not Installed
                 PyZMQ: 14.4.0
                  RAET: Not Installed
                   ZMQ: 4.0.5
                  Mako: Not Installed
               Tornado: Not Installed
 Debian source package: 2015.5.3+ds-1~bpo8+1

provide a deploy of graphite-api

https://github.com/brutasse/graphite-api (Graphite-web, without the interface. Just the rendering HTTP API.) is a rewrite of parts of the graphite functionality. In some cases it's performance is far greater than graphite (remove django from the equation, has no database, pypy optimisation, etc.)

It would be nice to have a choice between the historic graphite and graphite-api.

We're starting to use the package from debian https://packages.debian.org/graphite-api but pip install might be interesting too.

sqlite3 initialize sequence fails

The state initialize-graphite-db-sqlite3 fails, with the error ImportError: No module named fields.

The solution appears to be locking django-tagging to 0.3.6.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.