Tracer: rework options to tags

This commit is contained in:
Andrew Dolgov 2023-04-09 21:37:17 +03:00
parent 6418157ccf
commit d68c736e47
No known key found for this signature in database
GPG Key ID: 1A56B4FA25D4AF2A
2 changed files with 25 additions and 8 deletions

View File

@ -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 {

View File

@ -37,26 +37,26 @@ class Tracer {
/**
* @param string $name
* @param array<string>|array<string, array<string, mixed>> $options
* @param array<string>|array<string, array<string, mixed>> $tags
* @param array<string> $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<string>|array<string, array<string, mixed>> $options
* @param array<string>|array<string, array<string, mixed>> $tags
* @param array<string> $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 {