This is an automated email from the ASF dual-hosted git repository. pcongiusti pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/camel-k.git
commit 51385d02286e464f89f3a764ec509cec66b3bff2 Author: Pasquale Congiusti <[email protected]> AuthorDate: Tue Feb 17 15:51:13 2026 +0100 chore(doc): promote Camel Dashboard --- .github/actions/build/action.yml | 10 +- docs/antora.yml | 1 - docs/modules/ROOT/nav.adoc | 7 +- .../ROOT/pages/observability/dashboard.adoc | 104 +++++++++++++++++++++ docs/modules/ROOT/pages/observability/logging.adoc | 7 -- .../pages/observability/logging/integration.adoc | 48 ---------- .../ROOT/pages/observability/monitoring.adoc | 48 ---------- .../pages/observability/monitoring/operator.adoc | 7 +- .../operator.adoc => operator-logging.adoc} | 0 9 files changed, 116 insertions(+), 116 deletions(-) diff --git a/.github/actions/build/action.yml b/.github/actions/build/action.yml index 49819c010..9c07aecde 100644 --- a/.github/actions/build/action.yml +++ b/.github/actions/build/action.yml @@ -73,13 +73,13 @@ runs: if: github.event_name == 'pull_request' shell: bash run: | - COVERAGE_OPTS="-covermode=count -coverprofile=coverage.out -coverpkg=./..." make build + COVERAGE_OPTS="-covermode=count -coverprofile=oldcoverage.out -coverpkg=./..." make build # Remove mock and generated code from account - grep -v "github.com/apache/camel-k/v2/pkg/client" coverage.out \ + grep -v "github.com/apache/camel-k/v2/pkg/client" oldcoverage.out \ | grep -v "zz_generated" \ - | grep -v "github.com/apache/camel-k/v2/cmd/util" > coverage.mod.out - go tool cover -func=coverage.mod.out -o=coverage.mod.out - grep -o -P '(?<=\(statements\))(.+)(?=%)' coverage.mod.out | xargs > /tmp/${{ inputs.artifact-name }}/coverage_old + | grep -v "github.com/apache/camel-k/v2/cmd/util" > oldcoverage.mod.out + go tool cover -func=oldcoverage.mod.out -o=oldcoverage.mod.out + grep -o -P '(?<=\(statements\))(.+)(?=%)' oldcoverage.mod.out | xargs > /tmp/${{ inputs.artifact-name }}/coverage_old - uses: actions/upload-artifact@v4 if: github.event_name == 'pull_request' diff --git a/docs/antora.yml b/docs/antora.yml index a7e715abe..5474bec89 100644 --- a/docs/antora.yml +++ b/docs/antora.yml @@ -15,7 +15,6 @@ # limitations under the License. # -# Another part of this distributed component is in camel-k-runtime docs name: camel-k title: Camel K version: next diff --git a/docs/modules/ROOT/nav.adoc b/docs/modules/ROOT/nav.adoc index 8e6418947..76ea0495f 100644 --- a/docs/modules/ROOT/nav.adoc +++ b/docs/modules/ROOT/nav.adoc @@ -91,13 +91,12 @@ ** xref:scaling/integration.adoc[Integrations] ** xref:scaling/pipe.adoc[Pipes] * Observability -** xref:observability/logging.adoc[Logging] -*** xref:observability/logging/operator.adoc[Operator] -*** xref:observability/logging/integration.adoc[Integration] +** xref:observability/dashboard.adoc[Camel Dashboard] +*** xref:observability/operator-logging.adoc[Operator logging] ** xref:observability/monitoring.adoc[Monitoring] *** xref:observability/monitoring/operator.adoc[Operator] *** xref:observability/monitoring/integration.adoc[Integration] -*** xref:observability/monitoring/operator-sops.adoc[Standard Operating Procedures] +*** xref:observability/monitoring/operator-sops.adoc[S.O.P.s] * xref:troubleshooting/troubleshooting.adoc[Troubleshooting] ** xref:troubleshooting/debugging.adoc[Debugging] * xref:architecture/architecture.adoc[Architecture] diff --git a/docs/modules/ROOT/pages/observability/dashboard.adoc b/docs/modules/ROOT/pages/observability/dashboard.adoc new file mode 100644 index 000000000..2b33ee513 --- /dev/null +++ b/docs/modules/ROOT/pages/observability/dashboard.adoc @@ -0,0 +1,104 @@ += Camel Dashboard + +https://camel-tooling.github.io/camel-dashboard/[Camel Dashboard] is a Kubernetes operator that you can use to monitor your fleet of Camel applications deployed in the cloud. Whether you use Camel K to deploy or not, the Dashboard is a great tool that you can use to monitor your Camel fleet. + +NOTE: the project is in developer preview mode. + +The Camel Dashboard was originally born as a spin off from Camel K Synthetic Integrations features and matured into a brand new operator whose goal is to provide a meaningful set of information about typical KPIs of your fleet of Camel workloads running on the cloud. + +From Camel K version 2.10.0 onward, the applications deployed by the operator will be automatically instructed with the labels required by the Dashboard to discover and monitor. This is controlled via a Kubernetes label injected to the Deployments (or CronJob or KnativeService) configured on the operator side with the environment variable `CAMEL_DASHBOARD_APP_LABEL` (set by default to `camel.apache.org/app`). + +On the Camel Dashboard side, any application containing the label will be watched and monitored providing a set of useful Camel metrics (for example, health, number of exchanges succeeded, failed, ...). + +You will need to include the `camel-observability-services` component into your application in order to get the full power of this monitoring tool. As an example: + +```yaml +apiVersion: camel.apache.org/v1 +kind: Integration +metadata: + name: sample-it +spec: + dependencies: + - mvn:org.apache.camel.quarkus:camel-quarkus-observability-services + flows: + - route: + id: send-5-messages + from: + uri: "timer:tick?repeatCount=5" + steps: + - setBody: + simple: "Hello!" + - to: "log:myLogger" + traits: + # We need a provide any version supporting camel-observability-services + camel: + runtimeProvider: plain-quarkus + runtimeVersion: 3.30.8 +``` + +The information will be stored in a Custom Resource provided by the Camel Dashboard installation procedure: `CamelApp`. Here a basic example: + +```bash +$ kubectl get camelapp -w + +NAME IMAGE PHASE REPLICAS HEALTHY MONITORED INFO EXCHANGE SLI LAST EXCHANGE +camel-sample 10.104.35.69/camel-k/camel-k-kit-d67egl6snmec... Running 1 True True Quarkus - 3.30.8 (4.16.0) 4m3s +``` + +More in detail, the specific info are stored in the custom resource status: + +```bash +$ kubectl get camelapp -o yaml +apiVersion: v1 +items: +- apiVersion: camel.apache.org/v1alpha1 + kind: CamelApp + metadata: + annotations: + camel.apache.org/imported-from-kind: Deployment + camel.apache.org/imported-from-name: sample-it +... + status: + conditions: + - lastTransitionTime: "2026-02-18T08:32:59Z" + message: Success + reason: MonitoringComplete + status: "True" + type: Monitored + - lastTransitionTime: "2026-02-18T08:32:59Z" + message: All pods are reported as healthy. + reason: HealthCheckCompleted + status: "True" + type: Healthy + image: 10.104.35.69/camel-k/camel-k-kit-d67egl6snmec73e6oqgg@sha256:0ba2fdcc091c62e2a121ebe795d59cb42e34af176b84398e40862bf2fb09c3d1 + info: Quarkus - 3.30.8 (4.16.0) + phase: Running + pods: + - internalIp: 10.244.0.225 + name: sample-it-75c5fd6c6f-wfbc7 + observe: + healthEndpoint: observe/health + healthPort: 9876 + metricsEndpoint: observe/metrics + metricsPort: 9876 + ready: true + runtime: + camelVersion: 4.16.0 + exchange: + lastTimestamp: "2026-02-18T08:27:28Z" + succeed: 5 + total: 5 + runtimeProvider: Quarkus + runtimeVersion: 3.30.8 + status: UP + status: Running + uptimeTimestamp: "2026-02-18T08:26:57Z" + replicas: 1 + sliExchangeSuccessRate: + lastTimestamp: "2026-02-18T08:27:28Z" + samplingInterval: 60000000000 +``` + +NOTE: Camel K won't require the availability of Camel Dashboard to work, neither Camel Dashboard would require Camel K, they are independent projects which can cooperate to provide a Build and Monitoring tool. + +Learn more by reading the official https://camel-tooling.github.io/camel-dashboard/[Camel Dashboard documentation]. diff --git a/docs/modules/ROOT/pages/observability/logging.adoc b/docs/modules/ROOT/pages/observability/logging.adoc deleted file mode 100644 index b9a37407a..000000000 --- a/docs/modules/ROOT/pages/observability/logging.adoc +++ /dev/null @@ -1,7 +0,0 @@ -[[logging]] -= Camel K Logging - -Logs are an essential aspect of observability, and traditionally used to check nominal operation, or for troubleshooting. The following pages contain some details on the logging provided by the various Camel K components: - -- xref:observability/logging/operator.adoc[Camel K operator logging] -- xref:observability/logging/integration.adoc[Camel K integration logging] diff --git a/docs/modules/ROOT/pages/observability/logging/integration.adoc b/docs/modules/ROOT/pages/observability/logging/integration.adoc deleted file mode 100644 index 14069aa4a..000000000 --- a/docs/modules/ROOT/pages/observability/logging/integration.adoc +++ /dev/null @@ -1,48 +0,0 @@ -[[integration-logging]] -= Camel K Integration Logging - -The xref:traits:logging.adoc[Logging trait] simplifies the logging configuration of the Integration runtime. - -NOTE: The Logging trait has been introduced in Camel K version 1.5.0. See the link:/blog/2021/05/new-camel-k-logging-features/[introductory blog post]. - -[[integration-logging-level]] -== Logging Level - -To configure the log level, the `level` option from the Logging trait can be used, e.g.: - -[source,console] ----- -$ kamel run -t logging.level=DEBUG ----- - -[[integration-logging-format]] -== Logging Format - -The format of the log messages can be configured using the `format` option, e.g.: - -[source,console] ----- -$ kamel run -t logging.format='%d{HH:mm:ss} %-5p (%t) %s%e%n' ----- - -The supported values are those of -https://quarkus.io/guides/logging[Quarkus logging] configuration, as it provides the logging framework, for Camel Quarkus which is leveraged by -Camel K. - -[[integration-logging-structured]] -== Structured Logs - -The Integration Pods can provide structured logs, to facilitate processing and parsing. -This can be turned on or off, using the `json` option from the Logging trait, e.g.: - -[source,console] ----- -$ kamel run -t logging.json=true ----- - -Subsequently, pretty JSON logs can be enabled with: - -[source,console] ----- -$ kamel run -t logging.json=true -t logging.json-pretty-print=true ----- diff --git a/docs/modules/ROOT/pages/observability/monitoring.adoc b/docs/modules/ROOT/pages/observability/monitoring.adoc index 131d73ea9..a3ed230e6 100644 --- a/docs/modules/ROOT/pages/observability/monitoring.adoc +++ b/docs/modules/ROOT/pages/observability/monitoring.adoc @@ -43,54 +43,6 @@ EOF By default, the Prometheus instance discovers applications to be monitored in the same namespace. You can use the `podMonitorNamespaceSelector` field from the `Prometheus` resource to enable cross-namespace monitoring. You may also need to specify a ServiceAccount with the `serviceAccountName` field, that's bound to a Role with the necessary permissions. -[[openshift]] -=== OpenShift - -Starting OpenShift 4.3, the Prometheus Operator, that's already deployed as part of the monitoring stack, can be used to https://docs.openshift.com/container-platform/4.3/monitoring/monitoring-your-own-services.html[monitor application services]. -This needs to be enabled by following these instructions: - -. Check whether the `cluster-monitoring-config` ConfigMap object exists in the `openshift-monitoring` project: - - $ oc -n openshift-monitoring edit configmap cluster-monitoring-config - -. If it does not exist, create it: - - $ oc -n openshift-monitoring create configmap cluster-monitoring-config - -. Start editing the cluster-monitoring-config ConfigMap: - - $ oc -n openshift-monitoring edit configmap cluster-monitoring-config - -. Set the `enableUserWorkload` setting to `true` under `data/config.yaml`: -+ -[source,yaml] ----- -apiVersion: v1 -kind: ConfigMap -metadata: - name: cluster-monitoring-config - namespace: openshift-monitoring -data: - config.yaml: | - enableUserWorkload: true ----- -Note that, in OpenShift versions from 4.3 to 4.5, the configuration is as following: -+ -[source,yaml] ----- -apiVersion: v1 -kind: ConfigMap -metadata: - name: cluster-monitoring-config - namespace: openshift-monitoring -data: - config.yaml: | - techPreviewUserWorkload: - enabled: true ----- - -On OpenShift versions prior to 4.3, or if you do not want to change your cluster monitoring stack configuration, you can refer to the <<Kubernetes>> section in order to deploy a separate Prometheus Operator instance. - === What's Next - xref:observability/monitoring/operator.adoc[Camel K operator monitoring] diff --git a/docs/modules/ROOT/pages/observability/monitoring/operator.adoc b/docs/modules/ROOT/pages/observability/monitoring/operator.adoc index 1f2335923..fb5d6ff60 100644 --- a/docs/modules/ROOT/pages/observability/monitoring/operator.adoc +++ b/docs/modules/ROOT/pages/observability/monitoring/operator.adoc @@ -10,9 +10,10 @@ You need to create the resources required to let Prometheus to interact with the We have prepared a base configuration you can quickly apply executing: -``` -kubectl apply -k github.com/apache/camel-k/install/base/config/prometheus?ref=v2.4.0 -``` +[subs=attributes+] +---- +kubectl apply -k github.com/apache/camel-k/install/base/config/prometheus?ref=v{last-released-version} +---- NOTE: change the ref value with the installation version tag you want to install. diff --git a/docs/modules/ROOT/pages/observability/logging/operator.adoc b/docs/modules/ROOT/pages/observability/operator-logging.adoc similarity index 100% rename from docs/modules/ROOT/pages/observability/logging/operator.adoc rename to docs/modules/ROOT/pages/observability/operator-logging.adoc
