Excerpt |
---|
Fedora 4 comes with built-in profiling machinery that keeps track of how many times specific services have been requested, how long each request takes to be serviced, etc. |
There are presently two ways of visualizing the output of this "metrics" collection.
This guide is designed to help you install and configure a Graphite instance. The directions below are based on the instructions provided by Graphite.
...
Clone the GitHub repositories (use either the 0.9.x [stable] branch or master [unstable/alpha] branch).
Note |
---|
...
The source files found at https://launchpad.net/graphite/+download/ are very out of date and do not support Django versions greater than 1.4. |
On an Linux-based system, the following commands should get the correct branches of the three Graphite modules.
...
Code Block |
---|
cd /opt/graphite sudo chown -R ubuntu:ubuntu * cd /opt/graphite/conf cp carbon.conf.example carbon.conf cp storage-schemas.conf.example storage-schemas.conf cp graphite.wsgi.example graphite.wsgi |
This setups sets up a default data retention period of gathering data every second and storing it for 1 day. You can configure this by editing the storage-schemas.conf file.
...
There is an Apache Virtual Hosts file provided in the graphite-web/examples directory. You can use this to configure your Apache installation.
Things to pay attention to in this file:
...
WSGISocketPrefix run/wsgi
this needs to be set to a directory that the webserver can write to and can be either a relative or an absolute path.
Both the <Location "/content/"> and <Location "/media/"> do not specify access. You may need to add them.
ie.
<Location "/content/">
SetHandler None
</Location>
to
The following, minimal Apache vhost configuration file should be enough to get started
No Format |
---|
<IfModule !wsgi_module.c> LoadModule wsgi_module modules/mod_wsgi.so </IfModule> WSGISocketPrefix /var/run/wsgi <VirtualHost *:80> ServerAdmin webmaster@myhost.edu ServerName graphite DocumentRoot "/opt/graphite/webapp" ErrorLog /opt/graphite/storage/log/webapp/error.log CustomLog /opt/graphite/storage/log/webapp/access.log common WSGIDaemonProcess graphite processes=5 threads=5 display-name='%{GROUP}' inactivity-timeout=120 WSGIProcessGroup graphite WSGIApplicationGroup %{GLOBAL} WSGIImportScript /opt/graphite/conf/graphite.wsgi process-group=graphite application-group=%{GLOBAL} WSGIScriptAlias / /opt/graphite/conf/graphite.wsgi Alias /content/ /opt/graphite/webapp/content/ <Location "/content/"> SetHandler None Order deny,allow Allow from all </Location> <Directory /opt/graphite/conf/> Options All AllowOverride All Require all granted </Directory> <Directory /opt/graphite/webapp> Options All AllowOverride All Require all granted </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost> |
Anchor | ||||
---|---|---|---|---|
|
...
No Format |
---|
DATABASES = { 'default': { 'NAME': '/opt/graphite/storage/graphite.db', 'ENGINE': 'django.db.backends.sqlite3', 'USER': '<username>', 'PASSWORD': '<password>', 'HOST': '', 'PORT': '' } } |
Note |
---|
...
If you receive an error "ImportError: cannot import name execute_manager", you have an old version of graphite-web that requires Django 1.4. Get the latest changes from the GitHub repositories. |
Set the permissions of the entire storage directory (default /opt/graphite/storage) and all files to be owned by the webserver process.
...
This starts the listener on localhost:2003, this can be configured in /opt/graphite/conf/carbon.conf.Note:
Note |
---|
If you receive the message: 'WHISPER_FALLOCATE_CREATE is enabled but linking failed.' This can be disabled by setting WHISPER_FALLOCATE_CREATE = False in /opt/graphite/conf/carbon.conf but this will not harm the running process and does not need to be disabled. |
...
Note: If you are not running the carbon-cache.py daemon as root, then you will need to make the /opt/graphite/storage/whisper directory writable by whichever user you will run carbon-cache.py as.
Code Block |
---|
sudo chown -R ubuntu /opt/graphite/storage/whisper |
For example: If you are running Apache as www-data and the carbon-cache.py as ubuntu then your /opt/graphite/storage directory will look like
No Format |
---|
> ll /opt/graphite/storage
-rw-r--r-- 1 www-data www-data 5 Sep 8 21:46 carbon-cache-a.pid
-rw-r--r-- 1 www-data www-data 69632 Sep 8 21:50 graphite.db
-rw-r--r-- 1 www-data www-data 762 Sep 8 21:50 index
drwxr-xr-x 2 www-data www-data 4096 Sep 8 21:40 lists/
drwxr-xr-x 4 www-data www-data 4096 Sep 8 21:46 log/
drwxr-xr-x 2 www-data www-data 4096 Sep 8 21:40 rrd/
drwxr-xr-x 5 ubuntu www-data 4096 Sep 10 18:19 whisper/ |
This will allow carbon-cache.py to add new metrics to the whisper tables and still allow the web application to read them.
Anchor | ||||
---|---|---|---|---|
|
...
Gallery | ||
---|---|---|
|
Anchor | ||||
---|---|---|---|---|
|
To enable Metrics reporting to Graphite, activate the Spring profile metrics.graphite. The system properties fcrepo.metrics.host (defaults to localhost) and fcrepo.metrics.port (defaults to 2003) can also be set.
When testing with Maven use
...
:
...
or add it to the web.xml
<context-param>
<param-name>spring.profiles.active</param-name>
<param-value>metrics.graphite</param-value>
</context-param>
Connecting Fedora to a remote Graphite server
To enable metrics collection on a remote server use the above configuration for Graphite (by default Graphite is very open).
For Fedora you can add the hostname/IP address and port (if different from the default).
When using Maven:
Code Block |
---|
MAVEN_OPTS="-Xmx512m -Dspring.profiles.active=metrics.graphite -Dfcrepo.metrics.host= |
...
<default- |
...
localhost> -Dfcrepo.metrics.port= |
...
<default-2003>" mvn jetty:run |
...
: fcrepo.metrics.host does not seem to work as a <context-param> - Jared Whiklo
...
Once Fedora 4 is connected to your Graphite server, the Graphite console should resemble the following:
...