php实现监控varnish缓存服务器的状态


Posted in PHP onDecember 30, 2014

当varnish和网站部署在同一台服务器上的时候,我们不可能随时登录上服务器去查看varnish的命中率,没想到有大神早就写了出来,今天就分享给大家,使用网页查看varnish命中率。

系统:centos 5.x
软件:varnish-3.0.x

ps:3.0以下的版本可以通过Socket连接到Varnish管理端口,通过stat命令查看,3.0以上没有stat命令,只能通过下面的方法解决。

<?php

$outfile=shell_exec("/usr/bin/varnishstat -x");

$xml=simplexml_load_string($outfile);

echo $xml->getName() . "<br />";

foreach($xml->children() as $child)

  {

      //$tmpName="";

      foreach($child->children() as $subChild)

      {

        if ($subChild->getName() =="name" )

         {

            $tmpName=$subChild;

        }

        else  if ($subChild->getName() =="value" )

        {

            if ($tmpName!="")

            {

               $arys["$tmpName"]=$subChild;

               $tmpName="";

            }

        }

        else

         {

            continue;

        }

      }

  }

  function byteReduce($bytes)

  {

      if ($bytes>1099511627776)

      {

          return round($bytes/1099511627776)."TB";

      }

      else if ($bytes > 1073741824)

      {

          return round($bytes/1073741824)."GB";

      }

      else if ($bytes>1048576)

      {

          return round($bytes/1048576)."MB";

      }

      else if ($bytes>1024)

      {

          return round($bytes/1024)."KB";

      }

      else

      {

          return $bytes."B";

      }

  }

  echo "client_conn: ".$arys["client_conn"] . "<br />";

  echo "client_req: ".$arys["client_req"] . "<br />";

  echo "cache_hit: ".$arys["cache_hit"] . "<br />";

  echo "cache_miss: ".$arys["cache_miss"] . "<br />";

  echo "Cache hit rate: ".round(($arys["cache_hit"]/$arys["client_req"])*100)." % <br/>";

  echo "LRU nuked objects: ".$arys[n_lru_nuked]."<br/>";

  echo " ".byteReduce($arys["s_bodybytes"]+$arys["s_hdrbytes"])." Acc Content (".byteReduce($arys["s_hdrbytes"])." header ".byteReduce($arys["s_bodybytes"])." Body)";

?>

效果如下:

php实现监控varnish缓存服务器的状态

ps:为了查看实时情况,可以在这监控页加个html定时刷新.
好了,这样就方便我们随时查看varnish的状态了.

PHP 相关文章推荐
php URL编码解码函数代码
Mar 10 PHP
php 正确解码javascript中通过escape编码后的字符
Jan 28 PHP
一个PHP的QRcode类与大家分享
Nov 13 PHP
PHP原生模板引擎 最简单的模板引擎
Apr 25 PHP
显示youtube视频缩略图和Vimeo视频缩略图代码分享
Feb 13 PHP
浅析php原型模式
Nov 25 PHP
PHP+Jquery与ajax相结合实现下拉淡出瀑布流效果【无需插件】
May 06 PHP
Laravel框架中VerifyCsrfToken报错问题的解决
Aug 30 PHP
thinkPHP框架动态配置用法实例分析
Jun 14 PHP
PHP基于rabbitmq操作类的生产者和消费者功能示例
Jun 16 PHP
实例讲解php将字符串输出到HTML
Jan 27 PHP
浅谈laravel-admin form中的数据,在提交后,保存前,获取并进行编辑
Oct 21 PHP
php在线解压ZIP文件的方法
Dec 30 #PHP
php站内搜索关键词变亮的实现方法
Dec 30 #PHP
php使用PDO操作MySQL数据库实例
Dec 30 #PHP
discuz目录文件资料汇总
Dec 30 #PHP
浅谈php冒泡排序
Dec 30 #PHP
制作安全性高的PHP网站的几个实用要点
Dec 30 #PHP
php读取mssql的ntext字段返回值为空的解决方法
Dec 30 #PHP
You might like
30个php操作redis常用方法代码例子
2014/07/05 PHP
PHP 实现代码复用的一个方法 traits新特性
2015/02/22 PHP
php中关于socket的系列函数总结
2015/05/18 PHP
PHP常见漏洞攻击分析
2016/02/21 PHP
jQuery筛选器children()案例详解(图文)
2013/02/17 Javascript
Javascript 修改String 对象 增加去除空格功能(示例代码)
2013/11/30 Javascript
浅析Javascript中“==”与“===”的区别
2014/12/23 Javascript
javascript跨域请求包装函数与用法示例
2016/11/03 Javascript
vuejs父子组件通信的问题
2017/01/11 Javascript
如何写好你的JavaScript【推荐】
2017/03/02 Javascript
Angular实现预加载延迟模块的示例
2017/10/12 Javascript
node.js爬取中关村的在线电瓶车信息
2018/11/13 Javascript
JS实现二维数组元素的排列组合运算简单示例
2019/01/28 Javascript
基于javascript实现贪吃蛇小游戏
2019/11/25 Javascript
JavaScript复制变量三种方法实例详解
2020/01/09 Javascript
js实现拾色器插件(ColorPicker)
2020/05/21 Javascript
实例讲解JavaScript 计时事件
2020/07/04 Javascript
python开发的小球完全弹性碰撞游戏代码
2013/10/15 Python
python抓取豆瓣图片并自动保存示例学习
2014/01/10 Python
python小技巧之批量抓取美女图片
2014/06/06 Python
python协程用法实例分析
2015/06/04 Python
Python实现PS滤镜的万花筒效果示例
2018/01/23 Python
对pandas中时间窗函数rolling的使用详解
2018/11/28 Python
使用python telnetlib批量备份交换机配置的方法
2019/07/25 Python
Django项目中使用JWT的实现代码
2019/11/04 Python
Python破解BiliBili滑块验证码的思路详解(完美避开人机识别)
2020/02/17 Python
多个版本的python共存时使用pip的正确做法
2020/10/26 Python
详解pandas映射与数据转换
2021/01/22 Python
学生自我鉴定范文
2013/10/04 职场文书
新品发布会策划方案
2014/06/08 职场文书
乡镇遵守党的政治纪律情况对照检查材料
2014/09/26 职场文书
硕士毕业答辩开场白
2015/05/27 职场文书
草房子读书笔记
2015/06/29 职场文书
毕业生自荐求职信书写的技巧
2019/08/26 职场文书
Python中的xlrd模块使用整理
2021/06/15 Python
分析SQL窗口函数之排名窗口函数
2022/04/21 Oracle