📡 Traffic Monitor

Всего запросов (7 дней)

0
исходящих HTTP-запросов

Уникальных хостов

0
внешних доменов

Топ хост

Топ-10 хостов по количеству запросов

Хост Запросов Методы Ср. время Последний
Нет данных
Live 📥 Экспорт CSV
Время Метод Хост URL Код Время
Нет записей

Все обнаруженные хосты (0)

Хосты пока не обнаружены. Установите хук для начала мониторинга.
Для автоматического логирования исходящих запросов добавьте код ниже в /bitrix/php_interface/init.php

Код для init.php

<?php /** * Хук для перехвата исходящих HTTP-запросов * Добавьте в /bitrix/php_interface/init.php */ // Путь к монитору трафика define('TRAFFIC_MONITOR_PATH', '<?= $selfPath ?>'); // Перехват cURL if (!function_exists('curl_exec_original')) { function logCurlRequest($ch, $result) { if (!file_exists(TRAFFIC_MONITOR_PATH)) return; $info = curl_getinfo($ch); $url = $info['url'] ?? ''; if (empty($url)) return; require_once TRAFFIC_MONITOR_PATH; $trace = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS, 5); $source = $trace[1] ?? []; logOutgoingRequest( $url, 'CURL', $info['http_code'] ?? null, $info['total_time'] ?? null, [ 'source_file' => $source['file'] ?? null, 'source_line' => $source['line'] ?? null, ] ); } } // Обработчик для Bitrix HttpClient AddEventHandler('main', 'OnAfterHttpClientRequest', function($httpClient) { if (!file_exists(TRAFFIC_MONITOR_PATH)) return; require_once TRAFFIC_MONITOR_PATH; $url = $httpClient->getEffectiveUrl(); $responseCode = $httpClient->getStatus(); $trace = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS, 10); $source = null; foreach ($trace as $t) { if (!empty($t['file']) && strpos($t['file'], '/bitrix/modules/') === false) { $source = $t; break; } } logOutgoingRequest( $url, $httpClient->getRequestMethod(), $responseCode, null, [ 'source_file' => $source['file'] ?? null, 'source_line' => $source['line'] ?? null, ] ); });

Ручное логирование

Вы также можете вызывать функцию логирования вручную:

<?php require_once '/path/to/bitrix_traffic_monitor.php'; // Перед выполнением запроса $startTime = microtime(true); // ... ваш код запроса ... // После выполнения $duration = microtime(true) - $startTime; logOutgoingRequest( 'https://api.example.com/data', 'POST', 200, $duration, ['source_file' => __FILE__, 'source_line' => __LINE__] );

Требования