Repository: openshift/openshift-docs
Pull request #88783: [SRVCOM-2510] Configuring request log settings
Author: login: ochromy
Labels: name: peer-review-done
description: Signifies that the peer review team has reviewed this PR
name: size/M
description: Denotes a PR that changes 30-99 lines, ignoring generated files.
name: serverless
description: Label for all Serverless PRs
Created: 2025-02-18T14:27:06Z | Merged: 2025-03-19T15:23:08Z

Version(s):
serverless-docs-1.34+

Issue:
https://issues.redhat.com/browse/SRVCOM-2510

Link to docs preview:
- https://88783--ocpdocs-pr.netlify.app/openshift-serverless/latest/observability/cluster-logging/serverless-config-log-settings.html#serverless-config-request-log_serverless-config-log-setting

QE review:
- [x] QE has approved this change.

Additional information:



Diff:
diff --git a/modules/serverless-config-request-log.adoc b/modules/serverless-config-request-log.adoc
new file mode 100644
index 000000000000..c55484a2e422
--- /dev/null
+++ b/modules/serverless-config-request-log.adoc
@@ -0,0 +1,33 @@
+// Module included in the following assemblies:
+//
+// * serverless/observability/serverless-config-log-settings.adoc
+
+:_mod-docs-content-type: PROCEDURE
+[id="serverless-config-request-log_{context}"]
+= Configuring request log settings
+
+You can configure request logging for your service in the `observability` field of your `KnativeServing` custom resource (CR).
+
+For information about the available parameters for configuring request logging, see "Parameters of request logging".
+
+.Procedure
+
+* Configure request logging for your service by modifying the `observability` field in your `KnativeServing` CR:
++
+.Example `KnativeServing` CR
+[source,yaml]
+----
+apiVersion: operator.knative.dev/v1beta1
+kind: KnativeServing
+metadata:
+  name: knative-serving
+  namespace: knative-serving
+# ...
+spec:
+  config:
+    observability:
+        logging.enable-request-log: true
+        logging.enable-probe-request-log: true
+        logging.request-log-template: '{"httpRequest": {"requestMethod": "{{.Request.Method}}", "requestUrl": "{{js .Request.RequestURI}}", "requestSize": "{{.Request.ContentLength}}", "status": {{.Response.Code}}, "responseSize": "{{.Response.Size}}", "userAgent": "{{js .Request.UserAgent}}", "remoteIp": "{{js .Request.RemoteAddr}}", "serverIp": "{{.Revision.PodIP}}", "referer": "{{js .Request.Referer}}", "latency": "{{.Response.Latency}}s", "protocol": "{{.Request.Proto}}"}, "traceId": "{{index .Request.Header "X-B3-Traceid"}}"}'
+# ...
+----
diff --git a/modules/serverless-request-log-parameters.adoc b/modules/serverless-request-log-parameters.adoc
new file mode 100644
index 000000000000..d9f309d087f0
--- /dev/null
+++ b/modules/serverless-request-log-parameters.adoc
@@ -0,0 +1,44 @@
+// Module included in the following assemblies:
+//
+// * serverless/observability/serverless-config-log-settings.adoc
+
+:_mod-docs-content-type: REFERENCE
+[id="serverless-request-log-parameters_{context}"]
+= Parameters of request logging
+
+The following table describes parameters used to configure request logging.
+
+.Request logging configuration parameters
+[cols=3*,options="header"]
+|===
+|Parameter
+|Type
+|Description
+
+|`logging.enable-request-log`
+|Boolean (`true` or `false`)
+|Set to `true` to enable request logging.
+
+|`logging.enable-probe-request-log`
+|Boolean (`true` or `false`)
+|Set to `true` to enable the queue proxy to log probe requests to stdout. It uses the template specified in `logging.request-log-template`.
+
+|`logging.request-log-template`
+|Go `text/template` string
+|Determine the shape of the request logs. Use a single line to prevent logs from being split into multiple records.
+|===
+
+The `logging.request-log-template` parameter includes the following functions:
+
+* `Request` is an `http.Request` representing an HTTP request received by the server.
+* `Response` represents the HTTP response and includes the following fields:
+** `Code` is the HTTP status code. 
+** `Size` is the response size in bytes.
+** `Latency` is the response latency in seconds.
+* `Revision` contains revision details and includes the following fields: 
+** `Name` is the name of the revision.
+** `Namespace` is the namespace of the revision.
+** `Service` is the name of the service.
+** `Configuration` is the name of the configuration.
+** `PodName` is the name of the pod hosting the revision.
+** `PodIP` is the IP address of the hosting pod.
diff --git a/observability/cluster-logging/serverless-config-log-settings.adoc b/observability/cluster-logging/serverless-config-log-settings.adoc
index 36f6168df73d..70605c6702eb 100644
--- a/observability/cluster-logging/serverless-config-log-settings.adoc
+++ b/observability/cluster-logging/serverless-config-log-settings.adoc
@@ -11,3 +11,7 @@ You can configure logging for OpenShift Serverless Serving and OpenShift Serverl
 include::modules/serverless-config-log-supported-log-levels.adoc[leveloffset=+1]
 
 include::modules/serverless-config-log-settings-serving-eventing.adoc[leveloffset=+1]
+
+include::modules/serverless-config-request-log.adoc[leveloffset=+1]
+
+include::modules/serverless-request-log-parameters.adoc[leveloffset=+1]


Reviews:
user: login: ochromy
state: COMMENTED
author_association: NONE
submitted_at: 2025-02-18T15:30:35Z
user: login: maschmid
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-02-28T11:12:27Z
user: login: maschmid
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-02-28T11:39:18Z
user: login: ochromy
state: COMMENTED
author_association: NONE
submitted_at: 2025-03-05T08:26:43Z
user: login: eromanova97
body: Added a few comments, thanks!
/remove-label peer-review-in-progress
/label peer-review-done
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-12T10:42:30Z
user: login: xenolinux
body: One comment about a modular change and 2 minor comments to consider before the merge.

