/php_monitor

The monitor php sdk

Primary LanguagePHP

mini-monitor

A monitor php

Build Status Latest Stable Version Total Downloads Latest Unstable Version License


中文文档

项目背景

目前市面上大多数监控是针对服务器的CPU、内存占用率、网络流量等,这一些都是偏运维层面的监控。

对开发人员来说,大家更关注自己的服务是否有挂、业务被调用的次数,如果是有条件的调用还需要关注调用的返回值统计、成功和失败的次数等。

现有的成熟解决方案主要有两种,一是通过日志分析,在服务中进行埋点,后期进行日志分析。第二种是通过业务调用时进行上报。这两种方案都可以满足需求,但同时也存在着各自的不足,日志分析的方式较难配置。第二种业务上报模式多是通过每次调用时进行上报,这也占用了大量的带宽资源,当访问量过大时,这样的上报对监控收集端来说相对于巨大的DDOS攻击,简直堪比灾难。

基于这样的背景,我进行了本次项目的开发,以应对日常开发对业务可用性的关注。

解决方案:

将上报数据暂存到服务器内存,将此服务器的所有上报数据通过定时脚本,每分钟上报一次,减少网络资源占用。

技术选型:采用 php_monitor + influxdb + grafana

功能分配:

php_monitor:负责业务的上报与收集。

influxd:时序性数据库 负责监控数据的持久化。

grafana:是一个开源的度量分析和可视化套件。 负责监控数据的可视化,同时可配置 email和dingding机器人等报警。

依赖

php 7.0+ 同时需开启php内置扩展sysvsem、sysvshm

安装

$ composer require mini-monitor/php_monitor dev-master

使用方式

这里有三种功能你可以使用。

例子:

1.为上报数据加一

add($key) 

2.为上报数据增加指定值

addValue($key,$value)

3.为上报数据设置指定值

set($key,$value)  

##接下来要做的是

1.增加服务端进行数据收集。 2.完善项目文档。

一起创造

你可以通过一下几种方式进行代码贡献。

  1. 通过这个链接提交问题 issue tracker.
  2. 帮助解答已存在的相应问题 issue tracker.
  3. 提交新的功能并更新文档.

本人开发经验较少,可能会存在很多不足,敬请谅解。

协议

本开源项目遵守MIT协议


English Doc

Installing

$ composer require mini-monitor/php_monitor dev-master

Usage

There are three functions you can use .

example:

Add one to on the key

add($key) 

To add a value of key

addValue($key,$value)

To set a value of key

set($key,$value)  

##TODO LISTS

Contributing

You can contribute in one of three ways:

  1. File bug reports using the issue tracker.
  2. Answer questions or fix bugs on the issue tracker.
  3. Contribute new features or update the wiki.

License

MIT