:4318
+```
+
+## Configure Helidon applications for SigNoz Observability
+
+In order for SigNoz to collect logs, metrics, and traces from Helidon applications, some configurations must be added.
+
+### Configure OpenTelemetry
+
+OpenTelemetry provides instrumentation without any code changes. To enable OpenTelemetry, add these Helidon dependencies to your application's `pom.xml`:
+
+```xml
+
+ io.helidon.microprofile.telemetry
+ helidon-microprofile-telemetry
+
+
+ io.opentelemetry
+ opentelemetry-exporter-otlp
+
+
+```
+
+Then, add the following configuration properties to your `microprofile-config.properties`. Replace `APP_NAME` with the name of your application:
+
+```
+metrics.rest-request.enabled=true
+otel.sdk.disabled=false
+otel.service.name=APP_NAME
+otel.logs.exporter=otlp
+otel.exporter.otlp.protocol=http/protobuf
+
+# If you are using Helidon MP, you may change the following to true
+# to enable the optional MicroProfile Metrics REST.request metrics
+metrics.rest-request.enabled=false
+```
+
+:::note
+ When you deploy your Helidon applications with the OBaaS application Helm chart, it will automatically add the necessary environment variables
+ to configure the endpoint addresses when you set `obaas.otel.enabled: true` in your `values.yaml`.
+:::
+
+### Structured Logging
+
+We recommend that you configure your Helidon application to use Structured JSON logging, including trace correlation - which will allow you to easily
+navigate between traces and the matching logs - without any manual OpenTelemetry SDK configuration.
+
+First, add the following dependencies to your applications `pom.xml`:
+
+```xml
+
+
+ org.slf4j
+ slf4j-api
+ 2.0.9
+
+
+ ch.qos.logback
+ logback-classic
+ 1.4.14
+
+
+
+ org.slf4j
+ jul-to-slf4j
+ 2.0.9
+
+
+
+ net.logstash.logback
+ logstash-logback-encoder
+ 7.4
+
+
+ io.opentelemetry.instrumentation
+ opentelemetry-logback-mdc-1.0
+ 2.1.0-alpha
+
+ runtime
+
+```
+
+Next, create a configuration file for logging. Create a file called `src/main/resources/logback.xml` with the following content. This
+standardizes all container application text output to pure JSON string lines via the `LogstashEncoder`:
+
+```xml
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+For trace injection, create a custom JAX-RS `ContainerRequestFilter` that intercepts incoming HTTP requests, extracts the
+active `trace_id` and `span_id` from the OpenTelemetry `SpanContext`, and securely drops them into the SLF4J ThreadLocal MDC.
+
+Create a new Java class in your application called `MdcFilter.java` with this content. Update the Java package as necessary:
+
+```java
+// Copyright (c) 2026, Oracle and/or its affiliates.
+// Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl/
+package com.example;
+
+import io.opentelemetry.api.trace.Span;
+import io.opentelemetry.api.trace.SpanContext;
+import jakarta.ws.rs.container.ContainerRequestContext;
+import jakarta.ws.rs.container.ContainerRequestFilter;
+import jakarta.ws.rs.container.ContainerResponseContext;
+import jakarta.ws.rs.container.ContainerResponseFilter;
+import jakarta.ws.rs.ext.Provider;
+import jakarta.annotation.Priority;
+import jakarta.ws.rs.Priorities;
+import org.slf4j.MDC;
+import java.io.IOException;
+
+/**
+ * A JAX-RS Container Filter that intercepts incoming HTTP requests and bridges
+ * the active OpenTelemetry execution context into the SLF4J Mapped Diagnostic
+ * Context(MDC).
+ *
+ * This filter extracts the Trace ID, Span ID, and Trace Flags from the active
+ * OTel Span and populates the SLF4J MDC map at the start of every HTTP request.
+ * It strictly cleans up the MDC map during the HTTP response lifecycle phase to
+ * prevent context-bleeding across concurrent virtual threads.
+ *
+ * The @Priority annotation ensures this filter executes after Helidon's
+ * internal OpenTelemetry filters have initialized the tracing span for the
+ * incoming request, guaranteeing that Span.current() will return a valid
+ * context.
+ */
+@Provider
+@Priority(Priorities.USER + 100)
+public class MdcFilter implements ContainerRequestFilter, ContainerResponseFilter {
+ @Override
+ public void filter(ContainerRequestContext requestContext) throws IOException {
+ SpanContext spanContext = Span.current().getSpanContext();
+ if (spanContext.isValid()) {
+ MDC.put("trace_id", spanContext.getTraceId());
+ MDC.put("span_id", spanContext.getSpanId());
+ MDC.put("trace_flags", spanContext.getTraceFlags().asHex());
+ }
+ }
+
+ @Override
+ public void filter(ContainerRequestContext requestContext, ContainerResponseContext responseContext)
+ throws IOException {
+ MDC.remove("trace_id");
+ MDC.remove("span_id");
+ MDC.remove("trace_flags");
+ }
+}
+```
+
+With this configuration, logs will be printed to stdout in pure JSON with trace IDs attached, and the cluster's
+OpenTelemetry DaemonSet will natively scrape, parse, and correlate the logs entirely outside of the application's runtime.
+
+With this approach:
+
+* You do not need to configure a custom `GlobalOpenTelemetry` in your application.
+* Any `LOGGER.info()` statement will get stamped with the distributed Trace ID.
+* There is minimal overhead - your application only prints text locally; the cluster agent handles the expensive network gRPC telemetry export.
diff --git a/docs-source/site/versioned_docs/version-2.1.2/observability/custom-dashboards.md b/docs-source/site/versioned_docs/version-2.1.2/observability/custom-dashboards.md
new file mode 100644
index 000000000..17d5271ab
--- /dev/null
+++ b/docs-source/site/versioned_docs/version-2.1.2/observability/custom-dashboards.md
@@ -0,0 +1,155 @@
+---
+title: Custom dashboards
+sidebar_position: 5.5
+---
+
+Use the `helm/app-charts/signoz-dashboards` sample chart to install your own
+dashboards into SigNoz and repeat the import with Helm upgrades. Keep your JSON
+dashboard definitions with the chart in your application's source control.
+Install it as a separate Helm release from the OBaaS platform release.
+
+## Prerequisites
+
+- A healthy OBaaS SigNoz instance, including its ClickHouse connection.
+- Helm and `kubectl` configured for the target cluster.
+- The namespace and Helm release name of your OBaaS instance.
+- An existing SigNoz credential Secret containing `email` and `password`.
+
+Install the dashboard chart in the same namespace as OBaaS. The default credential
+Secret is `signoz-authn`; use the Secret configured for your instance if it has a
+different name. See [Access SigNoz](./access.md) for connection and credential
+instructions.
+
+## Add your dashboard files
+
+1. Export each custom dashboard as JSON from SigNoz.
+2. Place each file directly in `helm/app-charts/signoz-dashboards/dashboards/`.
+3. Remove `sample-application.json` when replacing the empty sample dashboard.
+4. Give each dashboard a unique, application-specific title.
+
+The chart includes only `dashboards/*.json`; it does not include subdirectories.
+Each JSON file becomes a ConfigMap. For example, `orders.json` creates the
+ConfigMap `orders`. Names are normalized when needed and shortened to at most
+63 characters, with a hash suffix to distinguish changed names. Use distinct
+filenames across dashboard releases in the same namespace because ConfigMap
+names are based on filenames rather than Helm release names.
+
+Each JSON file must fit within Kubernetes' 1 MiB ConfigMap data limit. The complete
+chart must also fit within Helm's release storage limits; splitting files into
+individual ConfigMaps does not remove the aggregate limit.
+
+### Dashboard formats
+
+The importer detects the dashboard API supported by the deployed SigNoz instance:
+
+- Older instances, including OBaaS 2.1.0's SigNoz, use the V1 dashboard API and
+ JSON exports with `version: "v4"` or `"v5"`. The dashboard title is `title`.
+- Newer instances use the V2 API and Perses exports with `schemaVersion: "v6"`.
+ The dashboard title is `spec.display.name`.
+
+Use V1 exports when the same definitions need to run on both older and newer
+instances. Newer SigNoz can convert V1 payloads submitted to its V2 create
+endpoint. This compatibility is transitional; for future SigNoz upgrades,
+re-export dashboards in the supported format. V2 files cannot be imported into a
+V1 instance and are rejected before any dashboards are deleted.
+
+## Configure the chart
+
+Create a values file, for example `my-dashboards-values.yaml`, containing the
+OBaaS release name and credential Secret reference:
+
+```yaml
+signoz:
+ releaseName: obaas
+ auth:
+ existingSecret: signoz-authn
+```
+
+Replace `obaas` with your actual OBaaS platform release name, not the release name
+you will use for the dashboard chart. Keep passwords out of the values file.
+
+The Job runs a Python standard-library importer on
+`container-registry.oracle.com/os/oraclelinux:9`. It waits for SigNoz, discovers
+the organization through `/api/v2/sessions/context` using the credential Secret's
+`email`, logs in, and imports dashboards through the detected dashboard API.
+
+If the Secret contains a non-empty `orgID` key, that value takes precedence over
+discovery. Accounts belonging to multiple organizations must supply this key to
+select an organization explicitly. The Secret must contain `email` and `password`
+in either case.
+
+For private registries, configure `image.repository`, `image.tag`, and
+`imagePullSecrets`. Replacement images must provide Python 3 and its standard
+library. No runtime package installation is needed.
+
+## Install and update dashboards
+
+Run from the repository root. Use the same values file for rendering and installing:
+
+```bash
+helm lint helm/app-charts/signoz-dashboards \
+ -f my-dashboards-values.yaml
+
+helm template my-dashboards helm/app-charts/signoz-dashboards \
+ -n -f my-dashboards-values.yaml \
+ > /tmp/my-dashboards-rendered.yaml
+
+helm upgrade --install my-dashboards helm/app-charts/signoz-dashboards \
+ -n -f my-dashboards-values.yaml \
+ --timeout 15m
+```
+
+The ConfigMaps are ordinary Helm resources. A `post-install,post-upgrade` hook Job
+imports them after they are created or updated. Helm waits for the Job and reports
+an error if it fails. Successful and failed Jobs remain available for inspection;
+the next install or upgrade replaces the previous hook Job.
+
+To apply dashboard changes, edit or replace the JSON files and run the same
+`helm upgrade --install` command again. This upgrades the dashboard release; it
+does not upgrade the OBaaS platform or replace the SigNoz installation.
+
+## Replacement and removal behavior
+
+On every install or upgrade, the importer deletes all existing dashboards whose
+titles exactly match the bundled titles, then creates dashboards from the JSON
+files. Other titles are preserved. Local JSON and duplicate titles are checked
+before deletion, but creation can still fail server-side if a payload is invalid.
+Replacement is not transactional; fix any failed import and rerun the upgrade.
+
+:::important
+A title match replaces the dashboard regardless of who created it. Avoid titles
+used by [OBaaS system dashboards](./dashboards.md) or other users. Replacement
+creates new dashboard IDs, which can break links, and overwrites UI edits to the
+matching dashboards.
+:::
+
+If you remove a JSON file and upgrade the chart, Helm removes its ConfigMap, but
+the dashboard remains in SigNoz. **Delete that dashboard manually in the SigNoz
+UI when you no longer need it.** Changing a dashboard's title also leaves the old
+dashboard for manual cleanup.
+
+Uninstalling the dashboard chart removes its ConfigMaps but leaves the imported
+dashboards in SigNoz. The retained hook Job can be deleted separately:
+
+```bash
+helm uninstall my-dashboards -n
+kubectl delete job my-dashboards-signoz-setup -n \
+ --ignore-not-found
+```
+
+## Verify and troubleshoot
+
+```bash
+helm status my-dashboards -n
+kubectl get jobs -n \
+ -l app.kubernetes.io/instance=my-dashboards
+kubectl logs -n job/my-dashboards-signoz-setup \
+ -c signoz-setup
+```
+
+Open SigNoz and confirm your dashboard titles appear. If the Job does not start,
+inspect its pod events and the `signoz-setup` container logs. Check image pulls,
+SigNoz and ClickHouse health, the service URL, the credential Secret, and any
+explicit `orgID` selection. HTTP 400 during
+creation indicates the exported JSON needs checking against the deployed schema;
+HTTP 401 or 403 indicates a credential or permission problem.
diff --git a/docs-source/site/versioned_docs/version-2.1.2/observability/customizations.md b/docs-source/site/versioned_docs/version-2.1.2/observability/customizations.md
new file mode 100644
index 000000000..74705236c
--- /dev/null
+++ b/docs-source/site/versioned_docs/version-2.1.2/observability/customizations.md
@@ -0,0 +1,107 @@
+---
+title: Common Customizations
+sidebar_position: 2
+---
+## Configure Online Storage
+
+You can configure the amount of online storage, for storing metrics, logs and traces, by specifying the desired size in the `values.yaml`
+for the `obaas` Helm chart as follows. The default ClickHouse volume request is `20Gi`. If you have a large number of applications, you may want to increase
+the amount of storage.
+
+```yaml
+signoz:
+ clickhouse:
+ persistence:
+ size: 200Gi
+```
+
+This value controls the ClickHouse volume that stores telemetry. It is separate
+from the SigNoZ metadata volume, configured with
+`signoz.signoz.persistence.size`, whose default request is `1Gi`.
+
+## Configure Cold Storage
+
+### Use Case
+
+Use this configuration when you want recent telemetry data to remain on local persistent storage while older data is offloaded to object storage for long-term retention. For on-premises deployments, use a supported S3-compatible object store. For additional information, see the [SigNoz Administrator Guide](https://signoz.io/docs/manage/administrator-guide/).
+
+### Storage Hierarchy
+
+SigNoZ stores recent ClickHouse data on the local persistent volume as hot storage. After the configured retention threshold is reached, older data is moved to OCI Object Storage or another supported S3-compatible object store. When needed, ClickHouse retrieves older data from cold storage to satisfy queries.
+
+```text
+ Hot Storage (Local Disk)
+ ↓ [after retention threshold]
+ Cold Storage (OCI Object Storage / S3-compatible object storage)
+ ↓ [query hits cold data]
+```
+
+### Configuration Summary
+
+
+
+
+ | Key |
+ Value |
+ Description |
+
+
+
+
+ signoz.enabled |
+ true |
+ Enables the SigNoz deployment. |
+
+
+ signoz.clickhouse.coldStorage.enabled |
+ true |
+ Enables ClickHouse cold storage. |
+
+
+ signoz.clickhouse.coldStorage.defaultKeepFreeSpaceBytes |
+ "10485760" |
+ Keeps at least 10 MiB of local disk space free before moving older data to cold storage. Set value to reflect your environment |
+
+
+ signoz.clickhouse.coldStorage.type |
+ s3 |
+ Uses an S3-compatible object storage API. |
+
+
+ signoz.clickhouse.coldStorage.endpoint |
+ <END-POINT> |
+ Object storage endpoint URL. |
+
+
+ signoz.clickhouse.coldStorage.accessKey |
+ <YOUR-ACCESS-KEY> |
+ Access key for the object storage service. |
+
+
+ signoz.clickhouse.coldStorage.secretAccess |
+ <YOUR-SECRET-ACCESS-KEY> |
+ Secret key for the object storage service. |
+
+
+ signoz.clickhouse.persistence.enabled |
+ true |
+ Enables persistent local storage for ClickHouse hot data. |
+
+
+ signoz.clickhouse.persistence.size |
+ 100Gi |
+ Size of the local persistent volume used for hot storage. Set value to reflect your environment |
+
+
+
+
+### Installation
+
+Before installation modify the `values-signoz-cold-storage.yaml` file with values that reflects your environment.
+
+```bash
+ helm upgrade --install obaas/obaas \
+ -f examples/values-signoz-cold-storage.yaml \
+ -n \
+ --create-namespace [--debug]
+```
diff --git a/docs-source/site/versioned_docs/version-2.1.2/observability/dashboards.md b/docs-source/site/versioned_docs/version-2.1.2/observability/dashboards.md
new file mode 100644
index 000000000..e864776ba
--- /dev/null
+++ b/docs-source/site/versioned_docs/version-2.1.2/observability/dashboards.md
@@ -0,0 +1,266 @@
+---
+title: Pre-installed dashboards
+sidebar_position: 5
+---
+:::note
+More details can be found in the [SigNoz Documentation](https://signoz.io/docs/introduction/).
+:::
+
+:::warning[SigNoz dashboard migration]
+SigNoz v0.135.0 deprecates the Dashboards V1 schema and retires the V1 dashboard API endpoints. User-supplied dashboards that use the V1 format must be migrated to the Dashboards V2/Perses-compatible schema before upgrading. Dashboards managed only through the SigNoz UI are migrated automatically, but verify that none remain marked `Legacy`. See the [SigNoz v0.135.0 upgrade guide](https://signoz.io/docs/operate/migration/upgrade-0-135/) for migration details.
+:::
+
+To install your own dashboards with Helm, see [Custom dashboards](./custom-dashboards.md).
+
+## Dashboard setup Job
+
+The OBaaS chart runs `-signoz-setup` after installation and upgrade
+when `signoz.setup.enabled` is `true` (the default). The Job runs Python 3 on
+`container-registry.oracle.com/os/oraclelinux:9`, using a script mounted from a
+ConfigMap. It waits for SigNoz to become healthy, then signs in with the `email`
+and `password` from the Secret selected by `signoz.auth.existingSecret`, or
+`signoz-authn` when no existing Secret is configured.
+
+The Job discovers the organization through `/api/v2/sessions/context`. If the
+account belongs to multiple organizations, add an `orgID` key containing the
+selected organization's UUID to the credential Secret. A non-empty `orgID` takes
+precedence over discovery. This setup uses the SigNoz API and does not mount the
+SigNoz metadata database PVC, so it also works with PostgreSQL metadata storage.
+
+On each run, the Job deletes existing dashboards whose names exactly match the
+bundled system dashboards, including matching legacy records, then recreates
+them through the V2 API. Their IDs change and edits to these system dashboards
+are replaced. Dashboards with other names are left alone. Save customized copies
+under distinct names. Bundled V1 payloads are skipped; imported system dashboards
+use the V2/Perses `schemaVersion: v6` format.
+
+Check completion and logs with:
+
+```bash
+kubectl -n wait --for=condition=complete \
+ job/-signoz-setup --timeout=5m
+kubectl -n logs job/-signoz-setup \
+ -c signoz-setup
+```
+
+Successful logs end with `SigNoz setup complete`. For private registries, override
+`signoz.setup.image.registry`, `signoz.setup.image.repository`, and
+`signoz.setup.image.tag`; see the [private registry configuration](../setup/helm/install.md#private-registry-configuration-values-private-registryyaml).
+
+## Included dashboards
+
+There are several dashboards that are pre-installed in SigNoz, for example:
+
+- [Spring Boot Observability](#spring-boot-observability)
+- [Spring Boot Statistics](#spring-boot-statistics)
+- [Oracle Database Dashboard](#oracle-database-dashboard)
+- [Kube State Metrics Dashboard](#kube-state-metrics-dashboard)
+- [Apache APISIX Dashboard](#apache-apisix-dashboard)
+- [Envoy Gateway Dashboard](#envoy-gateway-dashboard)
+- [Helidon Main Dashboard](#helidon-main-dashboard)
+- [Helidon MP Details](#helidon-mp-details)
+- [Helidon SE Details](#helidon-se-details)
+- [Helidon JVM Details](#helidon-jvm-details)
+- [APM Metrics](#apm-metrics)
+- [Kafka Server Monitoring Dashboard](#kafka-server-monitoring-dashboard)
+- [Kubernetes Pod Metrics - Overall](#kubernetes-pod-metrics---overall)
+- [Kubernetes Pod Metrics - Detailed](#kubernetes-pod-metrics---detailed)
+- [Kubernetes PVC Metrics](#kubernetes-pvc-metrics)
+- [Kubernetes Node Metrics - Overall](#kubernetes-node-metrics---overall)
+- [Kubernetes Node Metrics - Detailed](#kubernetes-node-metrics---detailed)
+- [DB Calls Monitoring](#db-calls-monitoring)
+- [Host Metrics (k8s)](#host-metrics-k8s)
+- [HTTP API Monitoring](#http-api-monitoring)
+- [JVM Metrics](#jvm-metrics)
+- [NGINX (OTEL)](#nginx-otel)
+- [MicroTx](#microtx)
+
+## Spring Boot Observability
+
+This dashboard provides details of one or more Spring Boot applications including the following:
+
+- The number of HTTP requests received by the application
+- A breakdown of which URL paths requests were received for
+- The average duration of requests by path
+- The number of exceptions encountered by the application
+- Details of 2xx (that is, successful) and 5xx (that is, exceptions) requests
+- The request rate per second over time, by path
+- Log messages from the service
+
+You may adjust the time period and drill down into issues, and search the logs for particular messages. This dashboard is designed for Spring Boot 3.x applications. Some features may work for Spring Boot 2.x applications.
+
+Here is an example of this dashboard displaying data for a simple application:
+
+
+
+## Spring Boot Statistics
+
+This dashboard provides more in-depth information about services including the following:
+
+- JVM statistics like heap and non-heap memory usage, and details of garbage collection
+- Load average and open files
+- Database connection pool statistics (for HikariCP)
+- HTTP request statistics
+- Logging (logback) statistics
+
+You may adjust the time period and drill down into issues, and search the logs for particular messages. This dashboard is designed for Spring Boot 3.x applications. Some features may work for Spring Boot 2.x applications.
+
+Here is an example of this dashboard displaying data for a simple application:
+
+
+
+## Oracle Database Dashboard
+
+This dashboard provides details about the Oracle Database including:
+
+- SGA and PGA size
+- Active sessions
+- User commits
+- Execute count
+- CPU count and platform
+- Top SQL
+- Wait time statistics by class
+
+Here is an example of this dashboard:
+
+
+
+## Kube State Metrics Dashboard
+
+This dashboard provides details of the Kubernetes cluster including:
+
+- Pod capacity and requests for CPU and memory
+- Node availability
+- Deployment, Stateful Set, Pod, Job and Container statistics
+- Details of horizontal pod autoscalers
+- Details of persistent volume claims
+
+Here is an example of this dashboard:
+
+
+
+## Apache APISIX Dashboard
+
+This dashboard provides details of the APISIX API Gateway including:
+
+- Total Requests
+- NGINX Connection State
+- Etcd modifications
+
+Here is an example of this dashboard:
+
+
+
+## Envoy Gateway Dashboard
+
+This dashboard provides details of the Envoy Gateway, including:
+
+- Requests by type
+- Gateway controller runtime operations
+- Gateway processes and work queue
+
+
+
+In addition, the following dashboards are also pre-installed:
+
+## Helidon Main Dashboard
+
+Combined dashboard for Heap memory usage statistics about all [Helidon SE](https://helidon.io/docs/v3/about/introduction) and [Helidon MP](https://helidon.io/docs/v4/mp/introduction) applications deployed in the cluster.
+
+
+
+## Helidon MP Details
+
+Details about CPU and Memory usage of [Helidon MP](https://helidon.io/docs/v4/mp/introduction) applications along with statistics about HTTP/REST requests per JVM.
+
+
+
+## Helidon SE Details
+
+Details about Memory usage of [Helidon SE](https://helidon.io/docs/v3/about/introduction) applications along with statistics about HTTP/REST requests per JVM.
+
+
+
+## Helidon JVM Details
+
+JVM level details about Helidon applications, including statistics about [Virtual Threads](https://docs.oracle.com/en/java/javase/24/core/virtual-threads.html), CPU and Memory usage and HTTP requests.
+
+
+
+## APM Metrics
+
+Application Performance overview for all deployed services in terms of request execution times and consistency.
+
+
+
+## Kafka Server Monitoring Dashboard
+
+Details about Kafka brokers, topics, partitions, and consumers. For more details on Kafka monitoring configuration and metrics, see the [Kafka Observability Guide](./kafka.md).
+
+
+
+## Kubernetes Pod Metrics - Overall
+
+Aggregated view of CPU, Memory, FileSystem, and Network usage by pods.
+
+
+
+## Kubernetes Pod Metrics - Detailed
+
+Detailed view of CPU, Memory, FileSystem, and Network usage by pods.
+
+
+
+## Kubernetes PVC Metrics
+
+Capacity and Usage statistics about Persistent Volume Claims in the cluster.
+
+
+
+## Kubernetes Node Metrics - Overall
+
+Aggregated view of CPU, Memory, FileSystem, and Network usage by Nodes in the cluster.
+
+
+
+## Kubernetes Node Metrics - Detailed
+
+Detailed view of CPU, Memory, FileSystem, and Network usage by Nodes in the cluster.
+
+
+
+## DB Calls Monitoring
+
+Details about [DB attributes from opentelemetry](https://opentelemetry.io/docs/specs/semconv/attributes-registry/db/).
+
+
+
+## Host Metrics (k8s)
+
+This dashboard uses the system metrics collected from the [hostmetrics receiver](https://uptrace.dev/opentelemetry/collector/host-metrics) to show CPU, Memory, Disk, Network and Filesystem usage.
+
+
+
+## HTTP API Monitoring
+
+This dashboard is built on top of available [HTTP attributes from opentelemetry](https://opentelemetry.io/docs/specs/semconv/attributes-registry/http/) and provides insights about endpoint level performance indicators for HTTP calls.
+
+
+
+## JVM Metrics
+
+JVM Runtime metrics for all services deployed in the cluster in terms of CPU/Memory usage, Garbage collection events, threads and class loading/unloading.
+
+
+
+## NGINX (OTEL)
+
+Details about connections/requests being handled by the [NGINX Ingress controller](https://github.com/kubernetes/ingress-nginx). This dashboard is relevant only when deprecated ingress-nginx is explicitly enabled.
+
+
+
+## MicroTx
+
+Details about [Transaction Manager for Microservices](https://docs.oracle.com/en/database/oracle/transaction-manager-for-microservices/24.2/tmmdg/oracle-transaction-manager-microservices.html) component and statistics about participating transactions.
+
+
diff --git a/docs-source/site/versioned_docs/version-2.1.2/observability/dbexporter.md b/docs-source/site/versioned_docs/version-2.1.2/observability/dbexporter.md
new file mode 100644
index 000000000..0f17d88ea
--- /dev/null
+++ b/docs-source/site/versioned_docs/version-2.1.2/observability/dbexporter.md
@@ -0,0 +1,8 @@
+---
+title: Oracle Database Metrics Exporter
+sidebar_position: 8
+---
+
+Oracle Database Metrics Exporter aims to provide observability for the Oracle Database so that users can understand performance and diagnose issues easily across applications and the database. Oracle Database Metrics Exporter delivers functionality to support both cloud and on-premises databases, including those running in Kubernetes and containers.
+
+See the [documentation](https://oracle.github.io/oracle-db-appdev-monitoring/) for how to install and configure Oracle Database Metrics Exporter.
diff --git a/docs-source/site/versioned_docs/version-2.1.2/observability/images/apache-apisix-dashboard.png b/docs-source/site/versioned_docs/version-2.1.2/observability/images/apache-apisix-dashboard.png
new file mode 100644
index 000000000..3313173c2
Binary files /dev/null and b/docs-source/site/versioned_docs/version-2.1.2/observability/images/apache-apisix-dashboard.png differ
diff --git a/docs-source/site/versioned_docs/version-2.1.2/observability/images/apm-dashboard.png b/docs-source/site/versioned_docs/version-2.1.2/observability/images/apm-dashboard.png
new file mode 100644
index 000000000..316918c55
Binary files /dev/null and b/docs-source/site/versioned_docs/version-2.1.2/observability/images/apm-dashboard.png differ
diff --git a/docs-source/site/versioned_docs/version-2.1.2/observability/images/db-calls-dashboard.png b/docs-source/site/versioned_docs/version-2.1.2/observability/images/db-calls-dashboard.png
new file mode 100644
index 000000000..a891a2921
Binary files /dev/null and b/docs-source/site/versioned_docs/version-2.1.2/observability/images/db-calls-dashboard.png differ
diff --git a/docs-source/site/versioned_docs/version-2.1.2/observability/images/db-dashboard.png b/docs-source/site/versioned_docs/version-2.1.2/observability/images/db-dashboard.png
new file mode 100755
index 000000000..01dd34bc8
Binary files /dev/null and b/docs-source/site/versioned_docs/version-2.1.2/observability/images/db-dashboard.png differ
diff --git a/docs-source/site/versioned_docs/version-2.1.2/observability/images/envoy-gateway-dashboard.png b/docs-source/site/versioned_docs/version-2.1.2/observability/images/envoy-gateway-dashboard.png
new file mode 100644
index 000000000..4ac2d6e4f
Binary files /dev/null and b/docs-source/site/versioned_docs/version-2.1.2/observability/images/envoy-gateway-dashboard.png differ
diff --git a/docs-source/site/versioned_docs/version-2.1.2/observability/images/helidon-jvm-dashboard.png b/docs-source/site/versioned_docs/version-2.1.2/observability/images/helidon-jvm-dashboard.png
new file mode 100644
index 000000000..f0f35a19a
Binary files /dev/null and b/docs-source/site/versioned_docs/version-2.1.2/observability/images/helidon-jvm-dashboard.png differ
diff --git a/docs-source/site/versioned_docs/version-2.1.2/observability/images/helidon-main-dashboard.png b/docs-source/site/versioned_docs/version-2.1.2/observability/images/helidon-main-dashboard.png
new file mode 100644
index 000000000..ecb184b20
Binary files /dev/null and b/docs-source/site/versioned_docs/version-2.1.2/observability/images/helidon-main-dashboard.png differ
diff --git a/docs-source/site/versioned_docs/version-2.1.2/observability/images/helidon-mp-dashboard.png b/docs-source/site/versioned_docs/version-2.1.2/observability/images/helidon-mp-dashboard.png
new file mode 100644
index 000000000..ce82f3d2d
Binary files /dev/null and b/docs-source/site/versioned_docs/version-2.1.2/observability/images/helidon-mp-dashboard.png differ
diff --git a/docs-source/site/versioned_docs/version-2.1.2/observability/images/helidon-se-dashboard.png b/docs-source/site/versioned_docs/version-2.1.2/observability/images/helidon-se-dashboard.png
new file mode 100644
index 000000000..7311079b8
Binary files /dev/null and b/docs-source/site/versioned_docs/version-2.1.2/observability/images/helidon-se-dashboard.png differ
diff --git a/docs-source/site/versioned_docs/version-2.1.2/observability/images/host-metrics-dashboard.png b/docs-source/site/versioned_docs/version-2.1.2/observability/images/host-metrics-dashboard.png
new file mode 100644
index 000000000..71a9d11bd
Binary files /dev/null and b/docs-source/site/versioned_docs/version-2.1.2/observability/images/host-metrics-dashboard.png differ
diff --git a/docs-source/site/versioned_docs/version-2.1.2/observability/images/http-api-dashboard.png b/docs-source/site/versioned_docs/version-2.1.2/observability/images/http-api-dashboard.png
new file mode 100644
index 000000000..97ad80fb3
Binary files /dev/null and b/docs-source/site/versioned_docs/version-2.1.2/observability/images/http-api-dashboard.png differ
diff --git a/docs-source/site/versioned_docs/version-2.1.2/observability/images/jvm-metrics-dashboard.png b/docs-source/site/versioned_docs/version-2.1.2/observability/images/jvm-metrics-dashboard.png
new file mode 100644
index 000000000..500184996
Binary files /dev/null and b/docs-source/site/versioned_docs/version-2.1.2/observability/images/jvm-metrics-dashboard.png differ
diff --git a/docs-source/site/versioned_docs/version-2.1.2/observability/images/k8s-node-metrics-detailed.png b/docs-source/site/versioned_docs/version-2.1.2/observability/images/k8s-node-metrics-detailed.png
new file mode 100644
index 000000000..3a621fa14
Binary files /dev/null and b/docs-source/site/versioned_docs/version-2.1.2/observability/images/k8s-node-metrics-detailed.png differ
diff --git a/docs-source/site/versioned_docs/version-2.1.2/observability/images/k8s-node-metrics-overall.png b/docs-source/site/versioned_docs/version-2.1.2/observability/images/k8s-node-metrics-overall.png
new file mode 100644
index 000000000..8a9a73a48
Binary files /dev/null and b/docs-source/site/versioned_docs/version-2.1.2/observability/images/k8s-node-metrics-overall.png differ
diff --git a/docs-source/site/versioned_docs/version-2.1.2/observability/images/k8s-pod-metrics-detailed.png b/docs-source/site/versioned_docs/version-2.1.2/observability/images/k8s-pod-metrics-detailed.png
new file mode 100644
index 000000000..2c3e40a59
Binary files /dev/null and b/docs-source/site/versioned_docs/version-2.1.2/observability/images/k8s-pod-metrics-detailed.png differ
diff --git a/docs-source/site/versioned_docs/version-2.1.2/observability/images/k8s-pod-metrics-overall.png b/docs-source/site/versioned_docs/version-2.1.2/observability/images/k8s-pod-metrics-overall.png
new file mode 100644
index 000000000..2fa439df0
Binary files /dev/null and b/docs-source/site/versioned_docs/version-2.1.2/observability/images/k8s-pod-metrics-overall.png differ
diff --git a/docs-source/site/versioned_docs/version-2.1.2/observability/images/k8s-pvc-metrics.png b/docs-source/site/versioned_docs/version-2.1.2/observability/images/k8s-pvc-metrics.png
new file mode 100644
index 000000000..9e374e024
Binary files /dev/null and b/docs-source/site/versioned_docs/version-2.1.2/observability/images/k8s-pvc-metrics.png differ
diff --git a/docs-source/site/versioned_docs/version-2.1.2/observability/images/kafka-dashboard.png b/docs-source/site/versioned_docs/version-2.1.2/observability/images/kafka-dashboard.png
new file mode 100644
index 000000000..cea646dc4
Binary files /dev/null and b/docs-source/site/versioned_docs/version-2.1.2/observability/images/kafka-dashboard.png differ
diff --git a/docs-source/site/versioned_docs/version-2.1.2/observability/images/kube-state-metrics-dashboard.png b/docs-source/site/versioned_docs/version-2.1.2/observability/images/kube-state-metrics-dashboard.png
new file mode 100755
index 000000000..e95a302ef
Binary files /dev/null and b/docs-source/site/versioned_docs/version-2.1.2/observability/images/kube-state-metrics-dashboard.png differ
diff --git a/docs-source/site/versioned_docs/version-2.1.2/observability/images/microtx-dashboard.png b/docs-source/site/versioned_docs/version-2.1.2/observability/images/microtx-dashboard.png
new file mode 100644
index 000000000..efde1cf38
Binary files /dev/null and b/docs-source/site/versioned_docs/version-2.1.2/observability/images/microtx-dashboard.png differ
diff --git a/docs-source/site/versioned_docs/version-2.1.2/observability/images/nginx-dashboard.png b/docs-source/site/versioned_docs/version-2.1.2/observability/images/nginx-dashboard.png
new file mode 100644
index 000000000..c585356d0
Binary files /dev/null and b/docs-source/site/versioned_docs/version-2.1.2/observability/images/nginx-dashboard.png differ
diff --git a/docs-source/site/versioned_docs/version-2.1.2/observability/images/obaas-signoz-ui.png b/docs-source/site/versioned_docs/version-2.1.2/observability/images/obaas-signoz-ui.png
new file mode 100644
index 000000000..bde78a22b
Binary files /dev/null and b/docs-source/site/versioned_docs/version-2.1.2/observability/images/obaas-signoz-ui.png differ
diff --git a/docs-source/site/versioned_docs/version-2.1.2/observability/images/observability-overview.png b/docs-source/site/versioned_docs/version-2.1.2/observability/images/observability-overview.png
new file mode 100755
index 000000000..f254c4a6c
Binary files /dev/null and b/docs-source/site/versioned_docs/version-2.1.2/observability/images/observability-overview.png differ
diff --git a/docs-source/site/versioned_docs/version-2.1.2/observability/images/service-list.png b/docs-source/site/versioned_docs/version-2.1.2/observability/images/service-list.png
new file mode 100644
index 000000000..ec278785c
Binary files /dev/null and b/docs-source/site/versioned_docs/version-2.1.2/observability/images/service-list.png differ
diff --git a/docs-source/site/versioned_docs/version-2.1.2/observability/images/service-metrics.png b/docs-source/site/versioned_docs/version-2.1.2/observability/images/service-metrics.png
new file mode 100644
index 000000000..11c3f747c
Binary files /dev/null and b/docs-source/site/versioned_docs/version-2.1.2/observability/images/service-metrics.png differ
diff --git a/docs-source/site/versioned_docs/version-2.1.2/observability/images/signoz-logs-details.png b/docs-source/site/versioned_docs/version-2.1.2/observability/images/signoz-logs-details.png
new file mode 100644
index 000000000..1a1ecc622
Binary files /dev/null and b/docs-source/site/versioned_docs/version-2.1.2/observability/images/signoz-logs-details.png differ
diff --git a/docs-source/site/versioned_docs/version-2.1.2/observability/images/signoz-logs.png b/docs-source/site/versioned_docs/version-2.1.2/observability/images/signoz-logs.png
new file mode 100644
index 000000000..574a93cdc
Binary files /dev/null and b/docs-source/site/versioned_docs/version-2.1.2/observability/images/signoz-logs.png differ
diff --git a/docs-source/site/versioned_docs/version-2.1.2/observability/images/signoz-traces-details.png b/docs-source/site/versioned_docs/version-2.1.2/observability/images/signoz-traces-details.png
new file mode 100644
index 000000000..425e050fd
Binary files /dev/null and b/docs-source/site/versioned_docs/version-2.1.2/observability/images/signoz-traces-details.png differ
diff --git a/docs-source/site/versioned_docs/version-2.1.2/observability/images/signoz-traces.png b/docs-source/site/versioned_docs/version-2.1.2/observability/images/signoz-traces.png
new file mode 100644
index 000000000..c71c76e89
Binary files /dev/null and b/docs-source/site/versioned_docs/version-2.1.2/observability/images/signoz-traces.png differ
diff --git a/docs-source/site/versioned_docs/version-2.1.2/observability/images/spring-boot-observability-dashboard.png b/docs-source/site/versioned_docs/version-2.1.2/observability/images/spring-boot-observability-dashboard.png
new file mode 100755
index 000000000..193e44c7c
Binary files /dev/null and b/docs-source/site/versioned_docs/version-2.1.2/observability/images/spring-boot-observability-dashboard.png differ
diff --git a/docs-source/site/versioned_docs/version-2.1.2/observability/images/spring-boot-stats-dashboard.png b/docs-source/site/versioned_docs/version-2.1.2/observability/images/spring-boot-stats-dashboard.png
new file mode 100755
index 000000000..c72b0af81
Binary files /dev/null and b/docs-source/site/versioned_docs/version-2.1.2/observability/images/spring-boot-stats-dashboard.png differ
diff --git a/docs-source/site/versioned_docs/version-2.1.2/observability/index.md b/docs-source/site/versioned_docs/version-2.1.2/observability/index.md
new file mode 100644
index 000000000..4fe521366
--- /dev/null
+++ b/docs-source/site/versioned_docs/version-2.1.2/observability/index.md
@@ -0,0 +1,83 @@
+---
+title: Observability Overview
+sidebar_position: 0
+---
+
+Oracle Backend for Microservices and AI ships with a fully integrated observability stack powered by [SigNoz](https://signoz.io/), providing metrics, logs, and distributed traces. Platform services are preconfigured for observability. Applications export telemetry after they are instrumented with OpenTelemetry or configured with supported metrics annotations.
+
+### What's Included
+
+- **Metrics** — Application and infrastructure metrics collected via OpenTelemetry and Micrometer, with 20+ pre-installed dashboards
+- **Logs** — Centralized log aggregation with filtering and search
+- **Traces** — Distributed tracing across microservices with request correlation
+- **Database Monitoring** — Oracle Database metrics via the built-in database exporter
+- **Kafka Monitoring** — End-to-end visibility for Kafka clusters, producers, and consumers
+
+### Guides
+
+