Overall looks good!
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-13T11:47:55Z
user: login: ochromy
state: COMMENTED
author_association: NONE
submitted_at: 2025-03-13T12:09:46Z
user: login: ochromy
state: COMMENTED
author_association: NONE
submitted_at: 2025-03-13T12:19:58Z
user: login: skopacz1
body: Left one suggestion for restructuring a bit of the docs, that aligns with what @xenolinux was originally asking for. Let me know what you think and I'll take a look on Tuesday (I hope that the previews are fixed by then)
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-17T15:55:33Z
user: login: skopacz1
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-19T14:52:22Z
user: login: skopacz1
body: PR looks great and is ready to merge!
state: COMMENTED
author_association: CONTRIBUTOR
submitted_at: 2025-03-19T15:23:00Z

Review comments:
diff_hunk: @@ -0,0 +1,50 @@
+// Module included in the following assemblies:
+//
+// * serverless/observability/serverless-config-log-settings.adoc
+
+:_mod-docs-content-type: PROCEDURE
+[id="serverless-config-request-log_{context}"]
+= Configuring request log settings for Serving
+
+You can configure request logging for your service in the `observability` section of your `KnativeServing` custom resource (CR).
+
+You can use the following keys and values:
+
+[cols=3*,options="header"]
+|===
+|Key
+|Unit
+|Description
+
+|`logging.enable-request-log`
+|Boolean (`true` or `false`)
+|If set `true`, the request logging will be enabled.
+
+|`logging.enable-probe-request-log``
+|Boolean (`true` or `false`)
+|If set `true`, this enables queue proxy writing request logs for probe requests to stdout. It uses the template specified in `logging.request-log-template`.
+
+|`logging.request-log-template`
+|Go `text/template` string
+|Determines the shape of the request logs. Keep this as a single line as multiple lines may split the request logs into multiple records.
+|===
+
+.Procedure
+
+* Configure request logging for your service by modifying your `KnativeServing` CR `observability` section.
++
+.KnativeServing CR
+[source,yaml]
+----
+apiVersion: operator.knative.dev/v1beta1
+kind: KnativeServing
+metadata:
+  name: knative-serving
+  namespace: knative-serving
+spec:
+  config:
+    observability:
+        logging.enable-request-log: true
+        logging.enable-probe-request-log: true
+        logging.request-log-template:
path: modules/serverless-config-request-log.adoc
user: login: ochromy
body: What does an example `logging.request-log-template` value look like for Serverless?
created_at: 2025-02-18T15:30:35Z
author_association: NONE
diff_hunk: @@ -0,0 +1,50 @@
+// Module included in the following assemblies:
+//
+// * serverless/observability/serverless-config-log-settings.adoc
+
+:_mod-docs-content-type: PROCEDURE
+[id="serverless-config-request-log_{context}"]
+= Configuring request log settings for Serving
+
+You can configure request logging for your service in the `observability` section of your `KnativeServing` custom resource (CR).
+
+You can use the following keys and values:
+
+[cols=3*,options="header"]
+|===
+|Key
+|Unit
+|Description
+
+|`logging.enable-request-log`
+|Boolean (`true` or `false`)
+|If set `true`, the request logging will be enabled.
+
+|`logging.enable-probe-request-log``
+|Boolean (`true` or `false`)
+|If set `true`, this enables queue proxy writing request logs for probe requests to stdout. It uses the template specified in `logging.request-log-template`.
+
+|`logging.request-log-template`
+|Go `text/template` string
+|Determines the shape of the request logs. Keep this as a single line as multiple lines may split the request logs into multiple records.
+|===
+
+.Procedure
+
+* Configure request logging for your service by modifying your `KnativeServing` CR `observability` section.
++
+.KnativeServing CR
+[source,yaml]
+----
+apiVersion: operator.knative.dev/v1beta1
+kind: KnativeServing
+metadata:
+  name: knative-serving
+  namespace: knative-serving
+spec:
+  config:
+    observability:
+        logging.enable-request-log: true
+        logging.enable-probe-request-log: true
+        logging.request-log-template:
path: modules/serverless-config-request-log.adoc
user: login: maschmid
body: see 

https://github.com/openshift-knative/serving/blob/release-v1.16/openshift/release/artifacts/serving-core.yaml#L8576-L8607 


