Pinba Munin plugins - andreydiveev/wiki GitHub Wiki

Munin plugins for Pinba (via Intaro Pinboard tables).

Request time

#!/usr/bin/php -q
<?php

if (@$argv[1] == 'config') {
  echo "graph_category pinba\n";
  echo "graph_vlabel ms\n";
  echo "graph_title Request time\n";
  echo "req_time_90.label 90th percentile of request time\n";
  echo "req_time_95.label 95th percentile of request time\n";
  echo "req_time_99.label 99th percentile of request time\n";
  echo "req_time_100.label Max request time\n";
  exit;
}

$db = new PDO("mysql:dbname=pinba;host=localhost", 'user', 'password');
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

$r = $db->query("
    SELECT req_time_90, req_time_95, req_time_99, req_time_100
    FROM pinba.ipm_report_2_by_hostname_and_server report
    WHERE report.server_name = 'site.com'
    ORDER BY report.created_at DESC
    LIMIT 1;
");
$req = $r->fetch();
echo "req_time_90.value {$req['req_time_90']}\n";
echo "req_time_95.value {$req['req_time_95']}\n";
echo "req_time_99.value {$req['req_time_99']}\n";
echo "req_time_100.value {$req['req_time_100']}\n";

Requests per sec

#!/usr/bin/php -q
<?php

if (@$argv[1] == 'config') {
  echo "graph_category pinba\n";
  echo "graph_vlabel requests\n";
  echo "graph_title Requests per sec\n";
  echo "req_per_sec.label server-node1\n";
  exit;
}

$db = new PDO("mysql:dbname=pinba;host=localhost", 'user', 'password');
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

$r = $db->query("
    SELECT req_per_sec
    FROM pinba.ipm_report_by_hostname_and_server report
    WHERE report.server_name = 'site.com'
    ORDER BY report.created_at DESC
    LIMIT 1;
");
$req = $r->fetch();
echo "req_per_sec.value {$req['req_per_sec']}\n";

Memory peak usage

#!/usr/bin/php -q
<?php

if (@$argv[1] == 'config') {
  echo "graph_category pinba\n";
  echo "graph_vlabel kB\n";
  echo "graph_title Memory peak usage\n";
  echo "mem_peak_usage_90.label 90th percentile of memory peak usage\n";
  echo "mem_peak_usage_95.label 95th percentile of memory peak usage\n";
  echo "mem_peak_usage_99.label 99th percentile of memory peak usage\n";
  echo "mem_peak_usage_100.label Max memory peak usage\n";
  exit;
}

$db = new PDO("mysql:dbname=pinba;host=localhost", 'user', 'password');
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

$r = $db->query("
    SELECT mem_peak_usage_90, mem_peak_usage_95, mem_peak_usage_99, mem_peak_usage_100
    FROM pinba.ipm_report_2_by_hostname_and_server report
    WHERE report.server_name = 'site.com'
    ORDER BY report.created_at DESC
    LIMIT 1;
");
$req = $r->fetch();
echo "mem_peak_usage_90.value {$req['mem_peak_usage_90']}\n";
echo "mem_peak_usage_95.value {$req['mem_peak_usage_95']}\n";
echo "mem_peak_usage_99.value {$req['mem_peak_usage_99']}\n";
echo "mem_peak_usage_100.value {$req['mem_peak_usage_100']}\n";

CPU peak usage

#!/usr/bin/php -q
<?php

if (@$argv[1] == 'config') {
  echo "graph_category pinba\n";
  echo "graph_vlabel %\n";
  echo "graph_title CPU peak usage\n";
  echo "cpu_peak_usage_90.label 90th percentile of CPU peak usage\n";
  echo "cpu_peak_usage_95.label 95th percentile of CPU peak usage\n";
  echo "cpu_peak_usage_99.label 99th percentile of CPU peak usage\n";
  echo "cpu_peak_usage_100.label Max CPU peak usage\n";
  exit;
}

$db = new PDO("mysql:dbname=pinba;host=localhost", 'user', 'password');
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

$r = $db->query("
    SELECT cpu_peak_usage_90, cpu_peak_usage_95, cpu_peak_usage_99, cpu_peak_usage_100
    FROM pinba.ipm_report_2_by_hostname_and_server report
    WHERE report.server_name = 'site.com'
    ORDER BY report.created_at DESC
    LIMIT 1;
");
$req = $r->fetch();
echo "cpu_peak_usage_90.value {$req['cpu_peak_usage_90']}\n";
echo "cpu_peak_usage_95.value {$req['cpu_peak_usage_95']}\n";
echo "cpu_peak_usage_99.value {$req['cpu_peak_usage_99']}\n";
echo "cpu_peak_usage_100.value {$req['cpu_peak_usage_100']}\n";

Doc size

#!/usr/bin/php -q
<?php

if (@$argv[1] == 'config') {
  echo "graph_category pinba\n";
  echo "graph_vlabel kB\n";
  echo "graph_title Doc size\n";
  echo "doc_size_90.label 90th percentile of doc size\n";
  echo "doc_size_95.label 95th percentile of doc size\n";
  echo "doc_size_99.label 99th percentile of doc size\n";
  echo "doc_size_100.label Max doc size\n";
  exit;
}

$db = new PDO("mysql:dbname=pinba;host=localhost", 'user', 'password');
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

$r = $db->query("
    SELECT doc_size_90, doc_size_95, doc_size_99, doc_size_100
    FROM pinba.ipm_report_2_by_hostname_and_server report
    WHERE report.server_name = 'site.com'
    ORDER BY report.created_at DESC
    LIMIT 1;
");
$req = $r->fetch();
echo "doc_size_90.value {$req['doc_size_90']}\n";
echo "doc_size_95.value {$req['doc_size_95']}\n";
echo "doc_size_99.value {$req['doc_size_99']}\n";
echo "doc_size_100.value {$req['doc_size_100']}\n";