Skip to content

Commit

Permalink
Merge pull request #9063 from kaltura/Orion-15.14.0-PLAT-10453
Browse files Browse the repository at this point in the history
PLAT-10453: add apiMon stats for file operations
  • Loading branch information
yossipapi committed Dec 25, 2019
2 parents 053bf7b + 1f6814b commit 6697633
Show file tree
Hide file tree
Showing 2 changed files with 50 additions and 16 deletions.
37 changes: 27 additions & 10 deletions alpha/apps/kaltura/lib/monitor/KalturaMonitorClient.php
Expand Up @@ -7,15 +7,16 @@ class KalturaMonitorClient
{
const MAX_PACKET_SIZE = 1400;

const EVENT_API_START = 'start';
const EVENT_API_END = 'end';
const EVENT_DATABASE = 'db';
const EVENT_SPHINX = 'sphinx';
const EVENT_CONNTOOK = 'conn';
const EVENT_DUMPFILE = 'file';
const EVENT_ELASTIC = 'elastic';
const EVENT_DRUID = 'druid';
const EVENT_COUCHBASE = 'couchbase';
const EVENT_API_START = 'start';
const EVENT_API_END = 'end';
const EVENT_DATABASE = 'db';
const EVENT_SPHINX = 'sphinx';
const EVENT_CONNTOOK = 'conn';
const EVENT_DUMPFILE = 'file';
const EVENT_ELASTIC = 'elastic';
const EVENT_DRUID = 'druid';
const EVENT_COUCHBASE = 'couchbase';
const EVENT_FILE_SYSTEM = 'filesystem';


const FIELD_EVENT_TYPE = 'e';
Expand Down Expand Up @@ -57,7 +58,8 @@ class KalturaMonitorClient
self::EVENT_SPHINX => 0,
self::EVENT_COUCHBASE => 0,
self::EVENT_ELASTIC => 0,
self::EVENT_DRUID => 0
self::EVENT_DRUID => 0,
self::EVENT_FILE_SYSTEM => 0
);

public static function prettyPrintCounters()
Expand Down Expand Up @@ -369,6 +371,21 @@ public static function monitorConnTook($dsn, $connTook)
self::writeDeferredEvent($data);
}

public static function monitorFileSystemAccess($operation, $timeTook, $execStatus)
{
if (!self::$stream)
return;

$data = array_merge(self::$basicEventInfo, array(
self::FIELD_EVENT_TYPE => self::EVENT_FILE_SYSTEM,
self::FIELD_EXECUTION_TIME => $timeTook,
self::FIELD_QUERY_TYPE => $operation,
self::FIELD_ERROR_CODE => $execStatus,
));

self::writeDeferredEvent($data);
}

protected static function getRangeLength($size)
{
if (!isset($_SERVER['HTTP_RANGE']))
Expand Down
29 changes: 23 additions & 6 deletions infra/storage/kFile.class.php
Expand Up @@ -7,7 +7,10 @@ class kFile extends kFileBase
{
const MO_PATTERN = "GNU message catalog";
const TEXT = "text";


const COPY_FAILED_CODE = "COPY_FAILED";
const RENAME_FAILED_CODE = "RENAME_FAILED";

/**
* Returns directory $path contents as an array of :
* array[0] = name
Expand Down Expand Up @@ -267,26 +270,40 @@ private static function copyRecursively($src, $dest, $deleteSrc = false) {
}

private static function copySingleFile($src, $dest, $deleteSrc) {
if($deleteSrc) {
if($deleteSrc)
{
// In case of move, first try to move the file before copy & unlink.
$startTime = microtime(true);
if(rename($src, $dest))
$renameSucceeded = rename($src, $dest);
$timeTook = microtime(true) - $startTime;
KalturaMonitorClient::monitorFileSystemAccess('RENAME', $timeTook, $renameSucceeded ? null : self::RENAME_FAILED_CODE);

if($renameSucceeded)
{
KalturaLog::log("rename took : ".(microtime(true) - $startTime)." [$src] to [$dest] size: ".filesize($dest));
KalturaLog::log("rename took : $timeTook [$src] to [$dest] size: ".filesize($dest));
return true;
}

KalturaLog::err("Failed to rename file : [$src] to [$dest]");
}

if (!copy($src,$dest)) {
$startTime = microtime(true);
$copySucceeded = copy($src,$dest);
$timeTook = microtime(true) - $startTime;
KalturaMonitorClient::monitorFileSystemAccess('COPY', $timeTook, $copySucceeded ? null : self::COPY_FAILED_CODE);

if (!$copySucceeded)
{
KalturaLog::err("Failed to copy file : [$src] to [$dest]");
return false;
}
if ($deleteSrc && (!unlink($src))) {

if ($deleteSrc && (!unlink($src)))
{
KalturaLog::err("Failed to delete source file : [$src]");
return false;
}

return true;
}

Expand Down

0 comments on commit 6697633

Please sign in to comment.