created_at: 2025-02-28T11:12:27Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,50 @@
+// Module included in the following assemblies:
+//
+// * serverless/observability/serverless-config-log-settings.adoc
+
+:_mod-docs-content-type: PROCEDURE
+[id="serverless-config-request-log_{context}"]
+= Configuring request log settings for Serving
+
+You can configure request logging for your service in the `observability` section of your `KnativeServing` custom resource (CR).
+
+You can use the following keys and values:
+
+[cols=3*,options="header"]
+|===
+|Key
+|Unit
+|Description
+
+|`logging.enable-request-log`
+|Boolean (`true` or `false`)
+|If set `true`, the request logging will be enabled.
+
+|`logging.enable-probe-request-log``
+|Boolean (`true` or `false`)
+|If set `true`, this enables queue proxy writing request logs for probe requests to stdout. It uses the template specified in `logging.request-log-template`.
+
+|`logging.request-log-template`
+|Go `text/template` string
+|Determines the shape of the request logs. Keep this as a single line as multiple lines may split the request logs into multiple records.
+|===
+
+.Procedure
+
+* Configure request logging for your service by modifying your `KnativeServing` CR `observability` section.
++
+.KnativeServing CR
+[source,yaml]
+----
+apiVersion: operator.knative.dev/v1beta1
+kind: KnativeServing
+metadata:
+  name: knative-serving
+  namespace: knative-serving
+spec:
+  config:
+    observability:
+        logging.enable-request-log: true
+        logging.enable-probe-request-log: true
+        logging.request-log-template:
path: modules/serverless-config-request-log.adoc
user: login: maschmid
body: It would probably be helpful to include those bits into this document as well.

You can't create a custom request-log-template without having the information about the structure of Request, Response and Revision. 
created_at: 2025-02-28T11:39:17Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,50 @@
+// Module included in the following assemblies:
+//
+// * serverless/observability/serverless-config-log-settings.adoc
+
+:_mod-docs-content-type: PROCEDURE
+[id="serverless-config-request-log_{context}"]
+= Configuring request log settings for Serving
+
+You can configure request logging for your service in the `observability` section of your `KnativeServing` custom resource (CR).
+
+You can use the following keys and values:
+
+[cols=3*,options="header"]
+|===
+|Key
+|Unit
+|Description
+
+|`logging.enable-request-log`
+|Boolean (`true` or `false`)
+|If set `true`, the request logging will be enabled.
+
+|`logging.enable-probe-request-log``
+|Boolean (`true` or `false`)
+|If set `true`, this enables queue proxy writing request logs for probe requests to stdout. It uses the template specified in `logging.request-log-template`.
+
+|`logging.request-log-template`
+|Go `text/template` string
+|Determines the shape of the request logs. Keep this as a single line as multiple lines may split the request logs into multiple records.
+|===
+
+.Procedure
+
+* Configure request logging for your service by modifying your `KnativeServing` CR `observability` section.
++
+.KnativeServing CR
+[source,yaml]
+----
+apiVersion: operator.knative.dev/v1beta1
+kind: KnativeServing
+metadata:
+  name: knative-serving
+  namespace: knative-serving
+spec:
+  config:
+    observability:
+        logging.enable-request-log: true
+        logging.enable-probe-request-log: true
+        logging.request-log-template:
path: modules/serverless-config-request-log.adoc
user: login: ochromy
body: Thank you, I've included the Request, Response, and Revision spec.
created_at: 2025-03-05T08:26:43Z
author_association: NONE
diff_hunk: @@ -0,0 +1,65 @@
+// Module included in the following assemblies:
+//
+// * serverless/observability/serverless-config-log-settings.adoc
+
+:_mod-docs-content-type: PROCEDURE
+[id="serverless-config-request-log_{context}"]
+= Configuring request log settings for Serving
+
+You can configure request logging for your service in the `observability` section of your `KnativeServing` custom resource (CR).
+
path: modules/serverless-config-request-log.adoc
user: login: eromanova97
body: I usually see "field" instead of "section" when referring to the section in this way:
```suggestion
You can configure request logging for your service in the `observability` field of your `KnativeServing` custom resource (CR).
```
created_at: 2025-03-12T09:27:37Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,65 @@
+// Module included in the following assemblies:
+//
+// * serverless/observability/serverless-config-log-settings.adoc
+
+:_mod-docs-content-type: PROCEDURE
+[id="serverless-config-request-log_{context}"]
+= Configuring request log settings for Serving
+
+You can configure request logging for your service in the `observability` section of your `KnativeServing` custom resource (CR).
+
+You can use the following keys and values:
+
+[cols=3*,options="header"]
+|===
+|Key
+|Unit
path: modules/serverless-config-request-log.adoc
user: login: eromanova97
body: ```suggestion
|Type
```
created_at: 2025-03-12T09:28:55Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,65 @@
+// Module included in the following assemblies:
+//
+// * serverless/observability/serverless-config-log-settings.adoc
+
+:_mod-docs-content-type: PROCEDURE
+[id="serverless-config-request-log_{context}"]
+= Configuring request log settings for Serving
+
+You can configure request logging for your service in the `observability` section of your `KnativeServing` custom resource (CR).
+
+You can use the following keys and values:
path: modules/serverless-config-request-log.adoc
user: login: eromanova97
body: Because the table does not explicitly give the values:
```suggestion
You can use the following keys:
```
Also, I usually do not see the properties being called keys outside of key-value pair context, so maybe calling them parameters would be more accurate:
```suggestion
You can use the following parameters:
```

