tars-monitor
is the phptars
service and feature monitoring report module
It consists of two sub-modules:
Install with composer
composer install phptars/tars-monitor
The use of regular reporting requires swoole_table support. By calling addStat to temporarily store the reporting information, the task process of the tars-server will collect for a period of time (the reporting interval is issued by the server, generally 60s).
$locator = "tars.tarsregistry.QueryObj@tcp -h 172.16.0.161 -p 17890";
$socketMode = 1;
$statfWrapper = new \Tars\monitor\StatFWrapper($locator, $socketMode);
$statfWrapper->addStat ("PHPTest.helloTars.obj", "test", "172.16.0.116", 51003,200,0,0);
$statfWrapper->addStat ("PHPTest.helloTars.obj", "test", "172.16.0.116", 51003,200,0,0);
$statfWrapper->addStat ("PHPTest.helloTars.obj", "test", "172.16.0.116", 51003,200,0,0);
Reported data can use multiple storage methods. The cache provides the implementation of swoole_table
and redis
. Users can also implement contract/StoreCacheInterface
by themselves. For the configuration storage method, please refer to examples tars-http-server
configuration for src / services.php
.
return array (
'namespaceName' => 'HttpServer \\',
'monitorStoreConf' => [
'className' => Tars \ monitor \ cache \ SwooleTableStoreCache :: class,
'config' => []
]
);
monitorStoreConf
is the configuration of the storage method, className
is the implementation class, and config
is the corresponding configuration. For example, when using the redis storage method, you need to configure the redis host, port, and key prefix in the config.
When monitorStoreConf
is not configured, SwooleTableStoreCache
is used for storage by default.
At the same time,
tars-monitor
also provides a single report interfacemonitorStat
, that is, each tars request call will be reported once.
$locator = "tars.tarsregistry.QueryObj@tcp -h 172.16.0.161 -p 17890";
$socketMode = 1;
$statfWrapper = new \Tars\monitor\StatFWrapper($locator,$socketMode);
$statfWrapper->monitorStat("PHPTest.helloTars.obj","test","172.16.0.116",51003,200,0,0);
Parameters are similar to service monitoring
$statfWrapper = new \Tars\monitor\PropertyFWrapper("tars.tarsregistry.QueryObj@tcp -h 172.16.0.161 -p 17890",1);
$statfWrapper->monitorProperty("127.0.0.1","userdefined",'Sum',2);
$statfWrapper->monitorProperty("127.0.0.1","userdefined",'Count',2);
$statfWrapper->monitorProperty("127.0.0.1","userdefined",'Count',1);
After the data is reported, the user can view the reported data in the Service Monitoring / Feature Monitoring tab.
Because other modules have integrated this module, so in general, the service script does not need to use this module explicitly.