diff --git a/include/libcamera/internal/tracepoints/request.tp b/include/libcamera/internal/tracepoints/request.tp
index f1e54497..491c7705 100644
--- a/include/libcamera/internal/tracepoints/request.tp
+++ b/include/libcamera/internal/tracepoints/request.tp
@@ -8,6 +8,7 @@
 #include <libcamera/internal/request.h>
 
 #include <libcamera/framebuffer.h>
+#include <libcamera/request.h>
 
 TRACEPOINT_EVENT_CLASS(
 	libcamera,
@@ -22,12 +23,18 @@ TRACEPOINT_EVENT_CLASS(
 	)
 )
 
-TRACEPOINT_EVENT_INSTANCE(
+TRACEPOINT_EVENT(
 	libcamera,
-	request,
 	request_construct,
 	TP_ARGS(
-		libcamera::Request *, req
+		libcamera::Request *, req,
+		libcamera::Request::Private *, priv
+	),
+	TP_FIELDS(
+		ctf_integer_hex(uintptr_t, request, reinterpret_cast<uintptr_t>(req))
+		ctf_integer_hex(uintptr_t, priv, reinterpret_cast<uintptr_t>(priv))
+		ctf_integer(uint64_t, cookie, req->cookie())
+		ctf_enum(libcamera, request_status, uint32_t, status, req->status())
 	)
 )
 
diff --git a/src/libcamera/request.cpp b/src/libcamera/request.cpp
index 949c556f..b9fb17d6 100644
--- a/src/libcamera/request.cpp
+++ b/src/libcamera/request.cpp
@@ -356,7 +356,7 @@ Request::Request(Camera *camera, uint64_t cookie)
 	 */
 	metadata_ = new ControlList(controls::controls);
 
-	LIBCAMERA_TRACEPOINT(request_construct, this);
+	LIBCAMERA_TRACEPOINT(request_construct, this, _d());
 
 	LOG(Request, Debug) << "Created request - cookie: " << cookie_;
 }