created_at: 2025-03-12T09:40:11Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,65 @@
+// Module included in the following assemblies:
+//
+// * serverless/observability/serverless-config-log-settings.adoc
+
+:_mod-docs-content-type: PROCEDURE
+[id="serverless-config-request-log_{context}"]
+= Configuring request log settings for Serving
+
+You can configure request logging for your service in the `observability` section of your `KnativeServing` custom resource (CR).
+
+You can use the following keys and values:
+
+[cols=3*,options="header"]
+|===
+|Key
path: modules/serverless-config-request-log.adoc
user: login: eromanova97
body: Based on the comment about the usage of word "key"
```suggestion
|Parameter
```
created_at: 2025-03-12T09:42:18Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,65 @@
+// Module included in the following assemblies:
+//
+// * serverless/observability/serverless-config-log-settings.adoc
+
+:_mod-docs-content-type: PROCEDURE
+[id="serverless-config-request-log_{context}"]
+= Configuring request log settings for Serving
+
+You can configure request logging for your service in the `observability` section of your `KnativeServing` custom resource (CR).
+
+You can use the following keys and values:
+
+[cols=3*,options="header"]
+|===
+|Key
+|Unit
+|Description
+
+|`logging.enable-request-log`
+|Boolean (`true` or `false`)
+|Set to `true` to enable request logging.
+
+|`logging.enable-probe-request-log`
+|Boolean (`true` or `false`)
+|If set `true`, this enables queue proxy writing request logs for probe requests to stdout. It uses the template specified in `logging.request-log-template`.
+
+|`logging.request-log-template`
+|Go `text/template` string
+|Determines the shape of the request logs. Use a single line to prevent logs from being split into multiple records..
+|===
+
+Additionally, the `logging.request-log-template` key includes the following functions:
path: modules/serverless-config-request-log.adoc
user: login: eromanova97
body: Based on the comment about the usage of word "key". Plus removing "additionally"  for minimalism:
```suggestion
The `logging.request-log-template` parameter includes the following functions:
```
created_at: 2025-03-12T09:43:37Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,65 @@
+// Module included in the following assemblies:
+//
+// * serverless/observability/serverless-config-log-settings.adoc
+
+:_mod-docs-content-type: PROCEDURE
+[id="serverless-config-request-log_{context}"]
+= Configuring request log settings for Serving
+
+You can configure request logging for your service in the `observability` section of your `KnativeServing` custom resource (CR).
+
+You can use the following keys and values:
+
+[cols=3*,options="header"]
+|===
+|Key
+|Unit
+|Description
+
+|`logging.enable-request-log`
+|Boolean (`true` or `false`)
+|Set to `true` to enable request logging.
+
+|`logging.enable-probe-request-log`
+|Boolean (`true` or `false`)
+|If set `true`, this enables queue proxy writing request logs for probe requests to stdout. It uses the template specified in `logging.request-log-template`.
+
+|`logging.request-log-template`
+|Go `text/template` string
+|Determines the shape of the request logs. Use a single line to prevent logs from being split into multiple records..
+|===
+
+Additionally, the `logging.request-log-template` key includes the following functions:
+
+* `Request` is an `http.Request` representing an HTTP request received by the server.
+* `Response` represents the HTTP response and includes the following fields:
+** `Code` is the HTTP status code. 
+** `Size` is the response size in bytes.
+** `Latency`is the response latency in seconds.
path: modules/serverless-config-request-log.adoc
user: login: eromanova97
body: ```suggestion
** `Latency` is the response latency in seconds.
```
created_at: 2025-03-12T09:51:24Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,65 @@
+// Module included in the following assemblies:
+//
+// * serverless/observability/serverless-config-log-settings.adoc
+
+:_mod-docs-content-type: PROCEDURE
+[id="serverless-config-request-log_{context}"]
+= Configuring request log settings for Serving
+
+You can configure request logging for your service in the `observability` section of your `KnativeServing` custom resource (CR).
+
+You can use the following keys and values:
+
+[cols=3*,options="header"]
+|===
+|Key
+|Unit
+|Description
+
+|`logging.enable-request-log`
+|Boolean (`true` or `false`)
+|Set to `true` to enable request logging.
+
+|`logging.enable-probe-request-log`
+|Boolean (`true` or `false`)
+|If set `true`, this enables queue proxy writing request logs for probe requests to stdout. It uses the template specified in `logging.request-log-template`.
+
+|`logging.request-log-template`
+|Go `text/template` string
+|Determines the shape of the request logs. Use a single line to prevent logs from being split into multiple records..
+|===
+
+Additionally, the `logging.request-log-template` key includes the following functions:
+
+* `Request` is an `http.Request` representing an HTTP request received by the server.
+* `Response` represents the HTTP response and includes the following fields:
+** `Code` is the HTTP status code. 
+** `Size` is the response size in bytes.
+** `Latency`is the response latency in seconds.
+* `Revision` contains revision details and includes the following fields: 
+** `Name` is the name of the revision.
+** `Namespace` is namespace of the revision.
path: modules/serverless-config-request-log.adoc
user: login: eromanova97
body: ```suggestion
** `Namespace` is the namespace of the revision.
```
created_at: 2025-03-12T09:52:01Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,65 @@
+// Module included in the following assemblies:
+//
+// * serverless/observability/serverless-config-log-settings.adoc
+
+:_mod-docs-content-type: PROCEDURE
+[id="serverless-config-request-log_{context}"]
+= Configuring request log settings for Serving
+
+You can configure request logging for your service in the `observability` section of your `KnativeServing` custom resource (CR).
+
+You can use the following keys and values:
+
+[cols=3*,options="header"]
+|===
+|Key
+|Unit
+|Description
+
+|`logging.enable-request-log`
+|Boolean (`true` or `false`)
+|Set to `true` to enable request logging.
+
+|`logging.enable-probe-request-log`
+|Boolean (`true` or `false`)
+|If set `true`, this enables queue proxy writing request logs for probe requests to stdout. It uses the template specified in `logging.request-log-template`.
+
+|`logging.request-log-template`
+|Go `text/template` string
+|Determines the shape of the request logs. Use a single line to prevent logs from being split into multiple records..
+|===
+
+Additionally, the `logging.request-log-template` key includes the following functions:
+
+* `Request` is an `http.Request` representing an HTTP request received by the server.
+* `Response` represents the HTTP response and includes the following fields:
+** `Code` is the HTTP status code. 
+** `Size` is the response size in bytes.
+** `Latency`is the response latency in seconds.
+* `Revision` contains revision details and includes the following fields: 
+** `Name` is the name of the revision.
+** `Namespace` is namespace of the revision.
+** `Service` is the name of the service.
+** `Configuration` is the name of the configuration.
+** `PodName` is the name of the pod hosting the revision.
+** `PodIP` is the IP address of the hosting pod.
+
+.Procedure
+
+* Configure request logging for your service by modifying your `KnativeServing` CR `observability` section:
path: modules/serverless-config-request-log.adoc
user: login: eromanova97
body: ```suggestion
* Configure request logging for your service by modifying the `observability` field in your `KnativeServing` CR :
```
created_at: 2025-03-12T09:53:12Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,65 @@
+// Module included in the following assemblies:
+//
+// * serverless/observability/serverless-config-log-settings.adoc
+
+:_mod-docs-content-type: PROCEDURE
+[id="serverless-config-request-log_{context}"]
+= Configuring request log settings for Serving
+
+You can configure request logging for your service in the `observability` section of your `KnativeServing` custom resource (CR).
+
+You can use the following keys and values:
+
+[cols=3*,options="header"]
+|===
+|Key
+|Unit
+|Description
+
+|`logging.enable-request-log`
+|Boolean (`true` or `false`)
+|Set to `true` to enable request logging.
+
+|`logging.enable-probe-request-log`
+|Boolean (`true` or `false`)
+|If set `true`, this enables queue proxy writing request logs for probe requests to stdout. It uses the template specified in `logging.request-log-template`.
+
+|`logging.request-log-template`
+|Go `text/template` string
+|Determines the shape of the request logs. Use a single line to prevent logs from being split into multiple records..
+|===
+
+Additionally, the `logging.request-log-template` key includes the following functions:
+
+* `Request` is an `http.Request` representing an HTTP request received by the server.
+* `Response` represents the HTTP response and includes the following fields:
+** `Code` is the HTTP status code. 
+** `Size` is the response size in bytes.
+** `Latency`is the response latency in seconds.
+* `Revision` contains revision details and includes the following fields: 
+** `Name` is the name of the revision.
+** `Namespace` is namespace of the revision.
+** `Service` is the name of the service.
+** `Configuration` is the name of the configuration.
+** `PodName` is the name of the pod hosting the revision.
+** `PodIP` is the IP address of the hosting pod.
+
+.Procedure
+
+* Configure request logging for your service by modifying your `KnativeServing` CR `observability` section:
++
+.KnativeServing CR
path: modules/serverless-config-request-log.adoc
user: login: eromanova97
body: I see some sections using the "example" in the description text, which is also usually used in the OpenShift docs. But then some sections have just very short description, such as:  `.KnativeServing CR`. I would suggest the first option:

