スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

ganglia apache 用 グラフ

ganglia apache 用 グラフ

<?php
/* Pass in by reference! */
function graph_apache_status_report ( &$rrdtool_graph ) {

global $context,
$hostname,
$range,
$rrd_dir,
$size;

$metric_array = array(
array("ap_open_slot", "#3366FF", "Open slot with no current process" ),
array("ap_waiting", "#33FF66", "Waiting for Connection" ),
array("ap_reading_request", "#BB9933", "Reading Request" ),
array("ap_sending_reply", "#FF3366", "Sending Reply" ),
array("ap_keepalive", "#FFFF00", "Keepalive (read)" ),
array("ap_dns_lookup", "#00FF00", "DNS Lookup" ),
array("ap_logging", "#AA0000", "Logging" ),
array("ap_closing", "#FFFFAA", "Closing connection" ),
array("ap_starting", "#FF33CC", "Starting up" ),
array("ap_gracefully_fin", "#FF0000", "Gracefully finishing" ),
array("ap_idle", "#CC0000", "Idle cleanup of worker" )
);

$title = "apache status";
if ($context != 'host') {
$rrdtool_graph['title'] = $title;
} else {
$rrdtool_graph['title'] = "$hostname $title last $range";
}

$rrdtool_graph['lower-limit'] = '0';
$rrdtool_graph['vertical-label'] = 'connections';
$rrdtool_graph['extras'] = '--slope-mode';

# Initialize some of the RRDtool components
$rrd_defs = "";
$rrd_graphs = "";
$rrd_legend = "";
$counter = 0;
for ( $i = 0 ; $i < sizeof($metric_array); $i++ ) {
$metric = $metric_array[$i];
# Need index for generating RRD labels
$index = chr($counter + 97);
$rrd_file = $rrd_dir . "/" . $metric[0] . ".rrd";
if ( file_exists($rrd_file)) {
$rrd_defs .= "DEF:" . $index . "='" . $rrd_file . "':'sum':AVERAGE ";
$rrd_graphs .= "CDEF:n" . $index . "=" . $index . ",UN,0," . $index . ",IF ";
##################################################################################
if ( $counter == 0) {
$rrd_legend .= "AREA:" . $index . $metric[1] . "91" . ":'" . $metric[2] . "' ";
} else {
$rrd_legend .= "STACK:" . $index . $metric[1] . "91" . ":'" . $metric[2] . "' ";
}
if ($size == 'large') {
$rrd_legend .= "VDEF:n" . $index . "_max" . "=" . $index . ",MAXIMUM ";
$rrd_legend .= "GPRINT:n" . $index . "_max" . ":" . '"Max\:%6.0lf" ';
$rrd_legend .= "VDEF:n" . $index . "_min" . "=" . $index . ",MINIMUM ";
$rrd_legend .= "GPRINT:n" . $index . "_min" . ":" . '"Min\:%6.0lf" ';
$rrd_legend .= "VDEF:n" . $index . "_avg" . "=" . $index . ",AVERAGE ";
$rrd_legend .= "GPRINT:n" . $index . "_avg" . ":" . '"Avg\:%6.0lf" ';
$rrd_legend .= "VDEF:n" . $index . "_last" . "=" . $index . ",LAST ";
# Can't figure out an easy way to line up the legend
$rrd_legend .= "GPRINT:n" . $index . "_last" . ":" .'"Now\:%6.0lf \r" ';
}
$counter++;
}
}

$rrdtool_graph['series'] = $rrd_defs . $rrd_graphs . $rrd_legend;
return $rrdtool_graph;
}
?>

gangliaでクラスタ別にグラフを追加する方法

gangliaでクラスタ別にグラフを追加する方法

前提
gangliaでoptional_graphをホストビューに追加する方法で、optional_graphを表示できるようになっていること。

クラスタは、以下のように"Inspector","Database"が存在する場合を例にします。

/etc/ganglia/gmetad.conf
data_source "Inspector" 192.168.201.30
data_source "Database" 192.168.201.31


(1) optional_graphs2という設定を追加し、クラスタ毎に追加するグラフを記述する。

/etc/ganglia/conf.php
#
# Optional summary graphs
#
$optional_graphs2 = array(
'Inspector' => array('apache_status'),
'Database' => array(
'mysql_connections',
'mysql_innodb_bp_activity',
'mysql_innodb_io',
'mysql_qcache_hitrate',
'mysql_qcache_mem',
'mysql_qcache',
'mysql_query',
'mysql_select_types',
'mysql_simple_query',
'mysql_table_locks',
'mysql_temporary_objects',
'mysql_traffic'
)
);


(2) cluster_view.php, host_view.php に、以下のオレンジ部分を追加する。
(「クラスタ毎の設定があれば optional_graphs に追加する」ようにプログラムを変更する。)

/usr/share/ganglia/cluster_view.php
#
# Summary graphs
#
$graph_args = "c=$cluster_url&$get_metric_string&st=$cluster[LOCALTIME]";
$tpl->assign("graph_args", $graph_args);
if (!isset($optional_graphs))
$optional_graphs = array();
if (isset($optional_graphs2) && isset($optional_graphs2[$clustername]))
$optional_graphs = array_merge($optional_graphs, $optional_graphs2[$clustername]);
foreach ($optional_graphs as $g) {
$tpl->newBlock('optional_graphs');
$tpl->assign('name',$g);
$tpl->assign('graph_args',$graph_args);
$tpl->gotoBlock('_ROOT');
}


