public function start(?int $timestamp = null): void
    {
        if ($timestamp === null) {
            $timestamp = now();
        } else {
            if (!isValid($timestamp)) {
                throw new InvalidArgumentException(
                    sprintf('Invalid timestamp. Expected int, got %s', $timestamp)
                );
            }
        }

        $this->recorder->start($this->traceContext, $timestamp);
    }