```suggestion
.Example KnativeServing CR
```
created_at: 2025-03-12T09:56:13Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,65 @@
+// Module included in the following assemblies:
+//
+// * serverless/observability/serverless-config-log-settings.adoc
+
+:_mod-docs-content-type: PROCEDURE
+[id="serverless-config-request-log_{context}"]
+= Configuring request log settings for Serving
+
+You can configure request logging for your service in the `observability` section of your `KnativeServing` custom resource (CR).
+
+You can use the following keys and values:
+
+[cols=3*,options="header"]
+|===
+|Key
+|Unit
+|Description
+
+|`logging.enable-request-log`
+|Boolean (`true` or `false`)
+|Set to `true` to enable request logging.
+
+|`logging.enable-probe-request-log`
+|Boolean (`true` or `false`)
+|If set `true`, this enables queue proxy writing request logs for probe requests to stdout. It uses the template specified in `logging.request-log-template`.
+
+|`logging.request-log-template`
+|Go `text/template` string
+|Determines the shape of the request logs. Use a single line to prevent logs from being split into multiple records..
path: modules/serverless-config-request-log.adoc
user: login: eromanova97
body: To get rid of an incomplete sentence to be more alike the other descriptions in this table + removing the extra dot at the end:
```suggestion
|Determine the shape of the request logs. Use a single line to prevent logs from being split into multiple records.
```
created_at: 2025-03-12T10:13:59Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,65 @@
+// Module included in the following assemblies:
+//
+// * serverless/observability/serverless-config-log-settings.adoc
+
+:_mod-docs-content-type: PROCEDURE
+[id="serverless-config-request-log_{context}"]
+= Configuring request log settings for Serving
+
+You can configure request logging for your service in the `observability` section of your `KnativeServing` custom resource (CR).
+
+You can use the following keys and values:
+
+[cols=3*,options="header"]
+|===
+|Key
+|Unit
+|Description
+
+|`logging.enable-request-log`
+|Boolean (`true` or `false`)
+|Set to `true` to enable request logging.
+
+|`logging.enable-probe-request-log`
+|Boolean (`true` or `false`)
+|If set `true`, this enables queue proxy writing request logs for probe requests to stdout. It uses the template specified in `logging.request-log-template`.
path: modules/serverless-config-request-log.adoc
user: login: eromanova97
body: The first sentence was a little confusing to me. Would this work? (Also I made it so that it has a similar structure to the first description):
```suggestion
|Set to `true` to enable the queue proxy to log probe requests to stdout. It uses the template specified in `logging.request-log-template`.
```
created_at: 2025-03-12T10:22:10Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,65 @@
+// Module included in the following assemblies:
+//
+// * serverless/observability/serverless-config-log-settings.adoc
+
+:_mod-docs-content-type: PROCEDURE
+[id="serverless-config-request-log_{context}"]
+= Configuring request log settings for Serving
+
+You can configure request logging for your service in the `observability` section of your `KnativeServing` custom resource (CR).
+
+You can use the following keys and values:
+
+[cols=3*,options="header"]
+|===
+|Key
+|Unit
+|Description
+
+|`logging.enable-request-log`
+|Boolean (`true` or `false`)
+|Set to `true` to enable request logging.
+
+|`logging.enable-probe-request-log`
+|Boolean (`true` or `false`)
+|If set `true`, this enables queue proxy writing request logs for probe requests to stdout. It uses the template specified in `logging.request-log-template`.
+
+|`logging.request-log-template`
+|Go `text/template` string
+|Determines the shape of the request logs. Use a single line to prevent logs from being split into multiple records..
+|===
+
+Additionally, the `logging.request-log-template` key includes the following functions:
+
+* `Request` is an `http.Request` representing an HTTP request received by the server.
+* `Response` represents the HTTP response and includes the following fields:
+** `Code` is the HTTP status code. 
+** `Size` is the response size in bytes.
+** `Latency`is the response latency in seconds.
+* `Revision` contains revision details and includes the following fields: 
+** `Name` is the name of the revision.
+** `Namespace` is namespace of the revision.
+** `Service` is the name of the service.
+** `Configuration` is the name of the configuration.
+** `PodName` is the name of the pod hosting the revision.
+** `PodIP` is the IP address of the hosting pod.
+
+.Procedure
path: modules/serverless-config-request-log.adoc
user: login: eromanova97
body: Just double-checking if there are any prerequisites.
created_at: 2025-03-12T10:28:58Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,65 @@
+// Module included in the following assemblies:
+//
+// * serverless/observability/serverless-config-log-settings.adoc
+
+:_mod-docs-content-type: PROCEDURE
+[id="serverless-config-request-log_{context}"]
+= Configuring request log settings for Serving
+
+You can configure request logging for your service in the `observability` section of your `KnativeServing` custom resource (CR).
+
+You can use the following keys and values:
+
+[cols=3*,options="header"]
+|===
+|Key
+|Unit
+|Description
+
+|`logging.enable-request-log`
+|Boolean (`true` or `false`)
+|Set to `true` to enable request logging.
+
+|`logging.enable-probe-request-log`
+|Boolean (`true` or `false`)
+|If set `true`, this enables queue proxy writing request logs for probe requests to stdout. It uses the template specified in `logging.request-log-template`.
+
+|`logging.request-log-template`
+|Go `text/template` string
+|Determines the shape of the request logs. Use a single line to prevent logs from being split into multiple records..
+|===
+
+Additionally, the `logging.request-log-template` key includes the following functions:
+
+* `Request` is an `http.Request` representing an HTTP request received by the server.
+* `Response` represents the HTTP response and includes the following fields:
+** `Code` is the HTTP status code. 
+** `Size` is the response size in bytes.
+** `Latency`is the response latency in seconds.
+* `Revision` contains revision details and includes the following fields: 
+** `Name` is the name of the revision.
+** `Namespace` is namespace of the revision.
+** `Service` is the name of the service.
+** `Configuration` is the name of the configuration.
+** `PodName` is the name of the pod hosting the revision.
+** `PodIP` is the IP address of the hosting pod.
+
+.Procedure
+
+* Configure request logging for your service by modifying your `KnativeServing` CR `observability` section:
++
+.KnativeServing CR
+[source,yaml]
+----
+apiVersion: operator.knative.dev/v1beta1
+kind: KnativeServing
+metadata:
+  name: knative-serving
+  namespace: knative-serving
+spec:
+  config:
+    observability:
+        logging.enable-request-log: true
+        logging.enable-probe-request-log: true
+        logging.request-log-template: '{"httpRequest": {"requestMethod": "{{.Request.Method}}", "requestUrl": "{{js .Request.RequestURI}}", "requestSize": "{{.Request.ContentLength}}", "status": {{.Response.Code}}, "responseSize": "{{.Response.Size}}", "userAgent": "{{js .Request.UserAgent}}", "remoteIp": "{{js .Request.RemoteAddr}}", "serverIp": "{{.Revision.PodIP}}", "referer": "{{js .Request.Referer}}", "latency": "{{.Response.Latency}}s", "protocol": "{{.Request.Proto}}"}, "traceId": "{{index .Request.Header "X-B3-Traceid"}}"}'
+----
path: modules/serverless-config-request-log.adoc
user: login: eromanova97
body: Based on the OpenShift style guide: https://github.com/openshift/openshift-docs/blob/main/contributing_to_docs/doc_guidelines.adoc#signs-and-symbols-in-code-blocks
to use ellipsis for incomplete yaml examples:
```suggestion
# ...
----
```
created_at: 2025-03-12T10:37:55Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,65 @@
+// Module included in the following assemblies:
+//
+// * serverless/observability/serverless-config-log-settings.adoc
+
+:_mod-docs-content-type: PROCEDURE
+[id="serverless-config-request-log_{context}"]
+= Configuring request log settings for Serving
+
+You can configure request logging for your service in the `observability` section of your `KnativeServing` custom resource (CR).
+
+You can use the following keys and values:
+
+[cols=3*,options="header"]
+|===
+|Key
+|Unit
+|Description
+
+|`logging.enable-request-log`
+|Boolean (`true` or `false`)
+|Set to `true` to enable request logging.
+
+|`logging.enable-probe-request-log`
+|Boolean (`true` or `false`)
+|If set `true`, this enables queue proxy writing request logs for probe requests to stdout. It uses the template specified in `logging.request-log-template`.
+
+|`logging.request-log-template`
+|Go `text/template` string
+|Determines the shape of the request logs. Use a single line to prevent logs from being split into multiple records..
+|===
+
+Additionally, the `logging.request-log-template` key includes the following functions:
+
+* `Request` is an `http.Request` representing an HTTP request received by the server.
+* `Response` represents the HTTP response and includes the following fields:
+** `Code` is the HTTP status code. 
+** `Size` is the response size in bytes.
+** `Latency`is the response latency in seconds.
+* `Revision` contains revision details and includes the following fields: 
+** `Name` is the name of the revision.
+** `Namespace` is namespace of the revision.
+** `Service` is the name of the service.
+** `Configuration` is the name of the configuration.
+** `PodName` is the name of the pod hosting the revision.
+** `PodIP` is the IP address of the hosting pod.
+
+.Procedure
+
+* Configure request logging for your service by modifying your `KnativeServing` CR `observability` section:
++
+.KnativeServing CR
+[source,yaml]
+----
+apiVersion: operator.knative.dev/v1beta1
+kind: KnativeServing
+metadata:
+  name: knative-serving
+  namespace: knative-serving
+spec:
path: modules/serverless-config-request-log.adoc
user: login: eromanova97
body: Based on the OpenShift style guide: https://github.com/openshift/openshift-docs/blob/main/contributing_to_docs/doc_guidelines.adoc#signs-and-symbols-in-code-blocks
to use ellipsis for incomplete yaml examples:
```suggestion
  namespace: knative-serving
# ...
spec:
```
created_at: 2025-03-12T10:38:46Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,67 @@
+// Module included in the following assemblies:
+//
+// * serverless/observability/serverless-config-log-settings.adoc
+
+:_mod-docs-content-type: PROCEDURE
+[id="serverless-config-request-log_{context}"]
+= Configuring request log settings for Serving
path: modules/serverless-config-request-log.adoc
user: login: xenolinux
body: ```suggestion
= Configuring request log settings for service
```

