PHP code example of uengage / curl-tracker

1. Go to this page and download the library: Download uengage/curl-tracker 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/ */

    

uengage / curl-tracker example snippets



urlTracker\CurlHook;

CurlHook::init([
    'backend' => 'pushgateway',
    'pushgateway' => [
        'url' => 'http://localhost:9091',
        'job_name' => 'my_application'
    ]
]);


urlTracker\CurlHook;

CurlHook::init([
    'backend' => 'cloudwatch',
    'cloudwatch' => [
        'aws_region' => 'us-east-1',
        'namespace' => 'MyApp/APIMetrics'
    ]
]);


use CurlTracker\CurlHook;

Events::on('pre_system', function() {
    if (class_exists('CurlTracker\CurlHook')) {
        $tracker = CurlHook::init([
            'backend' => env('METRICS_BACKEND', 'pushgateway'),
            'sample_rate' => env('METRICS_SAMPLE_RATE', 100),
            'pushgateway' => [
                'url' => env('PUSHGATEWAY_URL', 'http://localhost:9091'),
                'job_name' => env('APP_NAME', 'codeigniter_app')
            ],
            'cloudwatch' => [
                'aws_region' => env('AWS_REGION', 'us-east-1'),
                'namespace' => env('CLOUDWATCH_NAMESPACE', 'MyApp/Metrics')
            ]
        ]);

        // Enable automatic cURL hooking
        $tracker->enable();
    }
});

use CurlTracker\CurlHook;

// Initialize CurlHook first
$tracker = CurlHook::init([
    'backend' => 'pushgateway',
    'pushgateway' => ['url' => 'http://localhost:9091']
]);

// Example: Track CI database query performance
$start = microtime(true);
$result = $this->db->query("SELECT COUNT(*) FROM users WHERE active = 1");
$duration = (microtime(true) - $start) * 1000;

// Publish custom metric
$tracker->publishMetric('db_query_duration', $duration, [
    'query_type' => 'user_count',
    'database' => 'primary'
]);

'pushgateway' => [
    'url' => 'http://localhost:9091',
    'job_name' => 'my_app',
    'timeout' => 5,
    'auth' => [
        'username' => 'user',
        'password' => 'pass'
    ]
]

'cloudwatch' => [
    'aws_region' => 'us-east-1',
    'namespace' => 'MyApp/Metrics',
    'aws' => [
        'credentials' => [...] // Optional
    ]
]

CurlHook::init([
    'sample_rate' => 25, // Track only 25% of requests
    'backend' => 'pushgateway'
]);

use CurlTracker\CurlHook;

CurlHook::init($config)->enable();

// Your existing code works unchanged
$ch = curl_init('https://api.example.com');
curl_exec($ch);
curl_close($ch);

use CurlTracker\CurlWrapper;

CurlWrapper::init($config);

// Replace curl_* with CurlWrapper::curl_*
$ch = CurlWrapper::curl_init('https://api.example.com');
CurlWrapper::curl_exec($ch);
CurlWrapper::curl_close($ch);