From d68c736e4727bbb5b5ee83adcb08ac9fc23b58ac Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Sun, 9 Apr 2023 21:37:17 +0300 Subject: [PATCH] Tracer: rework options to tags --- classes/diskcache.php | 19 ++++++++++++++++++- classes/tracer.php | 14 +++++++------- 2 files changed, 25 insertions(+), 8 deletions(-) diff --git a/classes/diskcache.php b/classes/diskcache.php index 2a3f8c8d7..0965c4388 100644 --- a/classes/diskcache.php +++ b/classes/diskcache.php @@ -304,11 +304,16 @@ class DiskCache implements Cache_Adapter { } public function send(string $filename) { + $scope = Tracer::start(__FUNCTION__, ['filename' => $filename]); + $filename = basename($filename); if (!$this->exists($filename)) { header($_SERVER["SERVER_PROTOCOL"]." 404 Not Found"); echo "File not found."; + + $scope->getSpan()->setTag('error', '404 not found'); + $scope->close(); return false; } @@ -317,6 +322,9 @@ class DiskCache implements Cache_Adapter { if (($_SERVER['HTTP_IF_MODIFIED_SINCE'] ?? '') == $gmt_modified || ($_SERVER['HTTP_IF_NONE_MATCH'] ?? '') == $file_mtime) { header('HTTP/1.1 304 Not Modified'); + + $scope->getSpan()->setTag('error', '304 not modified'); + $scope->close(); return false; } @@ -334,6 +342,9 @@ class DiskCache implements Cache_Adapter { header("Content-type: text/plain"); print "Stored file has disallowed content type ($mimetype)"; + + $scope->getSpan()->setTag('error', '400 disallowed content type'); + $scope->close(); return false; } @@ -355,7 +366,13 @@ class DiskCache implements Cache_Adapter { header_remove("Pragma"); - return $this->adapter->send($filename); + $scope->getSpan()->setTag('mimetype', $mimetype); + + $rc = $this->adapter->send($filename); + + $scope->close(); + + return $rc; } public function get_full_path(string $filename): string { diff --git a/classes/tracer.php b/classes/tracer.php index eb3c58113..de3c54cbe 100644 --- a/classes/tracer.php +++ b/classes/tracer.php @@ -37,26 +37,26 @@ class Tracer { /** * @param string $name - * @param array|array> $options + * @param array|array> $tags * @param array $args * @return Scope */ - private function _start(string $name, array $options = [], array $args = []): Scope { + private function _start(string $name, array $tags = [], array $args = []): Scope { $tracer = GlobalTracer::get(); - $options['tags']['args'] = json_encode($args); + $tags['args'] = json_encode($args); - return $tracer->startActiveSpan($name, $options); + return $tracer->startActiveSpan($name, ['tags' => $tags]); } /** * @param string $name - * @param array|array> $options + * @param array|array> $tags * @param array $args * @return Scope */ - public static function start(string $name, array $options = [], array $args = []) : Scope { - return self::get_instance()->_start($name, $options, $args); + public static function start(string $name, array $tags = [], array $args = []) : Scope { + return self::get_instance()->_start($name, $tags, $args); } public static function get_instance() : Tracer {