PHP code example of larva / volcengine-tls-sdk-php

1. Go to this page and download the library: Download larva/volcengine-tls-sdk-php library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

larva / volcengine-tls-sdk-php example snippets


use Larva\Volc\TlsClient;

$client = new TlsClient(
    $ak,       // Access Key
    $sk,       // Secret Key
    'https://tls-cn-beijing.volces.com', // 接入点地址
    'cn-beijing' // 地域
);

// 批量写入日志
$logs = [
    ['id' => 1, 'content' => 'hello'],
    ['id' => 2, 'content' => 'world'],
];
$response = $client->putLogs('your-topic-id', $logs);

// 创建日志项目
$client->createProject('my-project', 'cn-beijing', '项目描述');

// 查询项目信息
$client->describeProject('project-id');

// 查询所有项目
$client->describeProjects(['PageSize' => 20, 'PageNumber' => 1]);

// 修改项目
$client->modifyProject('project-id', 'new-name', '新描述');

// 删除项目
$client->deleteProject('project-id');

// 批量写入
$client->putLogs('topic-id', [
    ['level' => 'info', 'message' => '日志内容'],
    ['level' => 'error', 'message' => '错误信息'],
]);

// 写入单条
$client->putLog('topic-id', ['level' => 'info', 'message' => '单条日志']);

// 检索日志
// 文档: https://www.volcengine.com/docs/6470/112195
$response = $client->searchLogs([
    'TopicId' => 'topic-id',
    'Query' => '*',
    'StartTime' => strtotime('-1 hour'),
    'EndTime' => time(),
    'Limit' => 20,
]);

// 获取游标
$cursor = $client->describeCursor('topic-id', 0);

// 消费日志(支持 lz4、zlib 压缩)
$result = $client->consumeLogs('topic-id', 0, 0, 'lz4');

// 获取分区列表
$client->describeShards('topic-id', 1, 20);

// 手动分裂分区
$client->manualShardSplit('topic-id', 0, 2);

// 创建下载任务
$client->createDownloadTask([
    'TopicId' => 'topic-id',
    'Query' => '*',
    'StartTime' => strtotime('-1 day'),
    'EndTime' => time(),
]);

// 查询下载任务列表
$client->describeDownloadTasks('topic-id', '', 1, 20);

// 获取下载链接
$client->describeDownloadUrl('task-id');

// 取消下载任务
$client->cancelDownloadTask('task-id');

$config = $client->getKafkaConfig('project-id', 'topic-id');
// 返回:
// [
//     'host' => 'tls-cn-beijing.volces.com:9093',
//     'username' => 'project-id#public',  // 内网为 #private
//     'password' => 'ak#sk',
//     'topic' => 'out-topic-id',
// ]

use Larva\Volc\MonologHandler;
use Larva\Volc\TlsLoggingFormatter;
use Monolog\Logger;

$handler = new MonologHandler(
    $ak,
    $sk,
    'https://tls-cn-beijing.volces.com',
    'topic-id',
    'cn-beijing'
);
$handler->setFormatter(new TlsLoggingFormatter());

$logger = new Logger('tls');
$logger->pushHandler($handler);

$logger->info('Hello TLS', ['user_id' => 123]);

use Larva\Volc\MonologHandler2;
use Larva\Volc\TlsLoggingFormatter2;
use Monolog\Logger;

$handler = new MonologHandler2(
    $ak,
    $sk,
    'https://tls-cn-beijing.volces.com',
    'topic-id',
    'cn-beijing'
);
$handler->setFormatter(new TlsLoggingFormatter2());

$logger = new Logger('tls');
$logger->pushHandler($handler);

'tls' => [
    'driver' => 'custom',
    'via' => function ($config) {
        $handler = new \Larva\Volc\MonologHandler(
            env('TLS_AK'),
            env('TLS_SK'),
            env('TLS_ENDPOINT', 'https://tls-cn-beijing.volces.com'),
            env('TLS_TOPIC_ID'),
            env('TLS_REGION', 'cn-beijing')
        );
        $handler->setFormatter(new \Larva\Volc\TlsLoggingFormatter());

        return tap(new \Monolog\Logger('tls'), function ($logger) use ($handler) {
            $logger->pushHandler($handler);
        });
    },
],