资讯专栏INFORMATION COLUMN

Php性能监控

flyer_dev / 1007人阅读

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import commands, socket, time, json, urllib2
#import sys

STATUS_PATH = "/status"         #根据情况修改
LISTEN_ADDR = "127.0.0.1:9000"  #根据情况修改

def go():
    monit_keys = [
        # "pool
        # "start_time"
        # "process_manager"
        # "start_since"
        ("active_processes", "GAUGE"),
        ("accepted_conn", "COUNTER"),
        ("listen_queue", "GAUGE"),
        ("idle_processes", "GAUGE"),
        ("slow_requests", "GAUGE"),
        ("max_active_processes", "GAUGE"),
        ("max_children_reached", "GAUGE"),
        ("max_listen_queue", "GAUGE"),
        ("total_processes", "GAUGE"),
        ("listen_queue_len", "GAUGE"),
    ]

    status = commands.getoutput("SCRIPT_NAME=%s SCRIPT_FILENAME=%s QUERY_STRING="json" REQUEST_METHOD=GET cgi-fcgi -bind -connect %s | tail -n 1" % (STATUS_PATH, STATUS_PATH, LISTEN_ADDR))
    status = json.loads(status)

    ip = socket.gethostname()
    timestamp = int(time.time())
    step = 60
    metric = "php"
    endpoint = ip
    tags = "pool=%s" % status["pool"]
    p = []

    for key, vtype in monit_keys:
        value = int(status[key.replace("_", " ")])
        i = {
            "Metric": "%s.%s" % (metric, key),
            "Endpoint": endpoint,
            "Timestamp": timestamp,
            "Step": step,
            "Value": value,
            "CounterType": vtype,
            "TAGS": tags
        }
        p.append(i)

    #print json.dumps(p)
    #sys.exit(0)
    method = "POST"
    handler = urllib2.HTTPHandler()
    opener = urllib2.build_opener(handler)
    url = "http://127.0.0.1:10055/v1/push"
    request = urllib2.Request(url, data=json.dumps(p) )
    request.add_header("Content-Type","application/json")
    request.get_method = lambda: method
    try:
        connection = opener.open(request)
    except urllib2.HTTPError,e:
        connection = e

    if connection.code == 200:
        pass
    else:
        print "{"err":1,"msg":"%s"}" % connection

if __name__ == "__main__":
    go()

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/44605.html

相关文章

  • 听云Server:国内的PHP、JSP、.NET性能监测方案

    摘要:听云监控的效率和性能瓶颈。听云对加速内容进行监测。听云监控服务器,免费用户可以监控台。一般听云新建的应用大约分钟才能接收到数据,监控数据和实际访问数据大约有分钟的时差。 最近搭建了一个比较私密的博客,因为是国外VPS,所以想测试一下各地的访问时间。 翻来翻去找到了这个:听云CDN。 当然又去不务正业了,没有去用听云CDN,而是开始试用了一下听云Server。 听云是做...

    Tecode 评论0 收藏0
  • OneAPM 云监控部署与试用体验

    摘要:作为骨灰级粉丝,一直以来对第三方监控都是拒绝的。例如白屏时间首屏时间脚本错误网页加载就绪时间各种浏览器的访问情况,甚至能了解不同浏览器运营商地区用户的访问状况。脚本错误在所难免,错误进一步导致网站部分功能无法使用。 作为 Zabbix 骨灰级粉丝,一直以来对第三方监控(APM)都是拒绝的。一来觉得收费,二来担心数据被人所知,三来觉得 Zabbix 牛逼到无可取代。但是,随着 APM 市...

    Tecode 评论0 收藏0
  • PHP应用性能优化指南

    摘要:怎样才算是高性能的应用性能和速度不是一对同义词。红线表示针对速度进行了优化的脚本,蓝线是可扩展性优先的脚本。将任何这些功能置于循环中可能会导致性能问题。完整的代码检测评估虽然可能很耗时,但它可以为你提供有关应用程序性能的深入信息。 showImg(https://segmentfault.com/img/bVNxDn?w=900&h=500);程序员都喜欢最新的PHP 7,因为它使PH...

    EddieChan 评论0 收藏0
  • Docker的LNMP一键安装开发环境 + PHP非侵入式监控平台xhgui(优化系统性能、定位Bu

    摘要:的一键安装开发环境非侵入式监控平台优化系统性能定位的神器之前在用做本地开发环境,因为没有这些对程序性能追踪及分析的工具,所以索性基于的编排了一套自己使用。 DNMP PLUS dnmp = Docker + Nginx + MySQL + PHP + Redis + MongDB plus = xhgui + xhprof + tideways dnmp-plus = PHPer 的一...

    AlanKeene 评论0 收藏0
  • PHP 7.0 安装使用与性能监测!

    摘要:安装的包默认是的。所以我使用的来完成这些工作,同样使用定时采样定时汇报的方式来收集性能信息,并且官方宣称耗费资源小于。以上只是通过持续检查程序稳定性的一个基本方法。 PHP 7.0发布,网上关于新版的介绍很多,介于 7.0 在正式发布之前已经发过若干个 Beta、8个 RC,应该不会出现重大问题。今日我将一台机器升级至 PHP 7.0 并将有关信息记录如下。 本人使用 Ubuntu 1...

    zorpan 评论0 收藏0
  • 如何使用 APM 搞定 PHP 应用的性能优化?

    摘要:究竟是什么很多人都是第一次听说的概念,本文主要阐述如何使用的解决方案来实现应用性能的优化。智能的报警机制,在性能瓶颈出现前,修复性能问题,防止性能问题导致用户流失。 APM 究竟是什么? 很多人都是第一次听说 APM 的概念,本文主要阐述如何使用 APM 的解决方案来实现 PHP 应用性能的优化。首先先介绍一下 APM (Application Performance Manageme...

    sean 评论0 收藏0

发表评论

0条评论

flyer_dev

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<