REDROOM
PHP 7.4.33
Path:
Logout
Edit File
Size: 4.85 KB
Close
/home/godevadmin/www/admin/vendor/aws/Aws/ClientSideMonitoring/ApiCallMonitoringMiddleware.php
Text
Base64
<?php namespace Aws\ClientSideMonitoring; use Aws\CommandInterface; use Aws\Exception\AwsException; use Aws\MonitoringEventsInterface; use Aws\ResultInterface; use Psr\Http\Message\RequestInterface; /** * @internal */ class ApiCallMonitoringMiddleware extends AbstractMonitoringMiddleware { /** * Api Call Attempt event keys for each Api Call event key * * @var array */ private static $eventKeys = [ 'FinalAwsException' => 'AwsException', 'FinalAwsExceptionMessage' => 'AwsExceptionMessage', 'FinalSdkException' => 'SdkException', 'FinalSdkExceptionMessage' => 'SdkExceptionMessage', 'FinalHttpStatusCode' => 'HttpStatusCode', ]; /** * Standard middleware wrapper function with CSM options passed in. * * @param callable $credentialProvider * @param mixed $options * @param string $region * @param string $service * @return callable */ public static function wrap( callable $credentialProvider, $options, $region, $service ) { return function (callable $handler) use ( $credentialProvider, $options, $region, $service ) { return new static( $handler, $credentialProvider, $options, $region, $service ); }; } /** * {@inheritdoc} */ public static function getRequestData(RequestInterface $request) { return []; } /** * {@inheritdoc} */ public static function getResponseData($klass) { if ($klass instanceof ResultInterface) { $data = [ 'AttemptCount' => self::getResultAttemptCount($klass), 'MaxRetriesExceeded' => 0, ]; } elseif ($klass instanceof \Exception) { $data = [ 'AttemptCount' => self::getExceptionAttemptCount($klass), 'MaxRetriesExceeded' => self::getMaxRetriesExceeded($klass), ]; } else { throw new \InvalidArgumentException('Parameter must be an instance of ResultInterface or Exception.'); } return $data + self::getFinalAttemptData($klass); } private static function getResultAttemptCount(ResultInterface $result) { if (isset($result['@metadata']['transferStats']['http'])) { return count($result['@metadata']['transferStats']['http']); } return 1; } private static function getExceptionAttemptCount(\Exception $e) { $attemptCount = 0; if ($e instanceof MonitoringEventsInterface) { foreach ($e->getMonitoringEvents() as $event) { if (isset($event['Type']) && $event['Type'] === 'ApiCallAttempt') { $attemptCount++; } } } return $attemptCount; } private static function getFinalAttemptData($klass) { $data = []; if ($klass instanceof MonitoringEventsInterface) { $finalAttempt = self::getFinalAttempt($klass->getMonitoringEvents()); if (!empty($finalAttempt)) { foreach (self::$eventKeys as $callKey => $attemptKey) { if (isset($finalAttempt[$attemptKey])) { $data[$callKey] = $finalAttempt[$attemptKey]; } } } } return $data; } private static function getFinalAttempt(array $events) { for (end($events); key($events) !== null; prev($events)) { $current = current($events); if (isset($current['Type']) && $current['Type'] === 'ApiCallAttempt' ) { return $current; } } return null; } private static function getMaxRetriesExceeded($klass) { if ($klass instanceof AwsException && $klass->isMaxRetriesExceeded()) { return 1; } return 0; } /** * {@inheritdoc} */ protected function populateRequestEventData( CommandInterface $cmd, RequestInterface $request, array $event ) { $event = parent::populateRequestEventData($cmd, $request, $event); $event['Type'] = 'ApiCall'; return $event; } /** * {@inheritdoc} */ protected function populateResultEventData( $result, array $event ) { $event = parent::populateResultEventData($result, $event); $event['Latency'] = (int) (floor(microtime(true) * 1000) - $event['Timestamp']); return $event; } }
Save
Close
Exit & Reset
Text mode: syntax highlighting auto-detects file type.
Directory Contents
Dirs: 1 × Files: 7
Delete Selected
Select All
Select None
Sort:
Name
Size
Modified
Enable drag-to-move
Name
Size
Perms
Modified
Actions
Exception
DIR
-
drwxrwxr-x
2024-06-18 20:10:02
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
AbstractMonitoringMiddleware.php
8.23 KB
lrwxrwxr-x
2024-06-18 20:10:02
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
ApiCallAttemptMonitoringMiddleware.php
8.47 KB
lrwxrwxr-x
2024-06-18 20:10:02
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
ApiCallMonitoringMiddleware.php
4.85 KB
lrwxrwxr-x
2024-06-18 20:10:02
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
Configuration.php
1.68 KB
lrwxrwxr-x
2024-06-18 20:10:02
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
ConfigurationInterface.php
879 B
lrwxrwxr-x
2024-06-18 20:10:02
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
ConfigurationProvider.php
8.79 KB
lrwxrwxr-x
2024-06-18 20:10:02
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
MonitoringMiddlewareInterface.php
827 B
lrwxrwxr-x
2024-06-18 20:10:02
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
Zip Selected
If ZipArchive is unavailable, a
.tar
will be created (no compression).