/usr/share/ganglia/host_view.php
#
# optional graphs
#
$graphargs = "c=$cluster_url&h=$hostname&$get_metric_string&st=$cluster[LOCALTIME]";
if (!isset($optional_graphs))
$optional_graphs = array();
if (isset($optional_graphs2) && isset($optional_graphs2[$clustername]))
$optional_graphs = array_merge($optional_graphs, $optional_graphs2[$clustername]);
foreach ($optional_graphs as $g) {
$tpl->newBlock('optional_graphs');
$tpl->assign('name',$g);
$tpl->assign('graphargs',$graphargs);
$tpl->gotoBlock('_ROOT');
}

gangliaでoptional_graphをホストビューに追加する方法

gangliaでoptional_graphをホストビューに追加する方法

gangliaは初期状態では4個しかグラフが表示されない。
optional_graph パラメータを設定すると、クラスタビューにグラフが追加されるのだが、ホストビューには表示されない。
そこを、なんとかする。

(1) host_view.phpの最後、$tpl->printToScreen(); の前に以下を追加する。
(自分でコード書いた訳じゃなく、cluster_view.php からコピーして修正した)

/usr/share/ganglia/host_view.php
#
# optional graphs
#
$graphargs = "c=$cluster_url&h=$hostname&$get_metric_string&st=$cluster[LOCALTIME]";
if (!isset($optional_graphs))
$optional_graphs = array();
foreach ($optional_graphs as $g) {
$tpl->newBlock('optional_graphs');
$tpl->assign('name',$g);
$tpl->assign('graphargs',$graphargs);
$tpl->gotoBlock('_ROOT');
}


(2) host_view.tpl に optional_graphs のブロックを追加する。
(自分でコード書いた訳じゃなく、cluster_view.tpl からコピーして修正した)
※場所はデフォルトの4個のグラフの直下あたりで。

/usr/share/ganglia/templates/default/host_view.tpl
<!-- START BLOCK : optional_graphs -->
<A HREF="./graph.php?g={name}_report&z=large&{graphargs}">
<IMG BORDER=0 ALT="{cluster_url} {name}"
SRC="./graph.php?g={name}_report&z=medium&{graphargs}">
</A>
<!-- END BLOCK : optional_graphs -->


(3) なんなら、ついでに、デフォルトの4個のグラフも、optional_graphs として扱っちゃう。
※ cluster_view.tpl, host_view.tpl のデフォルトのグラフは削除。

/etc/ganglia/conf.php
#
# Optional summary graphs
#
$optional_graphs = array('load','cpu','mem','network','packet');


(4) ここまできたら、gangliaでクラスタ別にグラフを追加する方法ができるようになる。

Galaxy NEXUS (SC-04D) Jerry Bean!! (Android 4.1)

Galaxy NEXUS (SC-04D) Jerry Bean (Android 4.1)

Google IO 2012 で紹介された Jerry Bean (Android 4.1) の NEXUS 版が XDA に公開されました。

導入手順

ClockWorkMod

カスタムロムの導入には ClockWorkMod が必須です。こちらを参照。

ダウンロード

  1. [ROM][GSM]Jellybean 4.1 JRN84D: Stock Rooted Busybox Deodexed - v2 (6/29/12)からbigxie_JRN84D_rooted_busybox_deodexed.zipをダウンロード。
  2. [21.06.2012] SuperSU v0.92からCWM-SuperSU-v0.92.zipをダウンロード。
  3. 両ファイルを NEXUS に転送。

NEXUS を リカバリモードで起動

ボリュームボタン UP, DOWN と 電源ボタンを同時押ししてFastBoot モードに入る。
ボリュームボタン DOWN を何度か押して、recovery を選択して、電源ボタンで決定。

ROM 焼き

  1. Wipe data/factory reset. - Yes.
  2. advanced - Wipe Dalvik Cache - Yes.
  3. install zip from sdcard - choose zip from sdcard - bigxie_JRN84D_rooted_busybox_deodexed.zip - Yes.
  4. install zip from sdcard - choose zip from sdcard -CWM-SuperSU-v0.92.zip - Yes.
  5. reboot
( Google Apps は、追加インストールしなくて良いそうです。)

Galaxy NEXUS 最高!!

  • OK!! カメラ
  • OK!! Wi-Fiテザリング
  • OK!! AEONシム
  • OK!! 顔認識

OAuth2 Provider

Railsで OAuth2 Providerを準備する (Windows)

MongoDBの用意

  1. http://www.mongodb.org/downloads ここから
  2. http://downloads.mongodb.org/win32/mongodb-win32-i386-2.0.6.zip MongoDB をダウンロード
  3. C:\data を作成して 上記を展開する
  4. C:\data\mongodb-win32-x86_64-2.0.6\bin\mongod.exe を実行する。
  5. コンソールを閉じるとサーバ停止

Eclipseの用意

  1. GitHub で公開中 https://github.com/exabugs/rest-oauth2-server
  2. eclipseからFile->Importを選択して、Git->Projects from Gitを選択。
検索フォーム
RSSリンクの表示
リンク
exabugsをフォローしましょう
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。