seffeng / aliyun-sls
The SLS SDK for Aliyun OpenAPI
v0.1.0
2020-12-09 08:21 UTC
Requires
- php: >=5.3.0
- lokielse/aliyun-open-api-core: ^1.0.0
This package is auto-updated.
Last update: 2024-11-09 16:42:55 UTC
README
The SLS SDK for Aliyun OpenAPI
Install
Via Composer
$ composer require lokielse/aliyun-open-api-sls
Usage
/** * Config */ $config = [ 'AccessKeyId' => 'your_access_key_id', 'AccessKeySecret' => 'your_access_key_secret', 'endpoint' => 'cn-hangzhou.sls.aliyuncs.com', 'project' => 'your_sls_project_name', 'logStore' => 'your_sls_log_store_name', 'topic' => '', 'source' => '', ]; /** * 写日志 (Write Logs) */ $logs = array( new LogItem([ 'user' => 'jello', 'action' => 'trash_photo', 'object_id' => 123456 ]), new LogItem([ 'user' => 'frank', 'action' => 'delete_user', 'object_id' => 100236 ]), ); $putLogsRequest = new PutLogsRequest($config['project'], $config['logStore'], $config['topic'], $config['source'], $logs); $client = new Client($config['endpoint'], $config['AccessKeyId'], $config['AccessKeySecret']); $putLogsResponse = $client->putLogs($putLogsRequest); /** * 读日志 (Read Logs) * 在控制台查看日志有3-5分钟延迟, 但是使用该SDK查看无延迟 */ $listShardRequest = new ListShardsRequest($config['project'], $config['logStore']); $listShardResponse = $client->listShards($listShardRequest); foreach ($listShardResponse->getShardIds() as $shardId) { /** * 对每一个ShardId,先获取Cursor */ $getCursorRequest = new GetCursorRequest($config['project'], $config['logStore'], $shardId, null, time() - 60); $response = $client->getCursor($getCursorRequest); $cursor = $response->getCursor(); $count = 100; while (true) { /** * 从cursor开始读数据 */ $batchGetDataRequest = new BatchGetLogsRequest($config['project'], $config['logStore'], $shardId, $count, $cursor); var_dump($batchGetDataRequest); $response = $client->batchGetLogs($batchGetDataRequest); if ($cursor == $response->getNextCursor()) { break; } $logGroupList = $response->getLogGroupList(); /** * @var \Aliyun\SLS\Log\LogGroup $logGroup * @var Aliyun\SLS\Log\Log $log * @var Aliyun\SLS\Log\LogContent $content */ foreach ($logGroupList as $logGroup) { print ( $logGroup->getCategory() ); foreach ($logGroup->getLogsArray() as $log) { foreach ($log->getContentsArray() as $content) { print( $content->getKey() . ":" . $content->getValue() . "\t" ); } print( "\n" ); } } $cursor = $response->getNextCursor(); } }
Change log
Please see CHANGELOG for more information what has changed recently.
Testing
$ composer test
Contributing
Please see CONTRIBUTING and CONDUCT for details.
Security
If you discover any security related issues, please email lokielse@gmail.com instead of using the issue tracker.
Credits
License
The MIT License (MIT). Please see License File for more information.