- I think it's a typo - should it be service? in either cases, consider using lowercase.
created_at: 2025-03-13T11:34:43Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,67 @@
+// Module included in the following assemblies:
+//
+// * serverless/observability/serverless-config-log-settings.adoc
+
+:_mod-docs-content-type: PROCEDURE
+[id="serverless-config-request-log_{context}"]
+= Configuring request log settings for Serving
+
+You can configure request logging for your service in the `observability` field of your `KnativeServing` custom resource (CR).
+
+You can use the following parameters:
+
+[cols=3*,options="header"]
path: modules/serverless-config-request-log.adoc
user: login: xenolinux
body: We usually put tables and parameter list in the reference module. I think it'd be good if this table and the `logging.request-log-template` parameter list can be put in its own reference module and then you can mention that module in the additional resources. What do you think? 
created_at: 2025-03-13T11:38:17Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,67 @@
+// Module included in the following assemblies:
+//
+// * serverless/observability/serverless-config-log-settings.adoc
+
+:_mod-docs-content-type: PROCEDURE
+[id="serverless-config-request-log_{context}"]
+= Configuring request log settings for Serving
+
+You can configure request logging for your service in the `observability` field of your `KnativeServing` custom resource (CR).
+
+You can use the following parameters:
+
+[cols=3*,options="header"]
+|===
+|Parameter
+|Type
+|Description
+
+|`logging.enable-request-log`
+|Boolean (`true` or `false`)
+|Set to `true` to enable request logging.
+
+|`logging.enable-probe-request-log`
+|Boolean (`true` or `false`)
+|Set to `true` to enable the queue proxy to log probe requests to stdout. It uses the template specified in `logging.request-log-template`.
+
+|`logging.request-log-template`
+|Go `text/template` string
+|Determine the shape of the request logs. Use a single line to prevent logs from being split into multiple records.
+|===
+
+The `logging.request-log-template` parameter includes the following functions:
+
+* `Request` is an `http.Request` representing an HTTP request received by the server.
+* `Response` represents the HTTP response and includes the following fields:
+** `Code` is the HTTP status code. 
+** `Size` is the response size in bytes.
+** `Latency` is the response latency in seconds.
+* `Revision` contains revision details and includes the following fields: 
+** `Name` is the name of the revision.
+** `Namespace` is the namespace of the revision.
+** `Service` is the name of the service.
+** `Configuration` is the name of the configuration.
+** `PodName` is the name of the pod hosting the revision.
+** `PodIP` is the IP address of the hosting pod.
+
+.Procedure
+
+* Configure request logging for your service by modifying the `observability` field in your `KnativeServing` CR:
++
+.Example KnativeServing CR
path: modules/serverless-config-request-log.adoc
user: login: xenolinux
body: ```suggestion
.Example `KnativeServing` CR
```
created_at: 2025-03-13T11:39:18Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,67 @@
+// Module included in the following assemblies:
+//
+// * serverless/observability/serverless-config-log-settings.adoc
+
+:_mod-docs-content-type: PROCEDURE
+[id="serverless-config-request-log_{context}"]
+= Configuring request log settings for Serving
path: modules/serverless-config-request-log.adoc
user: login: ochromy
body: I meant it as _Knative Serving_ (a component of Serverless). 
But since request logging is Serving specific and the procedure above is `Configuring log settings`, I'll change it to just `Configuring request log settings`.
created_at: 2025-03-13T12:09:46Z
author_association: NONE
diff_hunk: @@ -0,0 +1,67 @@
+// Module included in the following assemblies:
+//
+// * serverless/observability/serverless-config-log-settings.adoc
+
+:_mod-docs-content-type: PROCEDURE
+[id="serverless-config-request-log_{context}"]
+= Configuring request log settings for Serving
+
+You can configure request logging for your service in the `observability` field of your `KnativeServing` custom resource (CR).
+
+You can use the following parameters:
+
+[cols=3*,options="header"]
path: modules/serverless-config-request-log.adoc
user: login: ochromy
body: I'm not sure about placing it in additional resources since the RFE is specifically about having this info in one place. If it would be better to put it in a separate reference module (and if I understand you correctly), I can add the table and the list as a reference module titled `Request Log Settings` just above this procedure.
created_at: 2025-03-13T12:19:58Z
author_association: NONE
diff_hunk: @@ -0,0 +1,67 @@
+// Module included in the following assemblies:
+//
+// * serverless/observability/serverless-config-log-settings.adoc
+
+:_mod-docs-content-type: PROCEDURE
+[id="serverless-config-request-log_{context}"]
+= Configuring request log settings for Serving
+
+You can configure request logging for your service in the `observability` field of your `KnativeServing` custom resource (CR).
+
+You can use the following parameters:
+
+[cols=3*,options="header"]
path: modules/serverless-config-request-log.adoc
user: login: skopacz1
body: (granted, this is while previews are having issues and it's hard to get a good sense of what things look like)

I've thought about this a little bit and I think that while this table and list _could_ stay here in this module, it would definitely look cleaner and more organized if this reference content was in its own reference module. I think you can still keep this in one place, effectively, by placing the new reference module directly below this procedure module. 

So here's what I'm suggesting:

1. Take this table and list and put it in a new reference module, and include that module right after [this line](https://github.com/openshift/openshift-docs/pull/88783/files#diff-8130ccf78ff5576c329f4fb36eaaf936aeadd104175c984b0ea14391125ec273R15) (I think it would be a little weird to have reference info come before the feature it describes imo)
2. Add a sentence after [this line](https://github.com/openshift/openshift-docs/pull/88783/files#diff-03790d860affdac480cb31d3e05953d5a96e3516160738a6dba4a89cbe382427R9) saying something like 'For information about parameters to configure request logging, see "[name of reference module]".'
3. (optional) add an additional resources section under this specific module that links to the reference module. Not strictly necessary since the reference info will literally be the very next section

So let me know what you think about that plan. If you'd strongly prefer to have it all in one place, I can merge as-is tomorrow.
created_at: 2025-03-17T15:53:44Z
author_association: CONTRIBUTOR
diff_hunk: @@ -0,0 +1,41 @@
+// Module included in the following assemblies:
+//
+// * serverless/observability/serverless-config-log-settings.adoc
+
+:_mod-docs-content-type: REFERENCE
+[id="serverless-request-log-parameters_{context}"]
+= Parameters of request logging
+
path: modules/serverless-request-log-parameters.adoc
user: login: skopacz1
body: This is not critical to do now and I will still merge if this isn't addressed by EOD today, but I think an introduction to the table/module + maybe a title for the table would be best here:

```suggestion

The following table describes parameters that can be used to configure request logging.

.Request logging parameters
```
created_at: 2025-03-19T14:52:22Z
author_association: CONTRIBUTOR

PR comments:
user: login: ocpdocs-previewbot
created_at: 2025-02-18T14:57:34Z
body: 🤖 Wed Mar 19 15:12:28 - Prow CI generated the docs preview:

https://88783--ocpdocs-pr.netlify.app/openshift-serverless/latest/observability/cluster-logging/serverless-config-log-settings.html
author_association: NONE
user: login: ochromy
created_at: 2025-03-12T08:38:43Z
body: /label serverless
/label peer-review-needed
author_association: NONE
user: login: eromanova97
created_at: 2025-03-12T09:13:24Z
body: /remove-label peer-review-needed

/label peer-review-in-progress
author_association: CONTRIBUTOR
user: login: ochromy
created_at: 2025-03-13T11:21:19Z
body: Thank you @eromanova97!

/label merge-review-needed
author_association: NONE
user: login: ochromy
created_at: 2025-03-17T11:33:14Z
body: /label merge-review-needed
author_association: NONE
user: login: ochromy
created_at: 2025-03-19T12:27:58Z
body: @skopacz1 Thank you for the suggestions!
I've pushed the changes.
author_association: NONE
user: login: openshift-ci[bot]
created_at: 2025-03-19T15:14:22Z
body: @ochromy: all tests **passed!**


[Full PR test history](https://prow.ci.openshift.org/pr-history?org=openshift&repo=openshift-docs&pr=88783). [Your PR dashboard](https://prow.ci.openshift.org/pr?query=is:pr+state:open+author:ochromy).

<details>

Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md).  If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes-sigs/prow](https://github.com/kubernetes-sigs/prow/issues/new?title=Prow%20issue:) repository. I understand the commands that are listed [here](https://go.k8s.io/bot-commands).
</details>
<!-- test report -->
author_association: NONE
user: login: skopacz1
created_at: 2025-03-19T15:23:44Z
body: /cherrypick serverless-docs-1.34
author_association: CONTRIBUTOR
user: login: skopacz1
created_at: 2025-03-19T15:23:47Z
body: /cherrypick serverless-docs-1.35
author_association: CONTRIBUTOR
user: login: skopacz1
created_at: 2025-03-19T15:23:52Z
body: /cherrypick serverless-docs-1.36
author_association: CONTRIBUTOR
user: login: openshift-cherrypick-robot
created_at: 2025-03-19T15:24:33Z
body: @skopacz1: new pull request created: #90671

<details>

In response to [this](https://github.com/openshift/openshift-docs/pull/88783#issuecomment-2737056657):

>/cherrypick serverless-docs-1.34


Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md).  If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes-sigs/prow](https://github.com/kubernetes-sigs/prow/issues/new?title=Prow%20issue:) repository.
</details>
author_association: NONE
user: login: openshift-cherrypick-robot
created_at: 2025-03-19T15:24:40Z
body: @skopacz1: new pull request created: #90672

<details>

In response to [this](https://github.com/openshift/openshift-docs/pull/88783#issuecomment-2737056877):

>/cherrypick serverless-docs-1.35


Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md).  If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes-sigs/prow](https://github.com/kubernetes-sigs/prow/issues/new?title=Prow%20issue:) repository.
</details>
author_association: NONE
user: login: openshift-cherrypick-robot
created_at: 2025-03-19T15:24:46Z
body: @skopacz1: new pull request created: #90673

<details>

In response to [this](https://github.com/openshift/openshift-docs/pull/88783#issuecomment-2737057084):

>/cherrypick serverless-docs-1.36


Instructions for interacting with me using PR comments are available [here](https://git.k8s.io/community/contributors/guide/pull-requests.md).  If you have questions or suggestions related to my behavior, please file an issue against the [kubernetes-sigs/prow](https://github.com/kubernetes-sigs/prow/issues/new?title=Prow%20issue:) repository.
</details>
author_association: NONE