This is an automated email from the ASF dual-hosted git repository.

ricardozanini pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/incubator-kie-kogito-docs.git


The following commit(s) were added to refs/heads/main by this push:
     new 6df5989ba [KOGITO-9838] Add a troubleshooting guide for remote service 
invocations (#507)
6df5989ba is described below

commit 6df5989ba167fb5331eaed3f849ab32ce840478c
Author: Ricardo Zanini <[email protected]>
AuthorDate: Thu Sep 28 08:32:31 2023 -0300

    [KOGITO-9838] Add a troubleshooting guide for remote service invocations 
(#507)
    
    * [KOGITO-9838] Add a troubleshooting guide for remove service invocations
    
    Signed-off-by: Ricardo Zanini <[email protected]>
    
    * Incorporating Marian's review
    
    Co-authored-by: Marián Macik <[email protected]>
    
    * Turning the troubleshooting guide more generic for services orchestrations
    
    Signed-off-by: Ricardo Zanini <[email protected]>
    
    ---------
    
    Signed-off-by: Ricardo Zanini <[email protected]>
    Co-authored-by: Marián Macik <[email protected]>
---
 serverlessworkflow/modules/ROOT/nav.adoc           |  1 +
 .../configuring-openapi-services-endpoints.adoc    |  7 +-
 .../orchestration-of-openapi-based-services.adoc   |  2 +-
 .../service-orchestration/troubleshooting.adoc     | 74 ++++++++++++++++++++++
 4 files changed, 80 insertions(+), 4 deletions(-)

diff --git a/serverlessworkflow/modules/ROOT/nav.adoc 
b/serverlessworkflow/modules/ROOT/nav.adoc
index 33e233210..8eeca65eb 100644
--- a/serverlessworkflow/modules/ROOT/nav.adoc
+++ b/serverlessworkflow/modules/ROOT/nav.adoc
@@ -31,6 +31,7 @@
 *** 
xref:service-orchestration/configuring-openapi-services-endpoints.adoc[Advanced 
Configuration]
 *** xref:service-orchestration/working-with-openapi-callbacks.adoc[Callbacks]
 ** xref:service-orchestration/orchestration-of-grpc-services.adoc[gRPC]
+** xref:service-orchestration/troubleshooting.adoc[Troubleshooting]
 * Event Orchestration
 ** xref:eventing/orchestration-of-asyncapi-based-services.adoc[AsyncAPI]
 ** xref:eventing/event-correlation-with-workflows.adoc[Event Correlation]
diff --git 
a/serverlessworkflow/modules/ROOT/pages/service-orchestration/configuring-openapi-services-endpoints.adoc
 
b/serverlessworkflow/modules/ROOT/pages/service-orchestration/configuring-openapi-services-endpoints.adoc
index 51332f5f4..0c4911526 100644
--- 
a/serverlessworkflow/modules/ROOT/pages/service-orchestration/configuring-openapi-services-endpoints.adoc
+++ 
b/serverlessworkflow/modules/ROOT/pages/service-orchestration/configuring-openapi-services-endpoints.adoc
@@ -368,7 +368,7 @@ curl -X 'POST' \
 ----
 
 .Example response
-[source,shell]
+[source,json]
 ----
 
{"id":"5ab5dcb8-5952-4730-b526-cace363774bb","workflowdata":{"symbol":"KGTO","currentPrice":75,"profit":"50%"}}
 ----
@@ -422,7 +422,7 @@ curl -X 'POST' \
 ----
 
 .Example response
-[source,shell]
+[source,json]
 ----
 
{"id":"a80c95d6-51fd-4ca9-b689-f779929c9937","workflowdata":{"symbol":"KGTO","currentPrice":59.36,"profit":"19%"}}
 ----
@@ -469,7 +469,7 @@ curl -X 'POST' \
 ----
 
 .Example response
-[source,shell]
+[source,json]
 ----
 
{"id":"5ab5dcb8-5952-4730-b526-cace363774bb","workflowdata":{"symbol":"KGTO","currentPrice":56.35,"profit":"13%"}}
 ----
@@ -481,5 +481,6 @@ Note that, in the previous example, you overwrote the 
property defined in the `a
 
 * 
xref:service-orchestration/orchestration-of-openapi-based-services.adoc[Orchestrating
 the OpenAPI services]
 * link:{quarkus-profiles-url}[Quarkus configuration guide]
+* xref:service-orchestration/troubleshooting.adoc[]
 
 include::../../pages/_common-content/report-issue.adoc[]
\ No newline at end of file
diff --git 
a/serverlessworkflow/modules/ROOT/pages/service-orchestration/orchestration-of-openapi-based-services.adoc
 
b/serverlessworkflow/modules/ROOT/pages/service-orchestration/orchestration-of-openapi-based-services.adoc
index 8d10ea4ed..d89b7a860 100644
--- 
a/serverlessworkflow/modules/ROOT/pages/service-orchestration/orchestration-of-openapi-based-services.adoc
+++ 
b/serverlessworkflow/modules/ROOT/pages/service-orchestration/orchestration-of-openapi-based-services.adoc
@@ -402,7 +402,7 @@ In a future release, {product_name} will provide support 
for Kubernetes Service
 == Additional resources
 
 * {configuring-openapi-services-endpoints}[Configuring OpenAPI services 
endpoints]
-//* {camel-k-integration}[Integrating Camel K] Guide not available in DP1
 * {authention-support-for-openapi-services}[Authentication for OpenAPI 
services in {product_name}]
+* xref:service-orchestration/troubleshooting.adoc[]
 
 include::../../pages/_common-content/report-issue.adoc[]
diff --git 
a/serverlessworkflow/modules/ROOT/pages/service-orchestration/troubleshooting.adoc
 
b/serverlessworkflow/modules/ROOT/pages/service-orchestration/troubleshooting.adoc
new file mode 100644
index 000000000..81ece03d1
--- /dev/null
+++ 
b/serverlessworkflow/modules/ROOT/pages/service-orchestration/troubleshooting.adoc
@@ -0,0 +1,74 @@
+= Troubleshooting Services Orchestrations
+:compat-mode!:
+// Metadata:
+:description: Troubleshooting Services Orchestrations
+:keywords: workflow, serverless, openapi, services, json, http, tls, https
+// Links:
+:apache_http_client_url: https://hc.apache.org/httpcomponents-client-5.2.x/
+
+This document describes an ongoing list of known issues while orchestrating 
services with workflows.
+
+== Troubleshooting HTTP Services Invocations
+
+The backbone of workflow orchestrations are remote HTTP services invocations, 
for example when using 
xref:service-orchestration/orchestration-of-openapi-based-services.adoc[OpenAPI 
functions]. Following a few steps that can be useful when troubleshooting 
HTTP-based functions.
+
+=== Tracing HTTP Requests and Responses
+
+Under the hood, {product_name} uses link:{apache_http_client_url}[Apache HTTP 
Client]. You can turn HTTP requests and responses tracing by setting the 
following property:
+
+.Turning HTTP tracing on
+[source,properties]
+----
+quarkus.log.category."org.apache.http".level=DEBUG
+----
+
+Reset the application so the log configuration is propagated. After that, you 
can find HTTP tracing in your logs.
+
+.HTTP Request trace
+[source,log,subs="attributes+"]
+----
+...
+2023-09-25 19:00:55,242 DEBUG Executing request POST 
/v2/models/yolo-model/infer HTTP/1.1
+...
+2023-09-25 19:00:55,243 DEBUG http-outgoing-0 >> POST 
/v2/models/yolo-model/infer HTTP/1.1 <1>
+2023-09-25 19:00:55,243 DEBUG http-outgoing-0 >> Accept: application/json
+2023-09-25 19:00:55,243 DEBUG http-outgoing-0 >> Content-Type: application/json
+2023-09-25 19:00:55,243 DEBUG http-outgoing-0 >> kogitoprocid: 
inferencepipeline <2>
+2023-09-25 19:00:55,243 DEBUG http-outgoing-0 >> kogitoprocinstanceid: 
85114b2d-9f64-496a-bf1d-d3a0760cde8e <3>
+2023-09-25 19:00:55,243 DEBUG http-outgoing-0 >> kogitoprocist: Active
+2023-09-25 19:00:55,243 DEBUG http-outgoing-0 >> kogitoproctype: SW
+2023-09-25 19:00:55,243 DEBUG http-outgoing-0 >> kogitoprocversion: 1.0
+2023-09-25 19:00:55,243 DEBUG http-outgoing-0 >> Content-Length: 23177723
+2023-09-25 19:00:55,244 DEBUG http-outgoing-0 >> Host: 
yolo-model-opendatahub-model.apps.trustyai.dzzt.p1.openshiftapps.com
+...
+----
+
+1. The path where the client will make the HTTP invocation
+2. The workflow definition id
+3. The workflow instance (execution) id
+
+In the example above, you have access to every portion of the HTTP request and 
can verify if something is wrong during the message creation.
+For example, you can use the `kogitoprocinstanceid` header to trace this HTTP 
message in the logs.
+
+For responses, you should be able to see the details below the request body:
+
+.HTTP Response trace
+[source,log,subs="attributes+"]
+----
+...
+2023-09-25 19:01:00,738  DEBUG http-outgoing-0 << "HTTP/1.1 500 Internal 
Server Error[\r][\n]" <1>
+2023-09-25 19:01:00,738  DEBUG http-outgoing-0 << "content-type: 
application/json[\r][\n]"
+2023-09-25 19:01:00,738  DEBUG http-outgoing-0 << "date: Mon, 25 Sep 2023 
19:01:00 GMT[\r][\n]"
+2023-09-25 19:01:00,738  DEBUG http-outgoing-0 << "content-length: 186[\r][\n]"
+2023-09-25 19:01:00,738  DEBUG http-outgoing-0 << "set-cookie: 
276e4597d7fcb3b2cba7b5f037eeacf5=5427fafade21f8e7a4ee1fa6c221cf40; path=/; 
HttpOnly; Secure; SameSite=None[\r][\n]"
+2023-09-25 19:01:00,738  DEBUG http-outgoing-0 << "[\r][\n]"
+2023-09-25 19:01:00,738  DEBUG http-outgoing-0 << "{"code":13, 
"message":"Failed to load Model due to adapter error: Error calling stat on 
model file: stat /models/yolo-model__isvc-1295fd6ba9/yolov5s-seg.onnx: no such 
file or directory"}" <2>
+...
+----
+
+1. Response code returned by the server. In this example, a general server 
error 
+2. Response body containing the message body returned by the server
+
+Having the details about the HTTP invocation enables users to do a better 
assessment about the behavior of a given workflow.
+
+include::../../pages/_common-content/report-issue.adoc[]
\ No newline at end of file


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to