ports/101217: new port: databases/mysqlard A tool to collect and

Greg Albrecht gregoryba at gmail.com
Tue Aug 1 21:30:23 UTC 2006


The following reply was made to PR ports/101217; it has been noted by GNATS.

From: "Greg Albrecht" <gregoryba at gmail.com>
To: bug-followup at FreeBSD.org
Cc:  
Subject: Re: ports/101217: new port: databases/mysqlard A tool to collect and
Date: Tue, 1 Aug 2006 14:27:46 -0700

 here's an updated version of the shar file:
 
 # This is a shell archive.  Save it in a file, remove anything before
 # this line, and then unpack it by entering "sh file".  Note, it may
 # create directories; files and directories will be owned by you and
 # have default permissions.
 #
 # This archive contains:
 #
 #	mysqlard
 #	mysqlard/Makefile
 #	mysqlard/pkg-descr
 #	mysqlard/distinfo
 #	mysqlard/pkg-plist
 #	mysqlard/files
 #	mysqlard/files/mysqlard.sh.in
 #	mysqlard/files/patch-ab
 #	mysqlard/files/patch-af
 #	mysqlard/files/patch-ag
 #	mysqlard/files/patch-ae
 #	mysqlard/files/patch-ad
 #	mysqlard/files/patch-ac
 #	mysqlard/files/patch-aa
 #	mysqlard/pkg-message
 #
 echo c - mysqlard
 mkdir -p mysqlard > /dev/null 2>&1
 echo x - mysqlard/Makefile
 sed 's/^X//' >mysqlard/Makefile << 'END-of-mysqlard/Makefile'
 X# New ports collection makefile for:   mysqlard
 X# Date created:        31 July 2006
 X# Whom:                gba
 X#
 X# $FreeBSD$
 X#
 X
 XPORTNAME=      mysqlard
 XPORTVERSION=   1.0.0
 XCATEGORIES=    databases www
 XMASTER_SITES=  http://gert.sos.be/downloads/mysqlar/
 X
 XMAINTAINER=    gregoryba at gmail.com
 XCOMMENT=       A tool to collect and graph database statistics from mysql
 X
 XRUN_DEPENDS=    rrdtool:${PORTSDIR}/net/rrdtool
 X
 XUSE_MYSQL=      yes
 XUSE_APACHE=     1.3+
 X
 XMYSQLARD_DIR?=	${PREFIX}/www/mysqlard
 X
 XUSE_RC_SUBR=    mysqlard.sh
 X
 XMAN1 = mysqlar_graph.1
 XMAN8 = mysqlard.8
 X
 XGNU_CONFIGURE=  yes
 XCONFIGURE_TARGET= --build=${MACHINE_ARCH}-portbld-freebsd${OSREL}
 XCONFIGURE_ARGS= --prefix="${PREFIX}" --with-rrd="${PREFIX}"
 --datadir="${PREFIX}/www" --sysconfdir="${PREFIX}/etc"
 X
 Xpost-install:
 X	@${MV} ${PREFIX}/www/mysqlard/mysqlard.cnf ${PREFIX}/etc
 X	@${CAT} ${PKGMESSAGE}
 X
 X.include <bsd.port.mk>
 END-of-mysqlard/Makefile
 echo x - mysqlard/pkg-descr
 sed 's/^X//' >mysqlard/pkg-descr << 'END-of-mysqlard/pkg-descr'
 XThe MySQL Activity Report package is a tool to help MySQL database
 Xadministrators to collect several database parameters and variables.
 XThese collected values can be used for server monitoring or
 Xperformance tuning purposes.
 X
 XWWW: http://gert.sos.be/en/projects/mysqlar/
 END-of-mysqlard/pkg-descr
 echo x - mysqlard/distinfo
 sed 's/^X//' >mysqlard/distinfo << 'END-of-mysqlard/distinfo'
 XMD5 (mysqlard-1.0.0.tar.gz) = 693ef6f36ca232131b22db7063cae940
 XSHA256 (mysqlard-1.0.0.tar.gz) =
 07f333110c8fbb0174a534570884471139b00c96950f56a55fdbbd4683aef7f4
 XSIZE (mysqlard-1.0.0.tar.gz) = 109656
 END-of-mysqlard/distinfo
 echo x - mysqlard/pkg-plist
 sed 's/^X//' >mysqlard/pkg-plist << 'END-of-mysqlard/pkg-plist'
 Xbin/mysqlar_graph
 Xetc/mysqlard.cnf
 Xsbin/mysqlard
 Xwww/mysqlard/mysql.gif
 Xwww/mysqlard/mysqlar.daily
 Xwww/mysqlard/mysqlar.monthly
 Xwww/mysqlard/mysqlar.php
 Xwww/mysqlard/mysqlar.weekly
 Xwww/mysqlard/mysqlard.server
 Xwww/mysqlard/rrdtool.gif
 Xwww/mysqlard/sos.gif
 Xwww/mysqlard/style.css
 X at dirrm www/mysqlard
 END-of-mysqlard/pkg-plist
 echo c - mysqlard/files
 mkdir -p mysqlard/files > /dev/null 2>&1
 echo x - mysqlard/files/mysqlard.sh.in
 sed 's/^X//' >mysqlard/files/mysqlard.sh.in <<
 'END-of-mysqlard/files/mysqlard.sh.in'
 X#!/usr/local/bin/bash
 X#
 X#  $Id: mysqlard.server.sh 40 2006-01-20 20:26:11Z dewitge $
 X#	
 X#  MySQL Activity Report
 X#  mysqlard Start script for the MySQL Activity Report Daemon
 X#
 X#  Copyright 2004 Gert Dewit <gert.dewit at sos.be>
 X#
 X# chkconfig: - 79 11
 X# description: MySQL Activity Report Daemon
 X# processname: mysqlard
 X# config: %%PREFIX%%/etc/mysqlard.cnf
 X# pidfile: /var/run/mysqlard.pid
 X
 X. %%RC_SUBR%%
 X
 X# Source the config script
 Xif [[ "$datadir" == "" ]] ; then
 X	echo Loading defaultsettings
 X	. %%PREFIX%%/etc/mysqlard.cnf
 Xfi
 X
 X########################################################################
 X# Options, change them in %%PREFIX%%/etc/mysqlard.cnf or you can override
 X# them here, but that's not recommended. Read the comments in
 X# %%PREFIX%%/etc/mysqlard.cnf if you want to know what you're changing.
 X
 Xstep=${step:="60"}
 Xminsamples=${minsamples:="720"}
 Xdatadir=${datadir:="%%PREFIX%%/www/mysqlard"}
 Xpidfile=/var/run/mysqlard.pid
 XRRDTOOL=${RRDTOOL:="%%PREFIX%%/bin/rrdtool"}
 XMYSQLARD=${MYSQLARD:="%%PREFIX%%/sbin/mysqlard"}
 XMYSQLUSER=${MYSQLUSER:="mysqlar"}
 XMYSQLHOST=${MYSQLHOST:=""}
 X########################################################################
 X
 X# don't change anything below this line, but heck, I can't stop you ;-)
 Xconfile=${confile:="${datadir}/connections.rrd"}
 Xtabfile=${tabfile:="${datadir}/table_cache.rrd"}
 Xkeyfile=${keyfile:="${datadir}/key_cache.rrd"}
 Xqueryfile=${queryfile:="${datadir}/queries.rrd"}
 Xslavefile=${slavefile:="${datadir}/slave.rrd"}
 X
 Xslaveopt=
 Xif [[ "$slave" != "" ]]; then
 X  slaveopt=-L
 Xfi
 X
 Xif [[ "$MYSQLHOST" != "" ]] ; then
 X  MYSQLHOST=--host=$MYSQLHOST
 Xfi
 X
 X# functions
 Xavgsamps () {
 X  avg=$(($1 / $2))
 X  if [ ${avg} -lt 1 ]
 X  then
 X    avg=1
 X  fi
 X  echo ${avg}
 X}
 Xarchives () {
 X  arch=$(($1 / $2))
 X  if [[ $(($2 * ${arch} * $3)) -lt $4 ]]
 X  then
 X    arch=$((${arch} + 1))
 X  fi
 X  echo ${arch}
 X}
 X
 X# calculated values
 Xheartbeat=$((${step} * 2))
 Xhoursamps=$((3600 / ${step}))
 Xhouravgs=$(avgsamps ${hoursamps} ${minsamples})
 Xhourarchives=$(archives ${hoursamps} ${houravgs} ${step} 3600)
 Xdaysamps=$((86400 / ${step}))
 Xdayavgs=$(avgsamps ${daysamps} ${minsamples})
 Xdayarchives=$(archives ${daysamps} ${dayavgs} ${step} 86400)
 Xweeksamps=$((604800 / ${step}))
 Xweekavgs=$(avgsamps ${weeksamps} ${minsamples})
 Xweekarchives=$(archives ${weeksamps} ${weekavgs} ${step} 604800)
 Xmonthsamps=$((2678400 / ${step}))
 Xmonthavgs=$(avgsamps ${monthsamps} ${minsamples})
 Xmontharchives=$(archives ${monthsamps} ${monthavgs} ${step} 2678400)
 Xyearsamps=$((31622400 / ${step}))
 Xyearavgs=$(avgsamps ${yearsamps} ${minsamples})
 Xyeararchives=$(archives ${yearsamps} ${yearavgs} ${step} 31622400)
 X
 X# calculated RRA's
 Xhourrra="RRA:AVERAGE:0.5:${houravgs}:${hourarchives}"
 Xdayrra="RRA:AVERAGE:0.5:${dayavgs}:${dayarchives}"
 Xweekrra="RRA:AVERAGE:0.5:${weekavgs}:${weekarchives}"
 Xmonthrra="RRA:AVERAGE:0.5:${monthavgs}:${montharchives}"
 Xyearrra="RRA:AVERAGE:0.5:${yearavgs}:${yeararchives}"
 Xallrras="${hourrra} ${dayrra} ${weekrra} ${monthrra} ${yearrra}"
 X
 Xinitrrd () {
 Xif [ ! -f ${confile} ]
 Xthen
 X  ${RRDTOOL} create ${confile} --step ${step} \
 X  DS:threads_connected:GAUGE:${heartbeat}:0:U \
 X  DS:max_connections:GAUGE:${heartbeat}:0:U \
 X  ${allrras}
 Xfi
 X
 Xif [ ! -f ${tabfile} ]
 Xthen
 X  ${RRDTOOL} create ${tabfile} --step ${step} \
 X  DS:open_tables:GAUGE:${heartbeat}:0:U \
 X  DS:table_cache:GAUGE:${heartbeat}:0:U \
 X  DS:created_tmp_tables:COUNTER:${heartbeat}:0:U \
 X  DS:created_tmp_disk_t:COUNTER:${heartbeat}:0:U \
 X  ${allrras}
 Xfi
 X
 Xif [ ! -f ${keyfile} ]
 Xthen
 X  ${RRDTOOL} create ${keyfile} --step ${step} \
 X  DS:key_reads:COUNTER:${heartbeat}:0:U \
 X  DS:key_read_requests:COUNTER:${heartbeat}:0:U \
 X  DS:key_buffer_size:GAUGE:${heartbeat}:0:U \
 X  DS:key_blocks_used:GAUGE:${heartbeat}:0:U \
 X  DS:select_full_join:COUNTER:${heartbeat}:0:U \
 X  DS:select_range_check:COUNTER:${heartbeat}:0:U \
 X  DS:handler_read_key:COUNTER:${heartbeat}:0:U \
 X  DS:handler_read_rnd:COUNTER:${heartbeat}:0:U \
 X  DS:slow_queries:COUNTER:${heartbeat}:0:U \
 X  ${allrras}
 Xfi
 X
 Xif [ ! -f ${queryfile} ]
 Xthen
 X  ${RRDTOOL} create ${queryfile} --step ${step} \
 X  DS:questions:COUNTER:${heartbeat}:0:U \
 X  DS:com_select:COUNTER:${heartbeat}:0:U \
 X  DS:com_insert:COUNTER:${heartbeat}:0:U \
 X  DS:com_update:COUNTER:${heartbeat}:0:U \
 X  DS:com_delete:COUNTER:${heartbeat}:0:U \
 X  ${allrras}
 Xfi
 X
 Xif [ ! -f ${slavefile} ]
 Xthen
 X  ${RRDTOOL} create ${slavefile} --step ${step} \
 X  DS:read_master_log_pos:COUNTER:${heartbeat}:0:U \
 X  DS:exec_master_log_pos:COUNTER:${heartbeat}:0:U \
 X  ${allrras}
 Xfi
 X}
 X
 Xstatus() {
 Xif [ -f $pidfile ]
 Xthen
 X  echo $0 is running. PID `cat ${pidfile}`
 Xelse
 X  echo $0 is not running.
 Xfi
 X
 X}
 X
 Xcase "$1" in
 X	start)
 X		initrrd
 X		${MYSQLARD} --step=${step} --datadir=${datadir} --user=${MYSQLUSER}
 $MYSQLHOST --pidfile=${pidfile} ${slaveopt}
 X	;;
 X	stop)
 X		kill `cat ${pidfile}`
 X		rm -f ${pidfile}
 X	;;
 X	initrrd)
 X		initrrd
 X	;;
 X	status)
 X		status
 X	;;
 X	*)
 X		echo "Usage: $0 {start|stop|status|initrrd}"
 X		exit 1
 Xesac
 X
 Xexit $?
 END-of-mysqlard/files/mysqlard.sh.in
 echo x - mysqlard/files/patch-ab
 sed 's/^X//' >mysqlard/files/patch-ab << 'END-of-mysqlard/files/patch-ab'
 X--- src/mysqlar.monthly.sh.orig	Tue Aug  1 11:23:19 2006
 X+++ src/mysqlar.monthly.sh	Tue Aug  1 11:10:54 2006
 X@@ -1,4 +1,4 @@
 X-#!/bin/bash
 X+#!/usr/local/bin/bash
 X #
 X #  $Id: mysqlar.monthly.sh 35 2004-03-10 15:48:41Z dewitge $
 X #	
 END-of-mysqlard/files/patch-ab
 echo x - mysqlard/files/patch-af
 sed 's/^X//' >mysqlard/files/patch-af << 'END-of-mysqlard/files/patch-af'
 X--- src/mysqlar.php.sh.orig	Tue Aug  1 11:23:19 2006
 X+++ src/mysqlar.php.sh	Tue Aug  1 11:13:32 2006
 X@@ -15,7 +15,7 @@
 X  * and has only usage permissions, no grants on any databases or tables.
 X  */
 X   $sqlhost = "localhost";
 X-  $sqluser = "";
 X+  $sqluser = "mysqlar";
 X   $sqlpassword = "";
 X
 X /* sort a matrix using column as key */
 END-of-mysqlard/files/patch-af
 echo x - mysqlard/files/patch-ag
 sed 's/^X//' >mysqlard/files/patch-ag << 'END-of-mysqlard/files/patch-ag'
 X--- src/mysqlar_graph.sh.orig	Tue Aug  1 11:23:19 2006
 X+++ src/mysqlar_graph.sh	Tue Aug  1 12:53:48 2006
 X@@ -1,4 +1,4 @@
 X-#!/bin/bash
 X+#!/usr/local/bin/bash
 X #
 X #  $Id: mysqlar_graph.sh 40 2006-01-20 20:26:11Z dewitge $
 X #	
 END-of-mysqlard/files/patch-ag
 echo x - mysqlard/files/patch-ae
 sed 's/^X//' >mysqlard/files/patch-ae << 'END-of-mysqlard/files/patch-ae'
 X--- src/mysqlar.daily.sh.orig	Tue Aug  1 11:23:19 2006
 X+++ src/mysqlar.daily.sh	Tue Aug  1 11:10:47 2006
 X@@ -1,4 +1,4 @@
 X-#!/bin/bash
 X+#!/usr/local/bin/bash
 X #
 X #  $Id: mysqlar.daily.sh 35 2004-03-10 15:48:41Z dewitge $
 X #	
 END-of-mysqlard/files/patch-ae
 echo x - mysqlard/files/patch-ad
 sed 's/^X//' >mysqlard/files/patch-ad << 'END-of-mysqlard/files/patch-ad'
 X--- src/mysqlard.cnf.sh.orig	Tue Aug  1 11:23:19 2006
 X+++ src/mysqlard.cnf.sh	Tue Aug  1 11:11:22 2006
 X@@ -1,4 +1,4 @@
 X-#!/bin/bash
 X+#!/usr/local/bin/bash
 X #  $Id: mysqlard.cnf.sh 40 2006-01-20 20:26:11Z dewitge $
 X #	
 X #  MySQL Activity Report
 END-of-mysqlard/files/patch-ad
 echo x - mysqlard/files/patch-ac
 sed 's/^X//' >mysqlard/files/patch-ac << 'END-of-mysqlard/files/patch-ac'
 X--- src/mysqlar.weekly.sh.orig	Tue Aug  1 11:23:19 2006
 X+++ src/mysqlar.weekly.sh	Tue Aug  1 11:11:09 2006
 X@@ -1,4 +1,4 @@
 X-#!/bin/bash
 X+#!/usr/local/bin/bash
 X #
 X #  $Id: mysqlar.weekly.sh 35 2004-03-10 15:48:41Z dewitge $
 X #	
 END-of-mysqlard/files/patch-ac
 echo x - mysqlard/files/patch-aa
 sed 's/^X//' >mysqlard/files/patch-aa << 'END-of-mysqlard/files/patch-aa'
 X--- src/mysqlard.server.sh.orig	Tue Aug  1 11:23:19 2006
 X+++ src/mysqlard.server.sh	Tue Aug  1 11:11:29 2006
 X@@ -1,4 +1,4 @@
 X-#!/bin/bash
 X+#!/usr/local/bin/bash
 X #
 X #  $Id: mysqlard.server.sh 40 2006-01-20 20:26:11Z dewitge $
 X #	
 END-of-mysqlard/files/patch-aa
 echo x - mysqlard/pkg-message
 sed 's/^X//' >mysqlard/pkg-message << 'END-of-mysqlard/pkg-message'
 X
 X1) Add the 'mysqlar' user with USAGE privileges to your mysql server:
 X$ mysql -u root -p mysql
 Xmysql> GRANT USAGE ON *.* TO mysqlar at localhost;
 Xmysql> FLUSH PRIVILEGES;
 X
 X2) Add the mysqlard crontab to root's crontab, replace ${PREFIX} with
 the path to mysqlar_graph:
 X*/5 * * * * hourly=1 daily=1 weekly=1 monthly=1
 ${PREFIX}/bin/mysqlar_graph > /dev/null
 X
 X3) Add a line line this to your apache's httpd.conf:
 X
 XAlias /mysqlar/ /usr/local/www/mysqlard/
 X<Directory "/usr/local/www/mysqlard">
 X  Options Indexes FollowSymLinks MultiViews ExecCGI
 X  AllowOverride All
 X  Order allow,deny
 X  Allow from all
 X  DirectoryIndex mysqlar.php
 X</Directory>
 X
 END-of-mysqlard/pkg-message
 exit



More information about the freebsd-ports-bugs mailing list