From a0b206ab246e8071aaf75cbbaac5bdabea65132a Mon Sep 17 00:00:00 2001 From: Zainab Daodu Date: Thu, 8 Jan 2026 20:24:19 +0100 Subject: [PATCH 01/11] docs(SaaS): Add Cluster Metrics endpoint documentation for Camunda 8 SaaS monitoring --- ...re-monitoring-systems-to-scrape-metrics.md | 133 ++++++++++++++++++ .../cluster-metrics-endpoint/index.md | 54 +++++++ .../set-up-cluster-metrics-endpoint.md | 118 ++++++++++++++++ docs/components/saas/monitoring/index.md | 8 ++ sidebars.js | 22 +++ 5 files changed, 335 insertions(+) create mode 100644 docs/components/saas/monitoring/cluster-metrics-endpoint/configure-monitoring-systems-to-scrape-metrics.md create mode 100644 docs/components/saas/monitoring/cluster-metrics-endpoint/index.md create mode 100644 docs/components/saas/monitoring/cluster-metrics-endpoint/set-up-cluster-metrics-endpoint.md create mode 100644 docs/components/saas/monitoring/index.md diff --git a/docs/components/saas/monitoring/cluster-metrics-endpoint/configure-monitoring-systems-to-scrape-metrics.md b/docs/components/saas/monitoring/cluster-metrics-endpoint/configure-monitoring-systems-to-scrape-metrics.md new file mode 100644 index 00000000000..588362b3ba5 --- /dev/null +++ b/docs/components/saas/monitoring/cluster-metrics-endpoint/configure-monitoring-systems-to-scrape-metrics.md @@ -0,0 +1,133 @@ +--- +id: configure-monitoring-systems-to-scrape-metrics +title: Configure monitoring systems to scrape metrics +description: Learn how to configure monitoring systems to scrape metrics from the Cluster Metrics endpoint in Camunda 8 SaaS. +--- + +This guide explains how to configure monitoring systems to collect metrics from a Camunda 8 SaaS cluster using the Cluster Metrics endpoint. + +The Cluster Metrics endpoint exposes metrics using a pull-based model and Prometheus-compatible format ([Prometheus](https://github.com/prometheus/docs/blob/main/docs/instrumenting/exposition_formats.md#text-based-format) and [OpenMetrics](https://github.com/prometheus/docs/blob/main/docs/instrumenting/exposition_formats.md#openmetrics-text-format) text exposition formats). + +## Before you begin + +Before configuring metric scraping, ensure that: + +- The Cluster Metrics endpoint is enabled for your Camunda 8 SaaS cluster. +- You have the metrics endpoint URL and authentication credentials. +- Your monitoring system can reach the endpoint from an allowlisted IP address. + +For information about the Cluster Metrics endpoint monitoring model and limitations, see [Cluster Metrics endpoint](/components/saas/monitoring/cluster-metrics-endpoint/index.md). + +## Metrics endpoint details + +The metrics endpoint: + +- Uses HTTPS +- Requires Basic Authentication +- Returns metrics in Prometheus format + +### Endpoint format + +The full metrics endpoint follows this format: `https:///` + +- ``: The domain hosting the metrics endpoint. +- ``: The identifier of the Camunda 8 SaaS cluster. + +## Configure Prometheus scraping + +Prometheus can scrape the Cluster Metrics endpoint directly. + +### Example scrape configuration + +```yaml +scrape_configs: + - job_name: "c8-" + scheme: https + metrics_path: / + static_configs: + - targets: + - + basic_auth: + username: + password: + scrape_timeout: 5s + scrape_interval: 30s +``` + +Configuration notes: + +- Use HTTPS. +- Configure Basic Authentication using the credentials provided when the Cluster Metrics endpoint was enabled. +- A scrape timeout of less than 10 seconds is recommended. +- A scrape interval of at least 15 seconds is recommended. Metrics are collected every 15–30 seconds, so shorter intervals do not produce new data. + +## Scrape interval and retention + +The Cluster Metrics endpoint exposes metrics from the most recent scrape only and does not retain historical data. + +Configure your monitoring system to store and retain metrics as needed. + +## Verify metric collection + +After configuring scraping: + +- Confirm that the scrape target reports a healthy state. +- Check that metrics correspond to the expected Camunda 8 cluster. + +If metrics do not appear, review authentication, network access, and scrape configuration. + +## Integrate non-Prometheus monitoring systems + +The Cluster Metrics endpoint exposes metrics in Prometheus format using a pull-based model. Some monitoring systems require additional components to ingest these metrics. + +In these cases, you can deploy a customer-managed OpenTelemetry Collector to adapt the metrics to your monitoring system. + +Using an OpenTelemetry Collector allows you to normalize, enrich, and control the flow of metrics scraped from the Cluster Metrics endpoint. For example, you can: + +- Transform metrics to match internal naming conventions +- Filter metrics to reduce noise or control ingestion costs. +- Enrich metrics with standard labels such as environment or region. +- Forward metrics to one or more monitoring backends. +- Manage scrape behavior, buffering, retries, and backpressure without changing how Camunda exposes metrics. + +### Push-only monitoring systems + +Some monitoring systems support push-based ingestion only. + +In this case, use the following approach: + +1. Deploy a customer-managed OpenTelemetry Collector. +1. Configure the collector to scrape the Cluster Metrics endpoint. +1. Configure the collector to push metrics to your monitoring system. + +Camunda provides the metrics endpoint only. You are responsible for deploying, configuring, and operating the collector. + +### Non-Prometheus metric formats + +If your monitoring system requires a format other than Prometheus, use an OpenTelemetry Collector with the appropriate exporter. + +The OpenTelemetry Collector supports a wide range of exporters, allowing you to forward metrics to different monitoring backends. + +For more information, see the OpenTelemetry documentation: + +- [OpenTelemetry Collector](https://opentelemetry.io/docs/collector/) +- [OpenTelemetry Collector exporters](https://opentelemetry.io/docs/collector/components/exporter/) + +## Troubleshoot common issues + +### Authentication errors + +- Verify the configured username and password. +- Confirm that credentials have not been rotated. +- Check that the monitoring system’s IP address is allowlisted. + +### Scrape timeouts + +- Increase the configured scrape timeout. +- Verify network connectivity to the metrics endpoint. + +### Missing or incomplete metrics + +- Confirm that the Cluster Metrics endpoint for the cluster is enabled and healthy. +- Verify that the cluster is running a supported Camunda version. +- Review scrape interval and retention behavior. diff --git a/docs/components/saas/monitoring/cluster-metrics-endpoint/index.md b/docs/components/saas/monitoring/cluster-metrics-endpoint/index.md new file mode 100644 index 00000000000..72f50a47552 --- /dev/null +++ b/docs/components/saas/monitoring/cluster-metrics-endpoint/index.md @@ -0,0 +1,54 @@ +--- +id: overview +title: Cluster Metrics endpoint +description: Learn how to expose and consume Camunda 8 SaaS cluster metrics using the Cluster Metrics endpoint. +--- + +The Cluster Metrics endpoint lets you expose metrics from a Camunda 8 SaaS Orchestration cluster and consume them in your own monitoring system. This lets you monitor cluster performance, set alerts, and correlate Camunda metrics with the rest of your infrastructure using your existing observability tools. + +It is a dedicated, customer-facing metrics service that exposes aggregated component-level metrics. The endpoint is separate from Camunda’s internal monitoring and operational systems and provides access only to metrics intended for customer consumption. + +## Before you begin + +Before using the Cluster Metrics endpoint, ensure that: + +- You have an external monitoring system capable of collecting prometheus metrics. +- You understand your organization’s network access and IP allowlisting requirements. + +## Supported environments + +The Cluster Metrics endpoint is supported for all Camunda 8 SaaS Orchestration clusters running a supported Camunda version. + +The Cluster Metrics endpoint is configured per Orchestration cluster. Clusters can enable the Cluster Metrics endpoint without upgrading. + +## Metrics exposure model + +The Cluster Metrics endpoint exposes metrics using a pull-based model. + +When the Cluster Metrics endpoint is enabled for a cluster: + +- Camunda exposes a cluster-scoped metrics endpoint that aggregates metrics from all Orchestration cluster components. +- Metrics are exposed in Prometheus-compatible format. +- Your monitoring system initiates metric collection by scraping the endpoint. + +The Cluster Metrics endpoint does not push metrics to customer systems. + + + +## Known limitations + +The Cluster Metrics endpoint exposes the application-level metrics produced by the Camunda version running in your cluster. + +The following constraints apply: + +- The Cluster Metrics endpoint uses Basic Authentication only. +- Metric names and labels depend on the Camunda version running in your cluster. +- Metric and dashboard compatibility across Camunda versions is not guaranteed. + +If your monitoring system does not support Prometheus scraping, you can adapt the metrics using a customer-managed OpenTelemetry Collector. For more information, see [Integrate non-Prometheus monitoring systems](/components/saas/monitoring/cluster-metrics-endpoint/configure-monitoring-systems-to-scrape-metrics.md#integrate-non-prometheus-monitoring-systems). + +## Next steps + +- To enable the Cluster Metrics endpoint and obtain connection details, see [Set up the Cluster Metrics endpoint](/components/saas/monitoring/cluster-metrics-endpoint/set-up-cluster-metrics-endpoint.md). +- To configure Prometheus to scrape metrics, see [Configure monitoring systems to scrape metrics](/components/saas/monitoring/cluster-metrics-endpoint/configure-monitoring-systems-to-scrape-metrics.md). +- If your monitoring system does not support Prometheus scraping, see [Integrate non-Prometheus monitoring systems](/components/saas/monitoring/cluster-metrics-endpoint/configure-monitoring-systems-to-scrape-metrics.md#integrate-non-prometheus-monitoring-systems). diff --git a/docs/components/saas/monitoring/cluster-metrics-endpoint/set-up-cluster-metrics-endpoint.md b/docs/components/saas/monitoring/cluster-metrics-endpoint/set-up-cluster-metrics-endpoint.md new file mode 100644 index 00000000000..09371ecebbc --- /dev/null +++ b/docs/components/saas/monitoring/cluster-metrics-endpoint/set-up-cluster-metrics-endpoint.md @@ -0,0 +1,118 @@ +--- +id: set-up-cluster-metrics-endpoint +title: Set up the Cluster Metrics endpoint +description: Learn how to set up the Cluster Metrics endpoint in Camunda 8 SaaS, manage credentials, and obtain the connection details required to integrate with your monitoring system. +--- + +This guide explains how to set up and manage the Cluster Metrics endpoint for a Camunda 8 SaaS Orchestration cluster, including how to activate and deactivate the endpoint and obtain the connection details required to integrate it with an external monitoring system. + +## Before you begin + +Before enabling the Cluster Metrics endpoint, ensure that: + +- You are using Camunda 8 SaaS. +- You have access to Console and have permission to manage cluster-level settings. +- The monitoring system’s source IP addresses are added to the cluster IP allowlist. The Cluster Metrics endpoint is not accessible unless IP allowlisting is configured. + +## Enable Cluster Metrics endpoint + +You enable the Cluster Metrics endpoint per Orchestration cluster using Camunda Console or API. When the endpoint is enabled, Camunda provisions a secure, cluster-scoped metrics endpoint for external scraping. + +To activate the endpoint: + +1. Sign in to **Camunda Console**. +1. Go to **Clusters**. +1. Select an existing cluster, or create a new one. +1. Open the **Monitoring** tab for the cluster. +1. Click **Activate monitoring endpoint**. +1. Enter a **username** for the monitoring credentials. +1. Click **Activate**. + +### Capture connection details + +When the Cluster Metrics endpoint is activated, the Console displays a dialog containing the authentication credentials. + +Copy and store the password securely. +The password is shown **only once** and cannot be retrieved after you close the dialog. If the password is lost, you must generate a new one. + +Click **Got it** to close the dialog. + +After closing the dialog, you can find the metrics endpoint URL in the **Monitoring** tab for the cluster. + +The following information is required to connect your monitoring system: + +- **Metrics endpoint URL**: HTTPS endpoint used by your monitoring system to scrape metrics +- **Username**: Used for Basic Authentication +- **Password**: Used for Basic Authentication + +Copy and safely store the password when it is displayed. The password is not shown again after you close the dialog. If you lose it, generate a new password. + +## Manage authentication credentials + +Authentication credentials are created and managed in Camunda Console. + +### Create additional credentials + +You can create multiple credentials for the same cluster: + +1. In the **Monitoring** tab, click **Create new credentials**. +1. Enter a username. +1. Generate and copy the password when it is displayed. + + + +### Rotate credentials + +Ƭo rotate a password: + +1. In the **Monitoring** tab, locate the credential. +1. Click the **Generate password** icon next to the username. +1. Generate and copy the new password when prompted. + +When credentials are removed or rotated, previously issued credentials may continue to work briefly. Access may persist for up to five minutes before the credentials are fully invalidated. + +## Authentication and IP allowlisting + +The Cluster Metrics endpoint enforces both authentication and network restrictions. + +- **Authentication** + The endpoint uses Basic Authentication. +- **IP allowlisting** + The endpoint enforces the cluster-level IP allowlist. Requests from non-allowlisted IP addresses are rejected. + +### Error responses + +The Cluster Metrics endpoint returns standard HTTP status codes to indicate access and availability issues: + +| Scenario | HTTP status code | +| --------------------------------------------- | ------------------------- | +| Request from a non-allowlisted IP address | `403 Forbidden` | +| Invalid or missing authentication credentials | `401 Unauthorized` | +| Request rate exceeds allowed limits | `429 Too Many Requests` | +| Metrics endpoint is temporarily unavailable | `503 Service Unavailable` | +| Request times out due to high load | `504 Gateway Timeout` | + +## Disable the Cluster Metrics endpoint + +You can disable the Cluster Metrics endpoint if you no longer want to expose cluster metrics externally. + +### How to disable the Cluster Metrics endpoint + +You can disable the endpoint in either of the following ways: + +- Click **Deactivate** in the **Monitoring** tab, or +- Delete all credentials associated with the endpoint + +When the Cluster Metrics endpoint is disabled: + +- The monitoring endpoint is shut down almost immediately (typically within a few seconds). +- All existing credentials are deleted and are not retained if the endpoint is reactivated. +- Monitoring systems can no longer scrape metrics from the cluster. + +To use the endpoint again, you must reactivate it and create new credentials. Disabling the Cluster Metrics endpoint does not affect cluster operation or workload execution. + +## Next steps + +- To configure Prometheus to scrape metrics from the Cluster Metrics endpoint, see [Configure monitoring systems to scrape metrics](/components/saas/monitoring/cluster-metrics-endpoint/configure-monitoring-systems-to-scrape-metrics.md). +- If your monitoring system does not support Prometheus scraping, see [Integrate non-Prometheus monitoring systems](/components/saas/monitoring/cluster-metrics-endpoint/configure-monitoring-systems-to-scrape-metrics.md#integrate-non-prometheus-monitoring-systems). diff --git a/docs/components/saas/monitoring/index.md b/docs/components/saas/monitoring/index.md new file mode 100644 index 00000000000..3ddcdcad622 --- /dev/null +++ b/docs/components/saas/monitoring/index.md @@ -0,0 +1,8 @@ +--- +id: overview +title: Monitoring +description: Learn how to monitor Camunda 8 SaaS Orchestration clusters using a secure metrics endpoint and your existing monitoring and observability tools. +--- + +Monitoring in Camunda 8 SaaS allows you to observe the health and performance of your orchestration clusters using your own monitoring and observability tools. +Camunda provides a secure, customer-facing metrics endpoint that exposes aggregated cluster metrics for external consumption. diff --git a/sidebars.js b/sidebars.js index 4b8b2b3291e..1da7a37a44b 100644 --- a/sidebars.js +++ b/sidebars.js @@ -1049,6 +1049,28 @@ module.exports = { "components/concepts/clusters", "components/saas/regions", "components/saas/data-locations", + { + type: "category", + label: "Monitoring", + link: { + type: "doc", + id: "components/saas/monitoring/overview", + }, + items: [ + { + type: "category", + label: "Cluster Metrics endpoint", + link: { + type: "doc", + id: "components/saas/monitoring/cluster-metrics-endpoint/overview", + }, + items: [ + "components/saas/monitoring/cluster-metrics-endpoint/set-up-cluster-metrics-endpoint", + "components/saas/monitoring/cluster-metrics-endpoint/configure-monitoring-systems-to-scrape-metrics", + ], + }, + ], + }, { type: "category", label: "Encryption", From db0b1eb9a5e2cadf31e361692e061939a5a8740d Mon Sep 17 00:00:00 2001 From: Zainab Daodu Date: Thu, 8 Jan 2026 20:32:51 +0100 Subject: [PATCH 02/11] Update index.md --- .../saas/monitoring/cluster-metrics-endpoint/index.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/docs/components/saas/monitoring/cluster-metrics-endpoint/index.md b/docs/components/saas/monitoring/cluster-metrics-endpoint/index.md index 72f50a47552..a71df6a73e3 100644 --- a/docs/components/saas/monitoring/cluster-metrics-endpoint/index.md +++ b/docs/components/saas/monitoring/cluster-metrics-endpoint/index.md @@ -33,8 +33,6 @@ When the Cluster Metrics endpoint is enabled for a cluster: The Cluster Metrics endpoint does not push metrics to customer systems. - - ## Known limitations The Cluster Metrics endpoint exposes the application-level metrics produced by the Camunda version running in your cluster. From 7517a45edc6676b8b946d609eb101966eb82d732 Mon Sep 17 00:00:00 2001 From: Zainab Daodu Date: Fri, 9 Jan 2026 17:36:14 +0100 Subject: [PATCH 03/11] review feedback --- ...igure-monitoring-systems-to-scrape-metrics.md | 16 +++++----------- .../monitoring/cluster-metrics-endpoint/index.md | 13 ++++++------- .../set-up-cluster-metrics-endpoint.md | 6 ++++-- 3 files changed, 15 insertions(+), 20 deletions(-) diff --git a/docs/components/saas/monitoring/cluster-metrics-endpoint/configure-monitoring-systems-to-scrape-metrics.md b/docs/components/saas/monitoring/cluster-metrics-endpoint/configure-monitoring-systems-to-scrape-metrics.md index 588362b3ba5..dd442739421 100644 --- a/docs/components/saas/monitoring/cluster-metrics-endpoint/configure-monitoring-systems-to-scrape-metrics.md +++ b/docs/components/saas/monitoring/cluster-metrics-endpoint/configure-monitoring-systems-to-scrape-metrics.md @@ -4,9 +4,7 @@ title: Configure monitoring systems to scrape metrics description: Learn how to configure monitoring systems to scrape metrics from the Cluster Metrics endpoint in Camunda 8 SaaS. --- -This guide explains how to configure monitoring systems to collect metrics from a Camunda 8 SaaS cluster using the Cluster Metrics endpoint. - -The Cluster Metrics endpoint exposes metrics using a pull-based model and Prometheus-compatible format ([Prometheus](https://github.com/prometheus/docs/blob/main/docs/instrumenting/exposition_formats.md#text-based-format) and [OpenMetrics](https://github.com/prometheus/docs/blob/main/docs/instrumenting/exposition_formats.md#openmetrics-text-format) text exposition formats). +This guide explains how to configure monitoring systems to scrape metrics from a Camunda 8 SaaS cluster using the Cluster Metrics endpoint. ## Before you begin @@ -78,9 +76,9 @@ If metrics do not appear, review authentication, network access, and scrape conf ## Integrate non-Prometheus monitoring systems -The Cluster Metrics endpoint exposes metrics in Prometheus format using a pull-based model. Some monitoring systems require additional components to ingest these metrics. +The Cluster Metrics endpoint exposes metrics in Prometheus-compatible formats. Some monitoring systems require additional components to ingest these metrics. -In these cases, you can deploy a customer-managed OpenTelemetry Collector to adapt the metrics to your monitoring system. +In these cases, you can deploy a self-managed OpenTelemetry Collector to adapt the metrics to your monitoring system. For more information, see the [OpenTelemetry Collector documentation](https://opentelemetry.io/docs/collector/). Using an OpenTelemetry Collector allows you to normalize, enrich, and control the flow of metrics scraped from the Cluster Metrics endpoint. For example, you can: @@ -96,7 +94,7 @@ Some monitoring systems support push-based ingestion only. In this case, use the following approach: -1. Deploy a customer-managed OpenTelemetry Collector. +1. Deploy a self-managed OpenTelemetry Collector. 1. Configure the collector to scrape the Cluster Metrics endpoint. 1. Configure the collector to push metrics to your monitoring system. @@ -108,17 +106,13 @@ If your monitoring system requires a format other than Prometheus, use an OpenTe The OpenTelemetry Collector supports a wide range of exporters, allowing you to forward metrics to different monitoring backends. -For more information, see the OpenTelemetry documentation: - -- [OpenTelemetry Collector](https://opentelemetry.io/docs/collector/) -- [OpenTelemetry Collector exporters](https://opentelemetry.io/docs/collector/components/exporter/) +For more information, see [OpenTelemetry Collector exporters](https://opentelemetry.io/docs/collector/components/exporter/). ## Troubleshoot common issues ### Authentication errors - Verify the configured username and password. -- Confirm that credentials have not been rotated. - Check that the monitoring system’s IP address is allowlisted. ### Scrape timeouts diff --git a/docs/components/saas/monitoring/cluster-metrics-endpoint/index.md b/docs/components/saas/monitoring/cluster-metrics-endpoint/index.md index a71df6a73e3..1496af54794 100644 --- a/docs/components/saas/monitoring/cluster-metrics-endpoint/index.md +++ b/docs/components/saas/monitoring/cluster-metrics-endpoint/index.md @@ -17,13 +17,12 @@ Before using the Cluster Metrics endpoint, ensure that: ## Supported environments -The Cluster Metrics endpoint is supported for all Camunda 8 SaaS Orchestration clusters running a supported Camunda version. - -The Cluster Metrics endpoint is configured per Orchestration cluster. Clusters can enable the Cluster Metrics endpoint without upgrading. +The Cluster Metrics endpoint is available for all Camunda 8 SaaS Orchestration clusters. +The endpoint is configured per Orchestration cluster and can be enabled without requiring an upgrade or downtime. ## Metrics exposure model -The Cluster Metrics endpoint exposes metrics using a pull-based model. +The Cluster Metrics endpoint exposes metrics using a pull-based model and Prometheus-compatible format ([Prometheus](https://github.com/prometheus/docs/blob/main/docs/instrumenting/exposition_formats.md#text-based-format) and [OpenMetrics](https://github.com/prometheus/docs/blob/main/docs/instrumenting/exposition_formats.md#openmetrics-text-format) text exposition formats). When the Cluster Metrics endpoint is enabled for a cluster: @@ -33,7 +32,7 @@ When the Cluster Metrics endpoint is enabled for a cluster: The Cluster Metrics endpoint does not push metrics to customer systems. -## Known limitations +## Monitoring endpoint constraints The Cluster Metrics endpoint exposes the application-level metrics produced by the Camunda version running in your cluster. @@ -41,9 +40,9 @@ The following constraints apply: - The Cluster Metrics endpoint uses Basic Authentication only. - Metric names and labels depend on the Camunda version running in your cluster. -- Metric and dashboard compatibility across Camunda versions is not guaranteed. +- Metric and dashboard compatibility between Camunda versions is not guaranteed. -If your monitoring system does not support Prometheus scraping, you can adapt the metrics using a customer-managed OpenTelemetry Collector. For more information, see [Integrate non-Prometheus monitoring systems](/components/saas/monitoring/cluster-metrics-endpoint/configure-monitoring-systems-to-scrape-metrics.md#integrate-non-prometheus-monitoring-systems). +If your monitoring system does not support Prometheus scraping, you can adapt the metrics using a self-managed OpenTelemetry Collector. For more information, see [Integrate non-Prometheus monitoring systems](/components/saas/monitoring/cluster-metrics-endpoint/configure-monitoring-systems-to-scrape-metrics.md#integrate-non-prometheus-monitoring-systems). ## Next steps diff --git a/docs/components/saas/monitoring/cluster-metrics-endpoint/set-up-cluster-metrics-endpoint.md b/docs/components/saas/monitoring/cluster-metrics-endpoint/set-up-cluster-metrics-endpoint.md index 09371ecebbc..adc9aa45516 100644 --- a/docs/components/saas/monitoring/cluster-metrics-endpoint/set-up-cluster-metrics-endpoint.md +++ b/docs/components/saas/monitoring/cluster-metrics-endpoint/set-up-cluster-metrics-endpoint.md @@ -12,7 +12,7 @@ Before enabling the Cluster Metrics endpoint, ensure that: - You are using Camunda 8 SaaS. - You have access to Console and have permission to manage cluster-level settings. -- The monitoring system’s source IP addresses are added to the cluster IP allowlist. The Cluster Metrics endpoint is not accessible unless IP allowlisting is configured. +- If allowlisting is configured for your cluster, the monitoring system’s source IP addresses are added to the cluster IP allowlist. ## Enable Cluster Metrics endpoint @@ -72,6 +72,8 @@ You can create multiple credentials for the same cluster: When credentials are removed or rotated, previously issued credentials may continue to work briefly. Access may persist for up to five minutes before the credentials are fully invalidated. +To avoid interruptions during credential rotation, you can create multiple credentials for the same cluster and update your monitoring system to switch between credentials, rather than rotating a single credential in place. + ## Authentication and IP allowlisting The Cluster Metrics endpoint enforces both authentication and network restrictions. @@ -79,7 +81,7 @@ The Cluster Metrics endpoint enforces both authentication and network restrictio - **Authentication** The endpoint uses Basic Authentication. - **IP allowlisting** - The endpoint enforces the cluster-level IP allowlist. Requests from non-allowlisted IP addresses are rejected. + The endpoint enforces the cluster-level IP allowlist. Requests from non-allowlisted IP addresses are rejected. If an IP allowlist is configured for the cluster, you must add the source IP addresses of your monitoring system to the allowlist to access the endpoint. ### Error responses From 3453f06cdcc6f6355c0534a38f32b899bd67b2da Mon Sep 17 00:00:00 2001 From: Zainab Daodu Date: Fri, 9 Jan 2026 19:12:42 +0100 Subject: [PATCH 04/11] Add diagrams --- ...gure-monitoring-systems-to-scrape-metrics.md | 2 ++ ...ics-endpoint-non-prometheus-architecture.png | Bin 0 -> 60891 bytes ...metrics-endpoint-prometheus-architecture.png | Bin 0 -> 43815 bytes .../cluster-metrics-endpoint/index.md | 2 ++ 4 files changed, 4 insertions(+) create mode 100644 docs/components/saas/monitoring/cluster-metrics-endpoint/img/cluster-metrics-endpoint-non-prometheus-architecture.png create mode 100644 docs/components/saas/monitoring/cluster-metrics-endpoint/img/cluster-metrics-endpoint-prometheus-architecture.png diff --git a/docs/components/saas/monitoring/cluster-metrics-endpoint/configure-monitoring-systems-to-scrape-metrics.md b/docs/components/saas/monitoring/cluster-metrics-endpoint/configure-monitoring-systems-to-scrape-metrics.md index dd442739421..fd214a0cf5c 100644 --- a/docs/components/saas/monitoring/cluster-metrics-endpoint/configure-monitoring-systems-to-scrape-metrics.md +++ b/docs/components/saas/monitoring/cluster-metrics-endpoint/configure-monitoring-systems-to-scrape-metrics.md @@ -80,6 +80,8 @@ The Cluster Metrics endpoint exposes metrics in Prometheus-compatible formats. S In these cases, you can deploy a self-managed OpenTelemetry Collector to adapt the metrics to your monitoring system. For more information, see the [OpenTelemetry Collector documentation](https://opentelemetry.io/docs/collector/). +![Integrate non-Prometheus monitoring systems](./img/cluster-metrics-endpoint-non-prometheus-architecture.png) + Using an OpenTelemetry Collector allows you to normalize, enrich, and control the flow of metrics scraped from the Cluster Metrics endpoint. For example, you can: - Transform metrics to match internal naming conventions diff --git a/docs/components/saas/monitoring/cluster-metrics-endpoint/img/cluster-metrics-endpoint-non-prometheus-architecture.png b/docs/components/saas/monitoring/cluster-metrics-endpoint/img/cluster-metrics-endpoint-non-prometheus-architecture.png new file mode 100644 index 0000000000000000000000000000000000000000..63bb065b298be41cf37bc746fe631186e02e4639 GIT binary patch literal 60891 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�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Ξ@+a4Dv2c7>P-j4JX*~v$pXusSeh}UD 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 literal 0 HcmV?d00001 diff --git a/docs/components/saas/monitoring/cluster-metrics-endpoint/index.md b/docs/components/saas/monitoring/cluster-metrics-endpoint/index.md index 1496af54794..273ba9db877 100644 --- a/docs/components/saas/monitoring/cluster-metrics-endpoint/index.md +++ b/docs/components/saas/monitoring/cluster-metrics-endpoint/index.md @@ -24,6 +24,8 @@ The endpoint is configured per Orchestration cluster and can be enabled without The Cluster Metrics endpoint exposes metrics using a pull-based model and Prometheus-compatible format ([Prometheus](https://github.com/prometheus/docs/blob/main/docs/instrumenting/exposition_formats.md#text-based-format) and [OpenMetrics](https://github.com/prometheus/docs/blob/main/docs/instrumenting/exposition_formats.md#openmetrics-text-format) text exposition formats). +![Cluster Metrics endpoint architecture](./img/cluster-metrics-endpoint-prometheus-architecture.png) + When the Cluster Metrics endpoint is enabled for a cluster: - Camunda exposes a cluster-scoped metrics endpoint that aggregates metrics from all Orchestration cluster components. From cd84effe31dec17fb3c51e736b22a1d6e221c9f2 Mon Sep 17 00:00:00 2001 From: mesellings Date: Mon, 12 Jan 2026 11:17:43 +0000 Subject: [PATCH 05/11] docs(saas): TW review edits --- ...re-monitoring-systems-to-scrape-metrics.md | 6 +- .../cluster-metrics-endpoint/index.md | 12 ++-- .../set-up-cluster-metrics-endpoint.md | 58 +++++++++---------- docs/components/saas/monitoring/index.md | 9 ++- 4 files changed, 44 insertions(+), 41 deletions(-) diff --git a/docs/components/saas/monitoring/cluster-metrics-endpoint/configure-monitoring-systems-to-scrape-metrics.md b/docs/components/saas/monitoring/cluster-metrics-endpoint/configure-monitoring-systems-to-scrape-metrics.md index fd214a0cf5c..5b7435ec9c4 100644 --- a/docs/components/saas/monitoring/cluster-metrics-endpoint/configure-monitoring-systems-to-scrape-metrics.md +++ b/docs/components/saas/monitoring/cluster-metrics-endpoint/configure-monitoring-systems-to-scrape-metrics.md @@ -4,7 +4,7 @@ title: Configure monitoring systems to scrape metrics description: Learn how to configure monitoring systems to scrape metrics from the Cluster Metrics endpoint in Camunda 8 SaaS. --- -This guide explains how to configure monitoring systems to scrape metrics from a Camunda 8 SaaS cluster using the Cluster Metrics endpoint. +Configure your monitoring systems to scrape metrics from a Camunda 8 SaaS cluster using the Cluster Metrics endpoint. ## Before you begin @@ -92,9 +92,7 @@ Using an OpenTelemetry Collector allows you to normalize, enrich, and control th ### Push-only monitoring systems -Some monitoring systems support push-based ingestion only. - -In this case, use the following approach: +If your monitoring system only supports push-based ingestion, use the following approach: 1. Deploy a self-managed OpenTelemetry Collector. 1. Configure the collector to scrape the Cluster Metrics endpoint. diff --git a/docs/components/saas/monitoring/cluster-metrics-endpoint/index.md b/docs/components/saas/monitoring/cluster-metrics-endpoint/index.md index 273ba9db877..a41382a772a 100644 --- a/docs/components/saas/monitoring/cluster-metrics-endpoint/index.md +++ b/docs/components/saas/monitoring/cluster-metrics-endpoint/index.md @@ -4,9 +4,13 @@ title: Cluster Metrics endpoint description: Learn how to expose and consume Camunda 8 SaaS cluster metrics using the Cluster Metrics endpoint. --- -The Cluster Metrics endpoint lets you expose metrics from a Camunda 8 SaaS Orchestration cluster and consume them in your own monitoring system. This lets you monitor cluster performance, set alerts, and correlate Camunda metrics with the rest of your infrastructure using your existing observability tools. +The Cluster Metrics endpoint lets you expose metrics from a Camunda 8 SaaS Orchestration cluster and consume them in your own monitoring system. -It is a dedicated, customer-facing metrics service that exposes aggregated component-level metrics. The endpoint is separate from Camunda’s internal monitoring and operational systems and provides access only to metrics intended for customer consumption. +## About + +Use this endpoint to monitor cluster performance, set alerts, and correlate Camunda metrics with the rest of your infrastructure using your existing observability tools. + +This endpoint is a dedicated, customer-facing metrics service that exposes aggregated component-level metrics. The endpoint is separate from Camunda’s internal monitoring and operational systems and provides access only to metrics intended for customer consumption. ## Before you begin @@ -17,8 +21,8 @@ Before using the Cluster Metrics endpoint, ensure that: ## Supported environments -The Cluster Metrics endpoint is available for all Camunda 8 SaaS Orchestration clusters. -The endpoint is configured per Orchestration cluster and can be enabled without requiring an upgrade or downtime. +- The Cluster Metrics endpoint is available for all Camunda 8 SaaS Orchestration clusters. +- The endpoint is configured per Orchestration cluster and can be enabled without requiring an upgrade or downtime. ## Metrics exposure model diff --git a/docs/components/saas/monitoring/cluster-metrics-endpoint/set-up-cluster-metrics-endpoint.md b/docs/components/saas/monitoring/cluster-metrics-endpoint/set-up-cluster-metrics-endpoint.md index adc9aa45516..1935f3a2ceb 100644 --- a/docs/components/saas/monitoring/cluster-metrics-endpoint/set-up-cluster-metrics-endpoint.md +++ b/docs/components/saas/monitoring/cluster-metrics-endpoint/set-up-cluster-metrics-endpoint.md @@ -4,7 +4,7 @@ title: Set up the Cluster Metrics endpoint description: Learn how to set up the Cluster Metrics endpoint in Camunda 8 SaaS, manage credentials, and obtain the connection details required to integrate with your monitoring system. --- -This guide explains how to set up and manage the Cluster Metrics endpoint for a Camunda 8 SaaS Orchestration cluster, including how to activate and deactivate the endpoint and obtain the connection details required to integrate it with an external monitoring system. +Set up and manage the Cluster Metrics endpoint for a Camunda 8 SaaS Orchestration cluster, including how to activate and deactivate the endpoint and obtain the connection details required to integrate it with an external monitoring system. ## Before you begin @@ -16,12 +16,12 @@ Before enabling the Cluster Metrics endpoint, ensure that: ## Enable Cluster Metrics endpoint -You enable the Cluster Metrics endpoint per Orchestration cluster using Camunda Console or API. When the endpoint is enabled, Camunda provisions a secure, cluster-scoped metrics endpoint for external scraping. +Enable the Cluster Metrics endpoint per Orchestration cluster via either the Camunda Console or API. When the endpoint is enabled, Camunda provisions a secure, cluster-scoped metrics endpoint for external scraping. To activate the endpoint: -1. Sign in to **Camunda Console**. -1. Go to **Clusters**. +1. Sign in to Camunda Console. +1. Navigate to **Clusters**. 1. Select an existing cluster, or create a new one. 1. Open the **Monitoring** tab for the cluster. 1. Click **Activate monitoring endpoint**. @@ -32,20 +32,20 @@ To activate the endpoint: When the Cluster Metrics endpoint is activated, the Console displays a dialog containing the authentication credentials. -Copy and store the password securely. -The password is shown **only once** and cannot be retrieved after you close the dialog. If the password is lost, you must generate a new one. - -Click **Got it** to close the dialog. +1. Copy and store the password securely. +1. Click **Got it** to close the dialog. After closing the dialog, you can find the metrics endpoint URL in the **Monitoring** tab for the cluster. +:::caution +Copy and safely store the password when it is displayed. The password is not shown again after you close the dialog. If you lose it, generate a new password. +::: + The following information is required to connect your monitoring system: -- **Metrics endpoint URL**: HTTPS endpoint used by your monitoring system to scrape metrics -- **Username**: Used for Basic Authentication -- **Password**: Used for Basic Authentication - -Copy and safely store the password when it is displayed. The password is not shown again after you close the dialog. If you lose it, generate a new password. +- **Metrics endpoint URL**: HTTPS endpoint used by your monitoring system to scrape metrics. +- **Username**: Used for Basic Authentication. +- **Password**: Used for Basic Authentication. ## Manage authentication credentials @@ -55,7 +55,7 @@ Authentication credentials are created and managed in Camunda Console. You can create multiple credentials for the same cluster: -1. In the **Monitoring** tab, click **Create new credentials**. +1. On the **Monitoring** tab, click **Create new credentials**. 1. Enter a username. 1. Generate and copy the password when it is displayed. @@ -66,7 +66,7 @@ You can create multiple credentials for the same cluster: Ƭo rotate a password: -1. In the **Monitoring** tab, locate the credential. +1. On the **Monitoring** tab, locate the credential. 1. Click the **Generate password** icon next to the username. 1. Generate and copy the new password when prompted. @@ -78,30 +78,26 @@ To avoid interruptions during credential rotation, you can create multiple crede The Cluster Metrics endpoint enforces both authentication and network restrictions. -- **Authentication** - The endpoint uses Basic Authentication. -- **IP allowlisting** - The endpoint enforces the cluster-level IP allowlist. Requests from non-allowlisted IP addresses are rejected. If an IP allowlist is configured for the cluster, you must add the source IP addresses of your monitoring system to the allowlist to access the endpoint. +| Restriction | Description | +| :-------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Authentication | The endpoint uses Basic Authentication. | +| IP allowlisting | The endpoint enforces the cluster-level IP allowlist.
  • Requests from non-allowlisted IP addresses are rejected.

  • If an IP allowlist is configured for the cluster, you must add the source IP addresses of your monitoring system to the allowlist to access the endpoint.

| ### Error responses The Cluster Metrics endpoint returns standard HTTP status codes to indicate access and availability issues: -| Scenario | HTTP status code | -| --------------------------------------------- | ------------------------- | -| Request from a non-allowlisted IP address | `403 Forbidden` | -| Invalid or missing authentication credentials | `401 Unauthorized` | -| Request rate exceeds allowed limits | `429 Too Many Requests` | -| Metrics endpoint is temporarily unavailable | `503 Service Unavailable` | -| Request times out due to high load | `504 Gateway Timeout` | +| Scenario | HTTP status code | +| :--------------------------------------------- | :------------------------ | +| Request from a non-allowlisted IP address. | `403 Forbidden` | +| Invalid or missing authentication credentials. | `401 Unauthorized` | +| Request rate exceeds allowed limits. | `429 Too Many Requests` | +| Metrics endpoint is temporarily unavailable. | `503 Service Unavailable` | +| Request times out due to high load. | `504 Gateway Timeout` | ## Disable the Cluster Metrics endpoint -You can disable the Cluster Metrics endpoint if you no longer want to expose cluster metrics externally. - -### How to disable the Cluster Metrics endpoint - -You can disable the endpoint in either of the following ways: +If you no longer want to expose cluster metrics externally, you can disable the Cluster Metrics endpoint: - Click **Deactivate** in the **Monitoring** tab, or - Delete all credentials associated with the endpoint diff --git a/docs/components/saas/monitoring/index.md b/docs/components/saas/monitoring/index.md index 3ddcdcad622..cc871a20cf8 100644 --- a/docs/components/saas/monitoring/index.md +++ b/docs/components/saas/monitoring/index.md @@ -1,8 +1,13 @@ --- id: overview title: Monitoring -description: Learn how to monitor Camunda 8 SaaS Orchestration clusters using a secure metrics endpoint and your existing monitoring and observability tools. +description: Learn how to monitor Camunda 8 SaaS Orchestration Clusters using a secure metrics endpoint and your existing monitoring and observability tools. --- -Monitoring in Camunda 8 SaaS allows you to observe the health and performance of your orchestration clusters using your own monitoring and observability tools. +Use your own monitoring and observability tools to observe the health and performance of your Camunda 8 SaaS Orchestration Clusters. + +## Cluster Metrics endpoint + Camunda provides a secure, customer-facing metrics endpoint that exposes aggregated cluster metrics for external consumption. + + From cf369a7994a592398f08234cbe6884bba8f8e64f Mon Sep 17 00:00:00 2001 From: Zainab Daodu Date: Mon, 12 Jan 2026 14:44:33 +0100 Subject: [PATCH 06/11] Backport changes --- ...re-monitoring-systems-to-scrape-metrics.md | 127 ++++++++++++++++++ ...s-endpoint-non-prometheus-architecture.png | Bin 0 -> 60891 bytes ...trics-endpoint-prometheus-architecture.png | Bin 0 -> 43815 bytes .../cluster-metrics-endpoint/index.md | 57 ++++++++ .../set-up-cluster-metrics-endpoint.md | 116 ++++++++++++++++ .../manage-clusters/monitoring/index.md | 13 ++ ...re-monitoring-systems-to-scrape-metrics.md | 127 ++++++++++++++++++ ...s-endpoint-non-prometheus-architecture.png | Bin 0 -> 60891 bytes ...trics-endpoint-prometheus-architecture.png | Bin 0 -> 43815 bytes .../cluster-metrics-endpoint/index.md | 57 ++++++++ .../set-up-cluster-metrics-endpoint.md | 116 ++++++++++++++++ .../manage-clusters/monitoring/index.md | 13 ++ ...re-monitoring-systems-to-scrape-metrics.md | 127 ++++++++++++++++++ ...s-endpoint-non-prometheus-architecture.png | Bin 0 -> 60891 bytes ...trics-endpoint-prometheus-architecture.png | Bin 0 -> 43815 bytes .../cluster-metrics-endpoint/index.md | 57 ++++++++ .../set-up-cluster-metrics-endpoint.md | 116 ++++++++++++++++ .../components/saas/monitoring/index.md | 13 ++ versioned_sidebars/version-8.6-sidebars.json | 22 +++ versioned_sidebars/version-8.7-sidebars.json | 22 +++ versioned_sidebars/version-8.8-sidebars.json | 22 +++ 21 files changed, 1005 insertions(+) create mode 100644 versioned_docs/version-8.6/components/console/manage-clusters/monitoring/cluster-metrics-endpoint/configure-monitoring-systems-to-scrape-metrics.md create mode 100644 versioned_docs/version-8.6/components/console/manage-clusters/monitoring/cluster-metrics-endpoint/img/cluster-metrics-endpoint-non-prometheus-architecture.png create mode 100644 versioned_docs/version-8.6/components/console/manage-clusters/monitoring/cluster-metrics-endpoint/img/cluster-metrics-endpoint-prometheus-architecture.png create mode 100644 versioned_docs/version-8.6/components/console/manage-clusters/monitoring/cluster-metrics-endpoint/index.md create mode 100644 versioned_docs/version-8.6/components/console/manage-clusters/monitoring/cluster-metrics-endpoint/set-up-cluster-metrics-endpoint.md create mode 100644 versioned_docs/version-8.6/components/console/manage-clusters/monitoring/index.md create mode 100644 versioned_docs/version-8.7/components/console/manage-clusters/monitoring/cluster-metrics-endpoint/configure-monitoring-systems-to-scrape-metrics.md create mode 100644 versioned_docs/version-8.7/components/console/manage-clusters/monitoring/cluster-metrics-endpoint/img/cluster-metrics-endpoint-non-prometheus-architecture.png create mode 100644 versioned_docs/version-8.7/components/console/manage-clusters/monitoring/cluster-metrics-endpoint/img/cluster-metrics-endpoint-prometheus-architecture.png create mode 100644 versioned_docs/version-8.7/components/console/manage-clusters/monitoring/cluster-metrics-endpoint/index.md create mode 100644 versioned_docs/version-8.7/components/console/manage-clusters/monitoring/cluster-metrics-endpoint/set-up-cluster-metrics-endpoint.md create mode 100644 versioned_docs/version-8.7/components/console/manage-clusters/monitoring/index.md create mode 100644 versioned_docs/version-8.8/components/saas/monitoring/cluster-metrics-endpoint/configure-monitoring-systems-to-scrape-metrics.md create mode 100644 versioned_docs/version-8.8/components/saas/monitoring/cluster-metrics-endpoint/img/cluster-metrics-endpoint-non-prometheus-architecture.png create mode 100644 versioned_docs/version-8.8/components/saas/monitoring/cluster-metrics-endpoint/img/cluster-metrics-endpoint-prometheus-architecture.png create mode 100644 versioned_docs/version-8.8/components/saas/monitoring/cluster-metrics-endpoint/index.md create mode 100644 versioned_docs/version-8.8/components/saas/monitoring/cluster-metrics-endpoint/set-up-cluster-metrics-endpoint.md create mode 100644 versioned_docs/version-8.8/components/saas/monitoring/index.md diff --git a/versioned_docs/version-8.6/components/console/manage-clusters/monitoring/cluster-metrics-endpoint/configure-monitoring-systems-to-scrape-metrics.md b/versioned_docs/version-8.6/components/console/manage-clusters/monitoring/cluster-metrics-endpoint/configure-monitoring-systems-to-scrape-metrics.md new file mode 100644 index 00000000000..054618b03af --- /dev/null +++ b/versioned_docs/version-8.6/components/console/manage-clusters/monitoring/cluster-metrics-endpoint/configure-monitoring-systems-to-scrape-metrics.md @@ -0,0 +1,127 @@ +--- +id: configure-monitoring-systems-to-scrape-metrics +title: Configure monitoring systems to scrape metrics +description: Learn how to configure monitoring systems to scrape metrics from the Cluster Metrics endpoint in Camunda 8 SaaS. +--- + +Configure your monitoring systems to scrape metrics from a Camunda 8 SaaS cluster using the Cluster Metrics endpoint. + +## Before you begin + +Before configuring metric scraping, ensure that: + +- The Cluster Metrics endpoint is enabled for your Camunda 8 SaaS cluster. +- You have the metrics endpoint URL and authentication credentials. +- Your monitoring system can reach the endpoint from an allowlisted IP address. + +For information about the Cluster Metrics endpoint monitoring model and limitations, see [Cluster Metrics endpoint](/components/console/manage-clusters/monitoring/cluster-metrics-endpoint/index.md). + +## Metrics endpoint details + +The metrics endpoint: + +- Uses HTTPS +- Requires Basic Authentication +- Returns metrics in Prometheus format + +### Endpoint format + +The full metrics endpoint follows this format: `https:///` + +- ``: The domain hosting the metrics endpoint. +- ``: The identifier of the Camunda 8 SaaS cluster. + +## Configure Prometheus scraping + +Prometheus can scrape the Cluster Metrics endpoint directly. + +### Example scrape configuration + +```yaml +scrape_configs: + - job_name: "c8-" + scheme: https + metrics_path: / + static_configs: + - targets: + - + basic_auth: + username: + password: + scrape_timeout: 5s + scrape_interval: 30s +``` + +Configuration notes: + +- Use HTTPS. +- Configure Basic Authentication using the credentials provided when the Cluster Metrics endpoint was enabled. +- A scrape timeout of less than 10 seconds is recommended. +- A scrape interval of at least 15 seconds is recommended. Metrics are collected every 15–30 seconds, so shorter intervals do not produce new data. + +## Scrape interval and retention + +The Cluster Metrics endpoint exposes metrics from the most recent scrape only and does not retain historical data. + +Configure your monitoring system to store and retain metrics as needed. + +## Verify metric collection + +After configuring scraping: + +- Confirm that the scrape target reports a healthy state. +- Check that metrics correspond to the expected Camunda 8 cluster. + +If metrics do not appear, review authentication, network access, and scrape configuration. + +## Integrate non-Prometheus monitoring systems + +The Cluster Metrics endpoint exposes metrics in Prometheus-compatible formats. Some monitoring systems require additional components to ingest these metrics. + +In these cases, you can deploy a self-managed OpenTelemetry Collector to adapt the metrics to your monitoring system. For more information, see the [OpenTelemetry Collector documentation](https://opentelemetry.io/docs/collector/). + +![Integrate non-Prometheus monitoring systems](./img/cluster-metrics-endpoint-non-prometheus-architecture.png) + +Using an OpenTelemetry Collector allows you to normalize, enrich, and control the flow of metrics scraped from the Cluster Metrics endpoint. For example, you can: + +- Transform metrics to match internal naming conventions +- Filter metrics to reduce noise or control ingestion costs. +- Enrich metrics with standard labels such as environment or region. +- Forward metrics to one or more monitoring backends. +- Manage scrape behavior, buffering, retries, and backpressure without changing how Camunda exposes metrics. + +### Push-only monitoring systems + +If your monitoring system only supports push-based ingestion, use the following approach: + +1. Deploy a self-managed OpenTelemetry Collector. +1. Configure the collector to scrape the Cluster Metrics endpoint. +1. Configure the collector to push metrics to your monitoring system. + +Camunda provides the metrics endpoint only. You are responsible for deploying, configuring, and operating the collector. + +### Non-Prometheus metric formats + +If your monitoring system requires a format other than Prometheus, use an OpenTelemetry Collector with the appropriate exporter. + +The OpenTelemetry Collector supports a wide range of exporters, allowing you to forward metrics to different monitoring backends. + +For more information, see [OpenTelemetry Collector exporters](https://opentelemetry.io/docs/collector/components/exporter/). + +## Troubleshoot common issues + +### Authentication errors + +- Verify the configured username and password. +- Check that the monitoring system’s IP address is allowlisted. + +### Scrape timeouts + +- Increase the configured scrape timeout. +- Verify network connectivity to the metrics endpoint. + +### Missing or incomplete metrics + +- Confirm that the Cluster Metrics endpoint for the cluster is enabled and healthy. +- Verify that the cluster is running a supported Camunda version. +- Review scrape interval and retention behavior. diff --git a/versioned_docs/version-8.6/components/console/manage-clusters/monitoring/cluster-metrics-endpoint/img/cluster-metrics-endpoint-non-prometheus-architecture.png b/versioned_docs/version-8.6/components/console/manage-clusters/monitoring/cluster-metrics-endpoint/img/cluster-metrics-endpoint-non-prometheus-architecture.png new file mode 100644 index 0000000000000000000000000000000000000000..63bb065b298be41cf37bc746fe631186e02e4639 GIT binary patch literal 60891 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�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Ξ@+a4Dv2c7>P-j4JX*~v$pXusSeh}UD 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 literal 0 HcmV?d00001 diff --git a/versioned_docs/version-8.6/components/console/manage-clusters/monitoring/cluster-metrics-endpoint/index.md b/versioned_docs/version-8.6/components/console/manage-clusters/monitoring/cluster-metrics-endpoint/index.md new file mode 100644 index 00000000000..0d08ddb2a24 --- /dev/null +++ b/versioned_docs/version-8.6/components/console/manage-clusters/monitoring/cluster-metrics-endpoint/index.md @@ -0,0 +1,57 @@ +--- +id: overview +title: Cluster Metrics endpoint +description: Learn how to expose and consume Camunda 8 SaaS cluster metrics using the Cluster Metrics endpoint. +--- + +The Cluster Metrics endpoint lets you expose metrics from a Camunda 8 SaaS Orchestration cluster and consume them in your own monitoring system. + +## About + +Use this endpoint to monitor cluster performance, set alerts, and correlate Camunda metrics with the rest of your infrastructure using your existing observability tools. + +This endpoint is a dedicated, customer-facing metrics service that exposes aggregated component-level metrics. The endpoint is separate from Camunda’s internal monitoring and operational systems and provides access only to metrics intended for customer consumption. + +## Before you begin + +Before using the Cluster Metrics endpoint, ensure that: + +- You have an external monitoring system capable of collecting prometheus metrics. +- You understand your organization’s network access and IP allowlisting requirements. + +## Supported environments + +- The Cluster Metrics endpoint is available for all Camunda 8 SaaS Orchestration clusters. +- The endpoint is configured per Orchestration cluster and can be enabled without requiring an upgrade or downtime. + +## Metrics exposure model + +The Cluster Metrics endpoint exposes metrics using a pull-based model and Prometheus-compatible format ([Prometheus](https://github.com/prometheus/docs/blob/main/docs/instrumenting/exposition_formats.md#text-based-format) and [OpenMetrics](https://github.com/prometheus/docs/blob/main/docs/instrumenting/exposition_formats.md#openmetrics-text-format) text exposition formats). + +![Cluster Metrics endpoint architecture](./img/cluster-metrics-endpoint-prometheus-architecture.png) + +When the Cluster Metrics endpoint is enabled for a cluster: + +- Camunda exposes a cluster-scoped metrics endpoint that aggregates metrics from all Orchestration cluster components. +- Metrics are exposed in Prometheus-compatible format. +- Your monitoring system initiates metric collection by scraping the endpoint. + +The Cluster Metrics endpoint does not push metrics to customer systems. + +## Monitoring endpoint constraints + +The Cluster Metrics endpoint exposes the application-level metrics produced by the Camunda version running in your cluster. + +The following constraints apply: + +- The Cluster Metrics endpoint uses Basic Authentication only. +- Metric names and labels depend on the Camunda version running in your cluster. +- Metric and dashboard compatibility between Camunda versions is not guaranteed. + +If your monitoring system does not support Prometheus scraping, you can adapt the metrics using a self-managed OpenTelemetry Collector. For more information, see [Integrate non-Prometheus monitoring systems](/components/console/manage-clusters/monitoring/cluster-metrics-endpoint/configure-monitoring-systems-to-scrape-metrics.md#integrate-non-prometheus-monitoring-systems). + +## Next steps + +- To enable the Cluster Metrics endpoint and obtain connection details, see [Set up the Cluster Metrics endpoint](/components/console/manage-clusters/monitoring/cluster-metrics-endpoint/set-up-cluster-metrics-endpoint.md). +- To configure Prometheus to scrape metrics, see [Configure monitoring systems to scrape metrics](/components/console/manage-clusters/monitoring/cluster-metrics-endpoint/configure-monitoring-systems-to-scrape-metrics.md). +- If your monitoring system does not support Prometheus scraping, see [Integrate non-Prometheus monitoring systems](/components/console/manage-clusters/monitoring/cluster-metrics-endpoint/configure-monitoring-systems-to-scrape-metrics.mdd#integrate-non-prometheus-monitoring-systems). diff --git a/versioned_docs/version-8.6/components/console/manage-clusters/monitoring/cluster-metrics-endpoint/set-up-cluster-metrics-endpoint.md b/versioned_docs/version-8.6/components/console/manage-clusters/monitoring/cluster-metrics-endpoint/set-up-cluster-metrics-endpoint.md new file mode 100644 index 00000000000..4c3f3eed9a7 --- /dev/null +++ b/versioned_docs/version-8.6/components/console/manage-clusters/monitoring/cluster-metrics-endpoint/set-up-cluster-metrics-endpoint.md @@ -0,0 +1,116 @@ +--- +id: set-up-cluster-metrics-endpoint +title: Set up the Cluster Metrics endpoint +description: Learn how to set up the Cluster Metrics endpoint in Camunda 8 SaaS, manage credentials, and obtain the connection details required to integrate with your monitoring system. +--- + +Set up and manage the Cluster Metrics endpoint for a Camunda 8 SaaS Orchestration cluster, including how to activate and deactivate the endpoint and obtain the connection details required to integrate it with an external monitoring system. + +## Before you begin + +Before enabling the Cluster Metrics endpoint, ensure that: + +- You are using Camunda 8 SaaS. +- You have access to Console and have permission to manage cluster-level settings. +- If allowlisting is configured for your cluster, the monitoring system’s source IP addresses are added to the cluster IP allowlist. + +## Enable Cluster Metrics endpoint + +Enable the Cluster Metrics endpoint per Orchestration cluster via either the Camunda Console or API. When the endpoint is enabled, Camunda provisions a secure, cluster-scoped metrics endpoint for external scraping. + +To activate the endpoint: + +1. Sign in to Camunda Console. +1. Navigate to **Clusters**. +1. Select an existing cluster, or create a new one. +1. Open the **Monitoring** tab for the cluster. +1. Click **Activate monitoring endpoint**. +1. Enter a **username** for the monitoring credentials. +1. Click **Activate**. + +### Capture connection details + +When the Cluster Metrics endpoint is activated, the Console displays a dialog containing the authentication credentials. + +1. Copy and store the password securely. +1. Click **Got it** to close the dialog. + +After closing the dialog, you can find the metrics endpoint URL in the **Monitoring** tab for the cluster. + +:::caution +Copy and safely store the password when it is displayed. The password is not shown again after you close the dialog. If you lose it, generate a new password. +::: + +The following information is required to connect your monitoring system: + +- **Metrics endpoint URL**: HTTPS endpoint used by your monitoring system to scrape metrics. +- **Username**: Used for Basic Authentication. +- **Password**: Used for Basic Authentication. + +## Manage authentication credentials + +Authentication credentials are created and managed in Camunda Console. + +### Create additional credentials + +You can create multiple credentials for the same cluster: + +1. On the **Monitoring** tab, click **Create new credentials**. +1. Enter a username. +1. Generate and copy the password when it is displayed. + + + +### Rotate credentials + +Ƭo rotate a password: + +1. On the **Monitoring** tab, locate the credential. +1. Click the **Generate password** icon next to the username. +1. Generate and copy the new password when prompted. + +When credentials are removed or rotated, previously issued credentials may continue to work briefly. Access may persist for up to five minutes before the credentials are fully invalidated. + +To avoid interruptions during credential rotation, you can create multiple credentials for the same cluster and update your monitoring system to switch between credentials, rather than rotating a single credential in place. + +## Authentication and IP allowlisting + +The Cluster Metrics endpoint enforces both authentication and network restrictions. + +| Restriction | Description | +| :-------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Authentication | The endpoint uses Basic Authentication. | +| IP allowlisting | The endpoint enforces the cluster-level IP allowlist.
  • Requests from non-allowlisted IP addresses are rejected.

  • If an IP allowlist is configured for the cluster, you must add the source IP addresses of your monitoring system to the allowlist to access the endpoint.

| + +### Error responses + +The Cluster Metrics endpoint returns standard HTTP status codes to indicate access and availability issues: + +| Scenario | HTTP status code | +| :--------------------------------------------- | :------------------------ | +| Request from a non-allowlisted IP address. | `403 Forbidden` | +| Invalid or missing authentication credentials. | `401 Unauthorized` | +| Request rate exceeds allowed limits. | `429 Too Many Requests` | +| Metrics endpoint is temporarily unavailable. | `503 Service Unavailable` | +| Request times out due to high load. | `504 Gateway Timeout` | + +## Disable the Cluster Metrics endpoint + +If you no longer want to expose cluster metrics externally, you can disable the Cluster Metrics endpoint: + +- Click **Deactivate** in the **Monitoring** tab, or +- Delete all credentials associated with the endpoint + +When the Cluster Metrics endpoint is disabled: + +- The monitoring endpoint is shut down almost immediately (typically within a few seconds). +- All existing credentials are deleted and are not retained if the endpoint is reactivated. +- Monitoring systems can no longer scrape metrics from the cluster. + +To use the endpoint again, you must reactivate it and create new credentials. Disabling the Cluster Metrics endpoint does not affect cluster operation or workload execution. + +## Next steps + +- To configure Prometheus to scrape metrics from the Cluster Metrics endpoint, see [Configure monitoring systems to scrape metrics](/components/console/manage-clusters/monitoring/cluster-metrics-endpoint/configure-monitoring-systems-to-scrape-metrics.md). +- If your monitoring system does not support Prometheus scraping, see [Integrate non-Prometheus monitoring systems](/components/console/manage-clusters/monitoring/cluster-metrics-endpoint/configure-monitoring-systems-to-scrape-metrics.md#integrate-non-prometheus-monitoring-systems). diff --git a/versioned_docs/version-8.6/components/console/manage-clusters/monitoring/index.md b/versioned_docs/version-8.6/components/console/manage-clusters/monitoring/index.md new file mode 100644 index 00000000000..cc871a20cf8 --- /dev/null +++ b/versioned_docs/version-8.6/components/console/manage-clusters/monitoring/index.md @@ -0,0 +1,13 @@ +--- +id: overview +title: Monitoring +description: Learn how to monitor Camunda 8 SaaS Orchestration Clusters using a secure metrics endpoint and your existing monitoring and observability tools. +--- + +Use your own monitoring and observability tools to observe the health and performance of your Camunda 8 SaaS Orchestration Clusters. + +## Cluster Metrics endpoint + +Camunda provides a secure, customer-facing metrics endpoint that exposes aggregated cluster metrics for external consumption. + + diff --git a/versioned_docs/version-8.7/components/console/manage-clusters/monitoring/cluster-metrics-endpoint/configure-monitoring-systems-to-scrape-metrics.md b/versioned_docs/version-8.7/components/console/manage-clusters/monitoring/cluster-metrics-endpoint/configure-monitoring-systems-to-scrape-metrics.md new file mode 100644 index 00000000000..054618b03af --- /dev/null +++ b/versioned_docs/version-8.7/components/console/manage-clusters/monitoring/cluster-metrics-endpoint/configure-monitoring-systems-to-scrape-metrics.md @@ -0,0 +1,127 @@ +--- +id: configure-monitoring-systems-to-scrape-metrics +title: Configure monitoring systems to scrape metrics +description: Learn how to configure monitoring systems to scrape metrics from the Cluster Metrics endpoint in Camunda 8 SaaS. +--- + +Configure your monitoring systems to scrape metrics from a Camunda 8 SaaS cluster using the Cluster Metrics endpoint. + +## Before you begin + +Before configuring metric scraping, ensure that: + +- The Cluster Metrics endpoint is enabled for your Camunda 8 SaaS cluster. +- You have the metrics endpoint URL and authentication credentials. +- Your monitoring system can reach the endpoint from an allowlisted IP address. + +For information about the Cluster Metrics endpoint monitoring model and limitations, see [Cluster Metrics endpoint](/components/console/manage-clusters/monitoring/cluster-metrics-endpoint/index.md). + +## Metrics endpoint details + +The metrics endpoint: + +- Uses HTTPS +- Requires Basic Authentication +- Returns metrics in Prometheus format + +### Endpoint format + +The full metrics endpoint follows this format: `https:///` + +- ``: The domain hosting the metrics endpoint. +- ``: The identifier of the Camunda 8 SaaS cluster. + +## Configure Prometheus scraping + +Prometheus can scrape the Cluster Metrics endpoint directly. + +### Example scrape configuration + +```yaml +scrape_configs: + - job_name: "c8-" + scheme: https + metrics_path: / + static_configs: + - targets: + - + basic_auth: + username: + password: + scrape_timeout: 5s + scrape_interval: 30s +``` + +Configuration notes: + +- Use HTTPS. +- Configure Basic Authentication using the credentials provided when the Cluster Metrics endpoint was enabled. +- A scrape timeout of less than 10 seconds is recommended. +- A scrape interval of at least 15 seconds is recommended. Metrics are collected every 15–30 seconds, so shorter intervals do not produce new data. + +## Scrape interval and retention + +The Cluster Metrics endpoint exposes metrics from the most recent scrape only and does not retain historical data. + +Configure your monitoring system to store and retain metrics as needed. + +## Verify metric collection + +After configuring scraping: + +- Confirm that the scrape target reports a healthy state. +- Check that metrics correspond to the expected Camunda 8 cluster. + +If metrics do not appear, review authentication, network access, and scrape configuration. + +## Integrate non-Prometheus monitoring systems + +The Cluster Metrics endpoint exposes metrics in Prometheus-compatible formats. Some monitoring systems require additional components to ingest these metrics. + +In these cases, you can deploy a self-managed OpenTelemetry Collector to adapt the metrics to your monitoring system. For more information, see the [OpenTelemetry Collector documentation](https://opentelemetry.io/docs/collector/). + +![Integrate non-Prometheus monitoring systems](./img/cluster-metrics-endpoint-non-prometheus-architecture.png) + +Using an OpenTelemetry Collector allows you to normalize, enrich, and control the flow of metrics scraped from the Cluster Metrics endpoint. For example, you can: + +- Transform metrics to match internal naming conventions +- Filter metrics to reduce noise or control ingestion costs. +- Enrich metrics with standard labels such as environment or region. +- Forward metrics to one or more monitoring backends. +- Manage scrape behavior, buffering, retries, and backpressure without changing how Camunda exposes metrics. + +### Push-only monitoring systems + +If your monitoring system only supports push-based ingestion, use the following approach: + +1. Deploy a self-managed OpenTelemetry Collector. +1. Configure the collector to scrape the Cluster Metrics endpoint. +1. Configure the collector to push metrics to your monitoring system. + +Camunda provides the metrics endpoint only. You are responsible for deploying, configuring, and operating the collector. + +### Non-Prometheus metric formats + +If your monitoring system requires a format other than Prometheus, use an OpenTelemetry Collector with the appropriate exporter. + +The OpenTelemetry Collector supports a wide range of exporters, allowing you to forward metrics to different monitoring backends. + +For more information, see [OpenTelemetry Collector exporters](https://opentelemetry.io/docs/collector/components/exporter/). + +## Troubleshoot common issues + +### Authentication errors + +- Verify the configured username and password. +- Check that the monitoring system’s IP address is allowlisted. + +### Scrape timeouts + +- Increase the configured scrape timeout. +- Verify network connectivity to the metrics endpoint. + +### Missing or incomplete metrics + +- Confirm that the Cluster Metrics endpoint for the cluster is enabled and healthy. +- Verify that the cluster is running a supported Camunda version. +- Review scrape interval and retention behavior. diff --git a/versioned_docs/version-8.7/components/console/manage-clusters/monitoring/cluster-metrics-endpoint/img/cluster-metrics-endpoint-non-prometheus-architecture.png b/versioned_docs/version-8.7/components/console/manage-clusters/monitoring/cluster-metrics-endpoint/img/cluster-metrics-endpoint-non-prometheus-architecture.png new file mode 100644 index 0000000000000000000000000000000000000000..63bb065b298be41cf37bc746fe631186e02e4639 GIT binary patch literal 60891 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�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Ξ@+a4Dv2c7>P-j4JX*~v$pXusSeh}UD zW-4AG#IaAvrLh<~s~Me;+xXXDq!79te1acxm&|fAF~-~9 zgtOP&uk9Ny22glBZ(NQyp$@*FF5lkRd8wQBy|YPmS+_dYR$go4;h;#!9v^?Q!~~yQ zUlT0A^Z{FNSTShm-y`}`!N<-kH5@_4H<;WFXIf6o@09}}>?5^ml(%?s};7<^Q zfo$&mJ42_>f)$3qpm+@-_7#XgE#NQ$yR=G+edp_lU&cK>!|rJkWUpW8n& zQUCqh2j4sYAry}IPbd0(+SY%!@E-s7n!ralE4mKxlgj}Odn znJQ>M$LRDK{Sw^L%O4{V$N$%%5A#nSKXIvY;-W2XzLkRWmCAwRl|yI^yH?Ulm--{9 z6+8O@27m*nE?!DSKzM;=-U4_1i1G*;nEOmzott|vx%y*nJilcUr!`pN1$Ze+Oja=A z)$hBri}>`n{NpdnNvZ0EY(pp-_fdLR7qly{ZQ?a)L9Z=;`u2mD>3H9m^6nRCED*Ln zXmd(Z1v!MY;qTwxhf|I^eNzmc77X$FhA0XrLl?;mTs_aS-}YpK0di7Jq5WE*M4iV< zn}@N;J%K!r(&_5&;C2qw;-c4;g?C)a1l~BSAM%rzv&(z~Kv}rMNZ?dM>WuAy#W=7i z6Bzfs_C>m6DXGRFVE%GiHVMG?bgAk6kykc+1b_U15l2C2t9=_+UDn}ZSI5H2XYF1) z5sgE(TuxEOhZ)#yLzm1Ks9M-z_g;NHsH7{XD>4?k*TUtHF1igqw`>oc7 zmRsC~;rBu((07V=Sq}T)B-9NG*z7-X9oso|!~a#p{7K#Tz??hUaYD)6&xBMAdu%Q^ zYh)3PkU|Y_2O=YasM~5X50r`iqAxS`*3bsfHWaI^+x_`X>!ZNbO-A7ZnL_Yk8KPaay3VhL-mcUi4sz5 zwmA=WGi)Xn>*fVYVKoJZCYP<-=T*5o&!~Z@5_5bsd>dnmHfX>hG1l(st;Jh5$UMJ1;KV{3KDx*4N8Q zbxoUtohmV#?tOcrE6!N4-rB!-ckk8l0FSTeJ6ngH6N+MS7m$=U3$)n(6AN#U?}vp7 zJS@I?Qe3b+>w%lq>tT-K=)K!IG?cECg%)^7nw~AK)}0Z`Lw61zn4c~p#Ef2ut9c$k z6>&4m{xpjHOz&B9lC?F6uzy*JYW{aXEvDR0WUdNm6a(?GTmV?aayxEW7fy zfgPtdOdqn~s<$ewor86eP^7Xk1<5?Gk_9)1UYj!vErvNUi;v-`Q$TBRGZchZ+@ zL`a=D`P7{YvLz~9gTF)s9N0X)K(nXxcj_EQ{&;2`(Ns!))M8%NWu>^eBTjGz^~m~i zuDfKbd9K+^(HQ_idawJ=H`U6ZZrkGOQ$v%!j5=I*QsEtGiu{`E*nmr8^PcF|h0}#V zCeL`!SwdmYPk(J+bN+>$=D@f0ld^4)rA3*pWymPs?OKcTVU(4iS13|l#JNrvX`<1P z4CN(pwX`owV0B1Z6Y?L(9DunU(t1~X=%;fN-Of-sGAg>8Yy3}6 za1=1=O&DI&3L)~OCY1X*k5wH(%92H<_D%avlZob!q&&=ORtzccq?bwFP+N)fWbzx9s|?rYG8vXy_S@526AFw*9N6CzXjzlH^yzROQ1 zaI|{g^oWTA=0tgu$pl7P_8of0>#mlln6)9Ty=$E&D>WTQ80CZuI?t~*PKwgZXcYJQ zN4CQ8hoVpryrw5-edVvy7T7pHEspXT;&B;}dQyrr(!yx`E6x8RwWC?H~oTl+8@ebucov5H}2Gh@wbES`GcGh%PPW(4)7 z{BMGV1K0~iKE1IHZN9$Gmqs*BD{Kg7dn=^`d@OxC;yL$09#;6pD?dTSq1QUl?B!=X z*RVx#TfyK0AE%8q@ay-{hY4GMuh$^p4g4tNOP-ftL1}%@Z}VsWBwqTD4)GX<+6rrR zKb!=>)v%KI7a7O+^!w6ZB)nzu7~LYD1Y7Tdb{icC@+`I8He|*3nJqZ{etsX$YYLU( zxPASkV%UvF zwJEkn#9?2{9!oHu&Fb|3-AUmzJesbs!CzWwQ}FCz7EOR@O0 z!I8rKK!Bce4gg@MUt($Z0KOoHSi;h_zCdk6+ImUKAUcQwUuT|HEak#z^*(uK73FmK zn0ni0eTUijFT+!ZPUyx8wNKE#Zg74dwF>N@<^fdZ|A*D>Jac$LzSTmWQ7{U8&^t`KQNT>#u3!8!$4D(%{6Sn=vS76h zTg8ueT&bEpR|iUw5+%s?{=k<~eH*X>Q0tHdy!D*go!pV zepk06wVVD3L*EYg!VbhmRf1qQ>`W_$Yh+2jf^MdfjyaidN04r_r10o4+|6vfJ;G=4 zq~-Sa3z^Dnb63B#Ys5;@{OV|Lf-@k&&QQaa`AZ|Lrn=R zlQIZbFY_#&U2yzZQpk}%zLu=}2CdW=qm+^ZRxVAy(ujS^m$ z@i;0$@)BFjx9g){q)vC4du5b%`zb(kqoAfQ0YV;na_>}Gc7WeF$EPtHdC+@gHtl|@ zcNqAwxxjzUBLTAp$fBNN=fU6F+Lz8bK4ip^9dKXd+EhUMp_GR7RDyvcYN~Z+lB|YYki$F*2}$Ho##ixz$#_XkPeD`7&^#dNd3Fp`s`N7D$i9XAoa) zU_)&gJwAGqCH|m7AoqY#EY;?8?_dvhw2R0;WCG%yWdA=_R?5={>|V0m z>oMXgpfCC0Fh6iw7zs6it_%FN7eA;_ODYxR2?dA z^qXhztUmSrKkTuBwn5X&eyBc4xH;q~pMfL)SUWvCaTxv7TV>pLqe8BN7~Hr6I15%{ zuB26*t$la?z^2>BNQHyER{Pp1SG5gjoxCsF^zTMeH4m1@T18icvfr*u8|A?M|$yEzS zFTY3Y0?^te@+OmtS)Gavh4-i}jxFxb^q~|AJ+#bU(P%b&4csP}Hk2p~xaxK!?#MIRW@15CP56b=bi|kX|2@#K5B(#SMcMg5TUv=CHWN z!Q5W~Tc43<2BPoafe+a3y=owiAmgFKY4<Cj9?5kAHNucYZi9(-PJV&AAKjv`}#A-az!E-Dp zLx3+2x-NQ>=9G+qHZI5Ho}6b{|MmLHLD!Q;cUO@e(8RelZR%v{SWN;f8M99-9_X02bTeAQ+a&TZY z6r#+&>trYq!r|ii^?b5*ZsHYy8hKVdX!*bkp(fw`T%XMPu?iY=NPFDB6?Pf$#o_@f zmz5hiGN3`7CyJ+TkfGa$H%OglNn-*6Mlb$rZ2U^k$q=h*;I zdXx|eCy+&K;4zn;97`w;+!hD&&H51ewL(%ql)z)ZvpK8+3Uuz5@$-e!dBPtYsb}rn z0zzCD`Er{RVB-Lts}X2neX0dH{0)qEUBi<(^+O;0kz9ywA*kdPDHkb~BMMki@>rhl zulalfsBRlFy#fwe;63+eOMgj_J{Ypt6?@^fR%l+k(wzHP`xS!BgP8Iw=^P)>v?Wn` z=C6;B08(8q>^Qms23=Pa&nfH9$_r2EhGRqG`D#BmKth&Vweb3_jz7g;4s;lgh;~PI z?8cjM;45g;DN**)ds+2TPl|s@awSS0d6&gEqWu_!hC z+gA)fyqvM1lUmqw1Sy0vvtU&~J8Rfl1A49L^V(t*`rxkV-nE_z-4$xf%FG+it>Umv zvOkPWE2ggOISJSox(jLWm%#7=${#`H%iTLYW5dYLx7{sysm=NZ8~i5U619TS;@&I$ zBXDgNH2r`|t0kZC?a)t-&|B78Y2}2OqObPPeYv*iGyRk$GzeH{@t6&)j9@8S&4I6e zwVWa-ZU*e|eImSm6XegCT7c@?DzJvb6zF8511I5b-WO-lr&i#zFQT7jW8(r`0J=Kz z<>#eQKffP_vL1Lr)&>;z1%Y2G{4ayv0ST9}@uoU4V7-A9;!T`yvS_pCKM)%UX4S7b zz%M`ww0P_Oy67582Q}WmU$4&wOctvYH*sY`!3g5h?m-qiMGb zeB-vg*YZZ18YbljbX7iz+ z;Q)s3kA}R0MEKysKac?h<8&Z?i(J3cO^gtJ%wQZDGCEGH-t0ZLCqz`j51WAOyD!6;xY%E_cjB@BRh2di6iXX8;8 z72)}1cr}3S0Ay}RmEOZbx?VES*yN_00*G!VWIP$yEJ^=Mv>~r`gp3?H7U&X?flsH2 z=UFV)IJA!2INi}*Tu)2%pejN){QR0ZD`7An3JIP!167&C3+i+tzy*_5%J`Pxh5XcP z+{EQVHq^|$7y^n`XWAo?ua=~DLH?0_z;*90UgGE7-&B)JeLg;Q;{jh|PgHJ#_W(Hs zN>t{|0W2s2Ulb~K|ILirGX+x8~*4w`>1wI3o(w z2k_(D=LcW19+TVP_$6P9y-xlmjG}xsWg$=!Hr>$H`mT8At?#+Afw7sylGY+5d}iEZ zs_02!8?C5pyzU|o?7*fgnJ3SV${YuSZrp~F`eDPIys3i#Bi#}gZAj&a>#s!ZJEQ=DsII-_2O7zXvx9g>(bG?7Vc#->W;Y8%TPL;3w+kP z+o-$L&Kz%|#`D!Y4_5V{wrXZQ_023D?8OQ@3EPsSV^_~7HMjh zYspLl%95JBTkF5M;>~*F4V&LO zjLZt+w2mwc1$bbI7kgV@tXfaF%$C+^B=H{bt@BN{?GGw#5sR_NjJGH*UeZjPO@xcop_+eapADV8t@3R+{N1Va= z*N%244H|{up3_TT(Z9=ShWvYOuC?AsLtC@vgiU8EWu{}r{bqX1>_Ay8CIOomYmET5PN8xV_hMsbN9pI~fI0HE9D^jqf<*O?+@uc*M|oK`Op*#Gr;K zIbg;!EmrR}5R|?*I^cCElij>6-nIHWpx$V?8Muqu`W_ zyFFXu5a~sq$#K)gSZO*&NU7Wq!TqlKPy|Wa3dmZ`vSZS{vcAvFzP=n3&8$D7*_3zs zw&q>y+%LlkmJ~Bu$zBgjO(WXIa|4*>nZ$?zYLQ69XgX@IWN~@_L$@H^D~fw{7-=Mb z)P7PHM@G=@XmGRch08a)VjQEV8+souw`L!h${^UUYCl?jeQbPJLJ&^@y%>egvLZrb z_sNT*9@?%GgO0(CXiE%e8G3+o@o*-+rsiZEdNGY;U|(!orJ;68LS9vKv4x`5-WlVX zaWy^Lb)aBh%WZn4#ewF5wo;Nnb*{&dL#pnpV@Yr;f8EIs9%gd%W3KE-QKICM8+QT#*%)y1nKAX`YSU{+5N?5 zXlH`cb1$N59^UyLzltN7^;qkMHyTE2tFOst>+ZV4-||*9*B(u~1hUgKYk(f8Q(I}D z{8oo+aOw*Qw^r7|^TrpiEP82H+Gu2U7c6CDag9Eprj8LF;xKgsE!afLM8+Lq>T?lH zbKnRqIeyZz%Eu&gRyE0#)T$AqPV$++98aJ2rNw`8+L-I%G(u8uCT10T+4PWxD<=#J z5ik%`+l2RmxADPEV$9_|R{EwSaVwS~eyg8RAhrt1ylOOSVv+(z)82*QW1Rd-^qG%YzDzMLU$p+YA}{ zG+R^Zt5KGej$X#c81Fi-XVw=^OvjWH42G2H_pFB+sE=1Jj#>4auclPg$Bkpt#`B`0 z9TX=p{#C)Tz41g>g@k&Ks%F~N?w$kTqd}*v70rTZQU0Xn8}g>qZG`~PXHoUJh~iRmIE@=Bo7rc{p`cp?`wg6)~gj%B0I^#);M9!RdzK=`ihtuM!w9%UNC7V5b8&&qiBT zHE4(&bxeI@m7eQV(wH3^GNe$Q(S=o{@ZLU4JN=dKh95#vAKV+)Ck{rMEO6)L4G^47 z$B563{*y6c_QE`HUfy`_^PLpsyB zX?#kZj%a^H|5u}*F*lpvf3U#$I?yg?JPvHGsIoiSEv?c2*kKqWE;Fl2HE~S9Elx+} zmf6yp#4>W7MHyoa(uEneD8C7X8n-6m#4PDftlPO7uOI`VPSfVI^Zr3N4ecqHZX9Zx zCL_)JWTMfKns-hj$-s5i;i*V?(3WptpjP4Z`-#VzmC;Gw4CCzcYYy%P)y~=e&GJqT z%binSz&aU!EIJrDBA3&q17E7uTP*#s8K1FBWzqPE&xT#Kty@fP5y_E4l9?j{-$r%>e!{DlVIFRPQzQk-phimg}9VF?4nH5m>h(ql|RR(i~U=(}2! zcXN7nbsRRLy{KCNE6nfAeVHcyq{KB`rEcJs!$aOU>GGSy8kKPa3qx^~uO77;&9r#J z48e@LEEHnkJ&~vXXYudTfxjRgoV!jAgAbS2jl6k$N7JbFu6J)+)PHny%{#Fz=}Nt> zTZ)Anf~!3b$~mTv=M;hvID z*6tP=xK^t?n7FHYwbUR8Fs{55EgSySA+Dud%)5j>h{gEGYr6-R_E;3GQE48Q<%K(y z-i52=g%k2eGo~GN&?N6yZSmMO`DUTEQFLYM_!;k{^oYhQ1X^IEON8UC?5D+BriVIk zv?1R`(Yz=uN-kB`xpg^aT2r=NNtBtXpl^2oUjPUG*HGS9;NXx5A6~YyUlqHss(5K^ z_JN6KJ zqiXwKtnd~{dM7!`9hg)wSmqHgv7aA0L3251Ll2sd%DmIsp6Vj`u6CumvT-0m$7I3w z;1NP0$t)-;Ro)<|#owKG=v0&(lrxK@uDeyG+&}i0`|&eZ01p7G1I z7P@jCSVEgFca(ai`_aZb{_5q@<@?*p{e@j*N}j4ZX6%zCjqlT`s@q99bKIMF=lQ6; z@RJn!+|Y@tjOL7b_u8xUnJoJ%RBLdok<(zXgM}jnY*^_w~S=4Y1ijCXt)elwP zPFPjt4LH;X_R2(~FI2&jJ18{~qt)en8S>ZsiWSjtyE1%L8GcBhiG50q(u_dGrMGD3KWu7y>AD9(Qs7kbWRG7 zH+n5Da`~2Zl~l81gnm`f#Z|M$M(i!)Dr=wq7qe!LHE60C^sG}=GeNsw7!49yo=ZoLJ98_{r_JPN6T-&|#QAo$ z+@KH5p7Y5)6MRs!E8SXmPS7a!vV`RrUG=(0EJpp2bU9)1?s8rf-JBXTbNb`J{(PYa zr<2rF<0`DYZIWa z8YOx-r6;@@mCMa*C>~76lEyuYAtZF&?1?;#ZY{#Pld`=dxifqhCn!hId5QZTiOKX{ zF~_RQwS6Gu0hlaFOoT%xcT+`wl0Q%G$;Nt<`P{)-hoi)fiUWSFNyP=@&$6Yd9`@JSY%cz0ERt2aoM%Pl}J4loFC;-<<_c9qOP=+a^sf4 zn&6dQy{|HER`R~>_VyJ^3WI=tymEqMrnH?{pOwJ_+*Ukp$asJy2!iCl&P^}f|D(UF z5{(YRJ}=MxT0ZIEEZH@jpwv2)u&1@)m`_S91EbMtTa{UFypo>K(72m=ci_9lDqua4 zDD7~2^)-s>g5C@ zCyfiu;e-k^cUllu$pHH@s4JW#l4A4yOt6wcwF9MSB4WE+0g>vAkYT*EFR(~6bCjH@xTraGdpPu-p7nI94hA9k)7{EZSdpX1Qj% z+AI33Sea2-h;ntlPvqDEk|um#_GRZ-|68A)9QQ_Hhr^`EW^AwqrsvCIxbbKCHK@ym zSC@tbCZAW^hH!=I;GABB{ll|f8Ecoi|NYN6EBCHG%>ELax>r3sUl%p#--PWr!NqZq zC-XX=22zNLVPLm>)&OkKA(s|eAF-6eCIEjOg>HCx9!&3OqKR^1$X@L|{`%tc&BRark2@v?8g3|MZoG`Kl^K9tQB0Mg=9;*zORxwBF zacebxQM;Q6T#+4}*Y8b2-a!yi7{0LchriiWGRC6aKQ1IcV3u{jwaaj@H-U`RmRPFg%0F@uC)*0ZVl` zC;*4hNxdrJMW>j}V**CiT>pHJF9Tn7G#tN2?OC7G3Bq5+=}=*xrz3x}=dT*-U83Od z@iU4HMIIqv=Qfu)ydH>K0Vb~I{{)2inceaV3c4I#x{d;QFW|8Ov5%Y84ZH@%zJLyo zv`b*lEXm*L{$B-#!9YGkPqY8urFq?*`a9$YsZr|y_VohfAfjZ80ET8w)g9*3lysq}U?!WGc)E~xx@^eV({#O?g%kUI{ z^Vwo6>M1Xj9Yzi#`;{*irg|J)O<@k5A0ILk6FfQBIDp;^LXxJiHM(iY>z2y8fY0!r zpxLI+MAYhO+E92!P{7iU8^%;4Z-&ed(-7JQhEc%H$gOZ5fD<#hwmK$k!fypNSR{rI zS&mrio1;|Fx#GBv$^z{&hY^=kBpXM0oguQ6^!qeJh9r}c%H9deLJ7^Y|t-+sU z?F6VOx9*bk9#AF?soeKDC;xk29@)IM_D zmA!tdZ`DA$C>k(*alp_6;R@;hBd2RtU?!B9l7N{P2miN@+t3C6qz?4=)xX3JWIR-a zRjNA;;;xDyc*2ZK6xRUvJ5V=n;6hgs+I|z+0R>u{Ot*3Z6M_c13H^|Vn3fo_53Y86 zN7-4Tg7_-XI`pHssv-lXg^dYyuo9UQO11%i9d~>IDtnoB17H;#fb`mK0~n5m3g>@p z_{ZRlMhKxGl-v*g2>l3z#BYTGoo*~x)7)F2=VsT?iH zmVgIUl1^}_GYDBHnYdK|*#Q+Yl{Iej2eY%@lhr23TDgK46?vl^ejCV80B=0j>jzMU z76eFZ!GnHYH5k;{@0#}C0UT-2J@Y4P10>-ZAY5d(;Q>Gc_-)hI?JJX4)8WGGP-nk^ zMi-zkyRzEhB=9Y>C$@H`;S`0UA^3l#I1r6c2wCoK5m+2TSiG*`UrK=!7}7 zcQ9BWumd@9k9Pnp=XI$F9b{5sMJ68=Khdj!f3vU7qNZil0$Z<}`Cr@s>{_bf48*|J%yu|+?OoQj%HqhQ^l zz@=&GFZqF{#siUJ3R}HQI0}*yCppjk`g++xHJFMUW33q5vgZr+3fbM0r$es6cs^?f zF(|z#+$5H$qXXiUxQn?^kIBH$KtFm@@8KID8EN3xdLp%6p#x=8F)MTgdTLM$xs(;C zz^9P$r5DuwUf}@=dAz%PAt8?h5mx9&WmNhal){F0M2Hz9Ri00UtTB2Vx$uWMk6xhn zZ9-p--dd4u|1o(BHRwVz`%M=xUhGc|*I3Mvl?HBJ2(!Ry;Fa2NF{kd;AANI!4@{dU zd|#vC_>Z+CpsQCvNtk1PzDe>t&`88TFhhQLzu`tuD*O0zehW%8ya5FlfV2c*P5_#} zNp77s&%RAs1|V@_!JzMAnBMX!eVhg=7!{1pKlCC{I(Z7Y)a+M|4fZ30e6jPvzMjhb zhCow+zj56FnTH77XX@E!kou9&1_PKF&%-`kau?th8NL+D{-CIQ0)jga0PgPQ4I#9lIKfTi zY;MKqc%b}b_McW;><7N-E|}aEu<;era8@pxJN5ZQL~}T=qy{DCOLEl$RFfp}$-E|W z*(PLV9vj_dWADCn>a9%TP$UR16s;RCkg%rv=@yhkm>f?22-1&H`#u!BEdBB<-&x*J z-Kg(Fe06zPRxlsOm-dLslXzvjNGZ<^wET+cr(7SHxi%oYxjrW^4*HHj7&l<$2P}9* zk7ehAbp`bDPlGC{($r=*%WfBa4}H7wXFU#>wOspm&n>J@AwhP!l6poZuyN7M(*{_N zFUGi314$f*DpYbV%^tF#xNH^gJ*J#cWYGpQn~)DqC=>W1pBI~)+*0bCkgvbA3oTFj zT)uM2w#r{CyrYH`9BaFfH>)umly!VS|U*xi!_zicoVkeeu~j60KvUplRAZVbM`$%}dNZf)bzMI=f{5 zD&FH&Tt#hdW6G4!X~rJBTm!Wcc=;cU+ukVKvP%uF0P1*#R?7#mLaHBS}0(&G6)0}5nHRM452^(2?z=S zAu=aKuoeX&RYb51snCihBryyLV}ezP3=&bpkT6&RM1g=15=cVe?x4ND_PziAm;2#< zdO2T6a?U>I>|yP_*Lt33Su7#|p0(Z|lk~)l9~O$M09?)nDj8M9wg1e+uT0tIB{9qX zV)xsB z0o(Q2K<5EG#;5VyRQTr0s}3Lf z!>55y(BslYykjhAI?*jyTfml^1@!clZEto!m=?U_W2>^FgNAH>HZ+$KDmc`QKioeC z0b~5vPaWD%taF71mT(0-z(5FmkKY(JJY3?zPLcR1%%Tqy1vOuBX&KlNdT)>B;9XR8 z6L~yxCsTm~So#NU2iCbzV@TtL7Yn(waWkT2etUyn(up z>S*%8!-iGcEDiPSJsN()@O2fdv@aFM3(`DvxWlhC-BG2i-k!`paFcw>cuWdXcYfRe zd$4SBzcCy7ka}VcxyQ3e>G7Ss$xL!Pw3Kf z{&cZ*_5nE>$FIdz#q+UrfCj&uloYu%4re9F-?=&^#Z^=buh~{$rnm5im-3;00`aNf zSc1}yQ*_bzGUuILzyxy!hM^DYeVi;N@UJ$=-j}>z%cx`MHad&;{Qk1aStk=M9Un+3B33!tVOmj-~VTyid8OJRbuV`7I zpgVdW)b$QtY?nw6!~!@&u^$HZywP`Ft8eNRJ36&D!%-^3QaSc{HBms%ez^b9*pANm zSAg{7;9HnSas9Xsm7k%fE!Vt_T^LvU!s>BF{hO_!+-p}v?cLL)Ww?V_oPFd**6+PAmp(!guYvnb_wJgSz(`v!ni)t~MkgRlF! zGUKicW)oZsEyB#>1&Bhf~cz&Mv*2zmEj9y_igN zUU{nC*Sq2ZDa_wo#N(}h>LK`^))#YF-o&+4sQxje1dW*cOWLbT@EaycyN<#7dzNC7 ztD=1;OY1O(iZB+}4OM$tRzc`@Wsg}IWHDylC7E#-r!%@LUX+*OdriB|y&}S!=~)VS zO$b3r3^>25pj1yiHTJyz;XtD)v@4j1*juwWYwD(2ga`zqS_6G!em(cVKrC~rKA@l1 z5}Qk2d5q{HMX~|At6D=O=FT^~?imtwzGmCado{8JsH%2YgrM+%ldRNuY8vx~9Xmxu zMf5~hwW2PzVJYALNTBPgvI_ z*wYnX{cJT(%uG>^7)|uM@q6LX!9om559KE`-S%~B7ei3%D3xqYZ7Cb(^zuUwOcmlI z?huwrq7>Kp`Bx*54a6uz*SQ?=SziJw!X~HR%IS%a)&>(^U^#DZORo(N2-*0wz?i*& z``DX19QgqCwH3jJq%|c>&F~Be>nB@#&_-GwKzd zDB&jjvP(fB3pGn04zuk14oghDJ`==r=2*zc!=yn!1uuj@Oj#7zZ57>#>cD+v)m-m! zc%?_xyeSo>MGs#)u6NK$_AK+E)v3C@V6~#>B65Wsls5ZF%n|C^`+@uh~|sT8~Q?C6a~@DJU_>sPI^j!|U++UQBWjT|kE zEFV;YX+1~b+EM|v>8rJ6goWGlkFtz$RgcC?^i7j;HZo8uFtmg8^5p(W|u4YS?tFqpQAxUF50=7SV_$Ib4MN!L|I5-gwN~7>I zhK1@Pw(xt!X=Nb?GFx`mkuXrzFz^4soGHGE%qko~AIGup5}tqA9X^DD7LOODOMPd) zJuhKs^|j$M%?o3>zX&; z6tvmd{(O&!Xioe!G*7FKVN0~Qn~y6GKtlk4^zhrcus>$IwU(B;dRUTpp_2$wi&4}& zVdvUdaxEbXH^W|@dG6e}pU(bluCxpwX%_Y7oy7Mz{X9uE3#byrV`@q<&zM9!^v&3o ziBZlUv-j!xujzxw0`OKmO3F46Qgw$_z;VjjgpE+DKFjJ@hpGI!>{${!%UAdtDz{)9 zdBd8Bw|hooM?Zr_JB>Y(Cm6De1yvYZ&O6g=r*43E$f9SQv!)F~v+EqkCF99Miosn= zftMbk-9z}>A9zY8ZfpHQyjA8CbqR^w;@KzTY)3%Qrm92aD{P=P_><)qFVd$>-@i3~o zxwq3*Nva{nKjI;8=EHS%b-Vb=s2Kame)^;j<_$dh0KxLdzwn7JWAu6J7Ht5ikRP?I z$ZA%0n8;&`CXxQdWyDUVQDqz3+LdoCGEz$hFz>F;(r}0tm>ecIUhf&AOq3JKM!1}I zCX9Vh#GYVL#a(foLak=>jc8wveMQ#HffQvkExFtiL1K-+XjUSNq`TJe>EorS4!Be% zv+lf~*xtEYp5fPT46;JZ-`E&2jk?JX2~AeKiSB&bQ9>YE%AeP^ML|eyW%AKiA@I@P zmTr{_&wW!`$o>PLnBJ5$4Xi*-Q(sDz!Q}ntDl-tEsWwj4d}MWzxmTg~PV?TRpPtn# zBA$r~;I?`-(@F>lGnY4Yc`2B0!vmUAstA0dAL*bZ_7Tq)N}Q=~FbgJd(( zw)l=6@()YD)IKKDp~uP@1aINYv$}@q#G5GyQ+_@R=@BcP$j5F(;eHbJ_n0qF)jRFN zT{xBuDETMQI|lcG{bp*kpFqNxIOyx>CX<(6pOM+h=VDuOn|ooo0+G7%p;MPQ8Si1$y28DN`h=&ef0=97{$(Hr?=sPOW>Q*1;c zfZ)}&xt5cLiJgLn7%yzyqz~#|DJw`R+XPZ1)iS`D}>?`cC_g^8woX;RxvXh znqy~L&whPuh)x}MFbsHHO6bmEptv?piPgNIN&TlXdsm@=%tsP-KqsxTpTtU0PF)QC zFum=tsEZ-wz_?SK%2pQEHvRe2*zuebH}6}^&IaW6TLBW`AGmQU>zz&Kxm>tsC<83H zgD!m@VtM$`kwc5J29;{Z?<|m~Huc0-)>Hyuj4sIL#py{c6V;B*;g=h974kxbOR^LG zsIOzZXGojab#5ymezEY8G#?+d;Jbhf5Shbu#MhBovF`Hrs9U;abfHgzBARJi5ADG;S=>rV0MP%Z|@uE%1_iMGZk`s4a)E%2qkrV}k&`gpL9 z8;Ne?-2Ee4t&XO|%x!&OS$C0Y$pn=o{od4n64{7lCv>ID4LlU%cwG*zLjt@vKfPH6yK)a4XCa?TAZ}g zbJ>d(X0V+P??1-3ePGrD##e_)b`Q#RU=XhT{Kyr%_eN?nnPNZI++F;}Z%*nj-vZ8} z-=Pss{!{__da~kRxgbG=m(T*r8Q6f0>{r%2sUxmRZb#uO8+65&eFu5gu<4ppbZA*W zoK4SCdO~WCLOijVsf#18B!*`EHk@>`;Oi(^hfD}Nn5~re(j$;d(DTi-FHW>aGS5?n7pUjqp zt~C_ne~41L+En9u{dMK(fS^{HyR_| zVIU-7ah+CjFRUev6(K1*E5XyhD9f-lv&qeej~FP6KZh*8_B&>P&WuGYm29D+kJvpc zEL`^f846dNF2dR`mqt$S(x`g2igsK7aW{M2HrxcDT^oMQHUSQun+5EJ{s+a}1HF=& zgN6iiUo1w6=a^R%iDgeqv!II@uj=N7B}?NWU?e9c_)n=>?49`)rWf5S|F6fx>1F(cE0S=rOF z1DPEM#=e+77i1`WkN#5eOH}iWG9xHCMbQ6D@wJdqZSn6O$93`AL6l>q1FLnE$5Se1To4NKO!aJT-Ok&LOWiZLvbhBp?HV%&U8@?9tl76sQ21XU?FD0M^(G4~klEHZ6gW1sjDHJTg z;X(e1@NW<)NL+IU%+Qw~2A55QGpM$M&-WDXq7U$NKkmQ6@on2@yMPHlpo0jDg}R?9 z;{6^st~Oed`TO@(vA%PE)b+z-yY>JGMBOQDC3fx)Z!>65FU8uNVO%=yQP;AK4{WG^ z-Q)Ua`B<4*&vr`dZk|!#pXE z5%kEZs5H+KAgZqmC+aDUW;3#$Vu|67WF3SswlVGkqOua#$C+8&;grIBnUVr?FZw<^ zAdADna`j_yvW__N5|p*j&`YGw#ySj4JW~`E!h?CE0ZV=(Pix!bJG!h9e6#g^LUicE zBJ>SRJ-{29(dERAtvmS7ymJYLR%3~qQm=m;5C0xo;^G|32kwyn{cGpXZJQHv`{y~=flHiaJp6A>RV%9Y753Iy7E$w)a6&R+q>> zf1=j~a!=b{7F*A|T)yv^_H!7qH?$1Cp&wS3@ zr(_<=Gui94@wB0ZSK~WTM!g6B4t`@o^wio0^n`CKSv%7dN&L~L zH|ynmPIZK0EPTTz;9S_^5l+xhJCNtd9dFKD2uWxw(t}FBy(%8d_~?VSPMqPVPx6bz~B-7(`W?b${cZfbyq!kJGofJBtlPALsnrH3JBLYS*(&=X$ zWI3ptqBzAoO;jCA%fciFps->qgOrd%+wNKc>ehb$gGaWhFK&;AnLYkiB9edf3#_yi zaDJNa`~?JD=a&~D$*gZ5Uo*9Q>|>orT)yhGaP{#0hMEpdCkspN-HA$feyg>vf~;Fr zAuicJZ!lh}VeT=b69X|F&2OG+aiD`6MEqtV|h#0T| zvp`0S7e-I$Bg?hY69y*B-Uq!+865ZQbXpcW&Hr_gueFr7{2Db`iVc1n7dQ$0qpD?# z>bP`0ecx3OXpx>W(NtSzPb+QejbE*YeMo(+(jt9r3IaE;_j4T3Nz%Shd$wTh13j9x z^v}JPUkvCn{EwfvSL8yhFzIud))tWLdwMJyRm%16tHE{r7-x3xY3)8GdfCC+h?H=+ z7%$o*HCfRG zS51osn84dxfNLA8@^)h0IYSP=0##FDMX9EYDQ=>PnmbVG}%D(~UbSFN|tGrF`>%rC>TAf;L-6 zniE2=5|rr0ZnYjXz;r{6u$~J4Lj`WxLIIIF(Ql)Osi)gfG5sOtQnTEIUy$;eX7iRC z3fYOZKy)l+w{-w!S#z0#i!;cH*XS<^1Zo?-KzmYkq<#+D`yCJ`t%0fisJ$QxP+r@w zZgG=%%>%Lndkp(xpA^2XL3?iaO>I3hDz(?=a?)Xkbd#5}fBBKf0>&(mQo9s+@2bE& z+awGj1TZJ9C+nq*le?U5EXvoM!5%8A9 z2<(8a9xD+#Fv>@b?}Eu^9Z{uDeKn2EoRm86k%n!qvI(oa2>z&zf`&47&OT!Vbc}R# z##LdvkLg{22tmrtmnw+>AU6Wc*-dAi?ocb0!2BZ}YfRoVTtD=oh_-(Q;jlbiXB z_(HjjG(0RNQsuqzT)4;#3yUo0E&D?6Kx|4)W7I7$^W#fL03D&W z&R?2QHe44GPRT_DP&&<{APxzal0ZIfw4@pDBy)AD$!c|7_faAt0_2ce@ujbW~@Y2-Kgb3%mx%%`C?Rn~l4&zC}?`&@Y+ zm9-CS>e|j|K5YoQJVoqLd!^~#Q{WuF`n^kNJ5`S~TaY=v*tt;>C3~)%rJ*0jaA07G z5E4K}3aMb%K~ElXuxQG^HjX|+nDnjXr(+Ms(W|2rw{V<$iie$Xk?sTeX(oGr?v~T* z?vgw>Gm+ud1pC>jZL6mq9s4T@KeKt-@!R7cd)2%{f0WtWZ#~!C-OkScc-^KSPh47H zJEhQjrp?_f+?iAk}~^$T4d7K1yds|R=gX0^=_D7m%uWj^W7_pmDPu4*u>8C1@59jqYr;+;TGl=#T@on<}?KC3z)?g(N4b$_sTe&nYtFz zLSn>?UOlI;t+h{=H~Vo;p07`>YTM=`Jaz$d|N9}d3<&cKzf({&|9~dzf2^G0bEBFM zjNeilX1_ld-ABZ%{&fp>Li1sFzP7qgaOAl7WX{FdCE~mO0Y%Q8F;-H1hjC}r?E0yzO+CTTc$ADpTor41XAg$!Y#(K&U0L*;)_uvZQR+?^inp+xSsr`GN-zT7KBR#{J4~fS<`ev&hpoWB z+wJe>8Gu;!fQW*D7TCo+90I7{w)?Z?V*78!)o^9d83;QbSItf!%O_pg8RRVrg1Pas z!IpM9ug(9Dc46P!8CGHGI0@eANkHv~_dN`@=iaED{`|57J(yreZy9e0A-(#7#fzox zgh&Ol?39>ntle{eYpl>^j-N-0AhEBq-=b~h{p}yO*N2j-#??F!-(WW%A7i-rFyB2y z&}ZEdhO=r<^tK>0VmHt2bnq`X@`Yiaco-UKVNX;H*UiboM(-dK3%{tJ^*VD38m~B8 zAR;!D7Kw9;PBgzl@#ymQyxHhmZlmObD5Dd#i9>WA&mYBOWTD%CXc@buJa}GefX-0J zFfj$<4}J-T`G~@;LMpA=m@!VOF@tv2mMqw$n*=g+*Ih1;U%#+_IFdCImtk_Lb@6)a zH!AftjQD*xff6uNd+xb}gUvnJ&?ywI2`Gpi@Px>`x|m3MF@f_le)+xZ5S@mXdfrLK zP~x!-#qE~a-?7aqUc`Bp-vu;Vf@y_Y^9=eLyZj*jYnZ7E-;&ZrnY|~Rb9h^fGsbsR za25=Oy`4@xA{E(w3Rdk&D-!Z&d<2X}dH9gBv(tFlH;Cfk#!V169K<_<07LiI|APd% zbgP}gQoMGhE|QinEh+SHi;(r7OPYb^(A*n$w?=li1aEaZo(BUC-9pv!l8hI4F-ytW zAw!;%RGoSfmA}mu=Z;M%#Op1E=JDDHcq3C|{vJGs+3(8FxT+wLNxc*u(^)#Ixg=w= z2%VgZ_6&uP9o`rN=|nmk+jk7epxFtKLK6jMQ;kJWa&ZZ+r`nq_ZVutrfOc++`y!|1 zOjffjv7dKdmsmNiPpt^=GmA4Of#uL_t2L}RrZHy7B64}yYH7GjQ1HN&u)HXQC{^nJ zrPJ8yNj+b*_LN6C`r9Lrvax{1df3tgq!A5O*HF_tl5WuAGljbGS^c-yX zq*Mn*T#}_tc}Fu#s0~9Q1azecD}HV#EF7kBOq<^jj^POrS=-6Te=x52zO$c#U$V)RSwZw-{uMkHjv0 zlEdbrkF*P47NUg0uPSG0$Z!zm?(>q=jx@~DM54-!(1ME-y`D~r%TD}^085}8b|?J6 z9zHK!*}{yhL`6&>-!jRl(aPAVs&T+0^TL~ac-Q5V*0lBD_U;6O)_=lO)gjxD=bUad zI=+Y4!@oW3o7aDUF^c40ATjnfGjtsNtBQt#$nhEmk~kHlOy*{$)6JY`?F_7!PS*M#@I#d(jZ-&9>`c7ft4gdVE9>Y{U`~4cPMIK3@3~X! zJ^ca*j%^8zFE~*84EkhB@pDdMCzv-o+nm9gSclZs7uyxe%&Rz=a>~<>VF$u;OTl`X z#bptBgvwwcsL{C`RgF3-=4M_lINv*%ZZ>Z=cAE7?Cf1dnND0p47;zshEYA52yqOX@ zr8Om`t%7W?X;OqdXjsdT&>`Fjk*jAb)`yO_vTP*mpY^>{72CRmh{Extx!t~HZ>*Sz zb{HhUaJuF)*8J|cW2A73)*tO**h`s35nLF2vw0R-!@d?bWP7AX9GQoe4&U%^^Gm7q+ zYz|jcYeCq|$a?$`k-F$LGg~WIASW@Ru!f36rk$dE0?CR(5WgDDDw1p!j zad~&O_~#*0LKO4y2$J7NpkrP1{FI}&u~jki3yPp-O`uVi)nn%omt7#vW+S5a*|WzD z(v|Uj!hZSe^+gfmi%O+!It4W{5F$+A))-OSc8e=f($}L-!u;Cm*(veYPPHD`m_^XJ zj0^CM)tn4Gs_I3#N6+jdy59poY6afHn7!6O@y**j*m{5ilu^`}Deu4Nh0jW&-o-MK zV3+!t`H@l0XR#88Go!qU9K5#=EvA!OGs2eKy3k&RN`Hp8=0#-$915Avr{Q#7$Ic-1q$Iju1Yv@N9Z=asd1hTlgvLdVJl%%VAzwUfiEJ7iZ zNASmgEvI7;aSi!-Fjww#v2_R zL@e%g286R!b{Emnx+LPyRL2(4Eh(9H4=vansjOypyZAO17C%|4(=PHIQf){gl!lG) z6wtY1cMy$xQ-VHRbG2S-*W0lhmCO$_w?_$FOzFu^ig3i0LXuT6;_--YoTq;+uDu1e zjZG`6WZ1>`c`cP#Dca*^Lk26}gP_1DrZClpBpICr9gN z&jk#|WjR}4gxqGJ+ZXE=;dVUOKBBE%vB(h4ZnM!-R2T6p36q>Si**(F!U3m9v0-}| zkK|xv6wo}_v27hT>_L+x}y*)dP3$Ww8v{|%Ah_CETjb9XN@H`dV zBDnz!>Eynh8s(;{DNApGlJzLym1H3;c4=&RVbnyX={&b~kC{BEz>9XW${jJ~-seJy zC$?0s z_NAmXWL#pV=xdwt2T3|!*bF%|0x68pn_3W0N=&#=;`_K?EdkP!c^s zJ62%Gl8k0{x%E>qV{wl2z(1y#f4o4Morck4lqEsdF0urg$>Hskh*#M?EC+PTmA{qxZ(%*FiP0 zo5Id5w-`hf`U73fyWds%2VM96;XVIyUEmrZDRs$rsGI3`)FHEJ_mqA0ThGG#e@cG2 zN8==DIsQImjB@C<&~^Bs z?)r;76>q7(WqC3R^DYjDw`UfMuw9j&QXdcEGkD1hzt|J3*~M`Zb#Q5M%J62xaptbb!3q+08-XQC&m2W7uxEjio`+lqV+qrdkKiJIPWx^qP=RW_2t zLsT1nr|qpXqN6@P9N?V0N_%bEAI(>GfAG%%NjF#rFdy9(8!;pA)yi0nq$_LEGeIW9 zOXpOuY^n4X&;aXx6AmpOhWBu%u#5||qM?&-*VX_P`MfOk)hN$0@}yq_)q0w3&GkKf zx)FT~qQ}lHk~$h!^E>V4Bn&rU4mw7m3u3Omg*q|gy8<^i`EFP6R?xxE1L3}i`Db;gkD@bUl zzY?7Te3@r!)~)0lKLJ4T-Wij&EN)O=CdQ(?@e-q_A&gF*oIT=){YK;2wPZL}I$e|K z+ZVe*?Z<@YOP3=E+!}MmfeFx~54_(BsCp{B$rV4aqf=Td0M**AfNGN!&#$=s{=IgX z#W2^@>Q@VmD%~!!OOpA|%Fxw^+48lk^^6ppShBbDYx_QrA;@pmGWX>0Zz}q}2cqC@ zKm4*DV1Yj}{s5&Z`OR&hzIf@ls$m?ya|K9@?jQtmZkU%j#&o$Herqt}-16+i@WD(y zB12zWzId{*h7_O^H=-y*v_ z&eVJB?@;d#_5oe}jO&pWuhKtLvnxhNV>@U%?bwFcfIhaB)uchDBI-hW-e-{)tX1he zd)NH^_6}!TLGoE!2UYvI%AX$!e^Q>a&#F$L+toK{N+0LiSia+q^-`kxJSAlB?Cp$P zGSYYQy3}{TRl9e*;}<>f#-1zTdC+07mv4j5mpoOG2*daAb(eQ0Ju%W_`|l;apq5)% zXm~&oWeygGVM7wAFswA*xyAz|a5BX5Qo>d58ovJs;I*uf(^T&|IokETij;95yn6&P ziG<&1yWi>;Y&mM%n#&DUCT~HW1xn%W<0FfOnevCvEi>2HSlBG1ef2VXqcl}o;JW8i z4S}t2{5wJ@*p*kfV^!+Y%__uy4~VV zbgVzpwgOLlVjR%tu79ZqyzUpl>-dS@L`A+OPaF68mAD+iJPKTW%}fQ%SLM4@9S4m~ zzEvgFt=aZ*R6TF{W30edMeFwd+1wwzgy7Rl*-i-xZh~G4-%Bc2%cm=4whq8-GK4+9+BZ0V z$|2LTa$7*05nq1-INn#9j;LpwX=wD6IVs=!UYsHKzZnWlecE6c=|C?7`Hv#@;n6q*PT#O7Eav=fHZvb(x8V6jp_pZKFyH_Q8E9(6G9_Rt_pDaW__J>PA zQSwlr4j7cAK+~`O$&S+eR4v|bQ?H#+bvPur>gMjB9o6Y7z0-QMvuaL5d>YR2kgbNQ zUid%S)GpxhzDd(511G6{>Z-a4fq!jL)v$`akGyeC>%UdCBIEtvs`_uQ`u`h%HD-t3 z5|(Dy>n7-b96QPln2BUuvfO4_$_{m1UeH^9@}7Z{=uJ&;(*i@wOufY9gD-1V3*MUg zo66$+ti8~Klb60`EiVlfoy3V}B;$R!Ika<~QQO#1qonhFRLbHzhX(;ka%>p^x4czv z`$|f;%%k5Q{-oK=+@PGhYDzh#eO%vGWu6}Y2!?M#(HC2;HkqiM(bj*ndY8&RsOZX< z4uULvZ;ux4zqX*;Z>Jnq<&wyI$8uS)0|NL?q4zx=oOGx$lm zLZ%Aj2(A95G_Ja?NhP}sk~F&+)v4^>KZ|TCUa_x}vc=u;f8XTq`{e_j3s4EekDP7( z^QVuC%v47LYh=^^ez;H9ZCxqx2Zz{q|5jTEuaLYl|2-Cp^ZHc=|IHd%^Uy8W-D>ZushSN$K|zVn+|$8Y^PvDq+_rw>zx3u;3VCVr0n91c%ePWndLR8W zUB@RA@K#OTOR*_c^JbRz|Hns9ry2#=Qtk6@iCvzXU^q)zL(c~IZxtFTR?Vf z72e9h!Lh^iq|u)o9DjsyaBT3~{0DeL+vRzWgJZk7x1r%_Q$s_E)0YE0y#3rcI8Mgh zv*EV2wh_?}b~~||H}-16%XA4zsjCUR=Qz6T&z#_wNDvaZc3b2?(S=^gYXU{r;{Qb`vde9oS!%P?(ax`&9NV2HE6!u|LowE-F2E{0)lUE zF7k1>A@rTowp=w4AGX_c&HR~ROc$qI-04Hnojfk+nwq^QVg--;ZA1=aU3sFf!&1op zQ1AUT$!m7$zLf2~)`!U(8!vk+MG@BQP;0Qz%G+PH3NKm{@7`>bhu=bkr>aVs$F=W| zR4`47y^)nn?s!Sm|$HwtGhc?UM`ea9s^aJX@M z(n-;Y@5#lfDYM!?z|Ssqe>`VW{Nyel?27Q|2tR)9p=+P}BE>L(4DaRPG2J+rIw~K3L$! z9&W~)w_iy->YiDN;oGS*P3Z3#pG-rJy*f1}*^{NDbT{$#f3c((IipsYWK=p{i-9&W}>)#?*zI=d=L4;ET=N3{;T&^bB`3Cw+%s0lJ9VyRH=|rVOU@N;dHFKWR<#4Q z@7!SWZid&TrX9pRszR1K+xFIa)b-f8%ZykcEc7hI&mxy{yO!R^B2E z?hL)Ndn`~H*8>T=W01^{zx6y%`x&3lO%$X{o_mMk(5C_~S#1GDqj=JY*QWD{Q^!R} zLt~-y2fJ_TLzpU83oe>}*adIs6cUVY{PX2@^IM7yr%Emt3ctXgA3)Y6ATHK+>SV>L zUfMIoVRLD-Skkud_ZK-M_BzFp2ND-eSB^xAPro$~@ZvJOruRCfK}wqM$dHX9!w9}gcfACiv?*4Ssa53`N% ztk)(yA5-L?PdICN*5;YAP5+ZfbJo*k1>r;wBQO!rOO1cI4bT z?fS^%o=IM_OrqeGt-W^%k1X>9KevA49upj^eXt9v0L92U!=pX!jqd+Qd%!xsy=cq% zZ(A=WXLDC_JpbUAp(rHwk*y{_B+k-5WS?>wq~FHP;-VceC8 z)sl+sR)#unh2B=)qU@mTU?wIcUQ2vzB9dSsL>E>~WF?d(l7+=prc^FwEM~+)J06It zg*Jb7545c;+}dG!4qfobJGS7>l}zuLZ``WBWg%sfWq*`akDh_!LT@ddpHrXH-zE^> zvS;ql_#uD0KM!@K*`?7GE$!<{N^z&kmph)fj2B>Y)QDA|stC)d9Uq&?9#5gzkGt)2 z6)EcYpp;2toi;+dQY+^D)HOYyX%A&wzgxc+>M+4I%gurQineonr)UgkjCKqYWsbju zm&D8B1&0)y^AnuaR_7Oq78r|43!N-~%TGDH+K;?WwB9htp3K@rI7_gR{Ve+j)IqZ( zbkIyNTrj!SBV7cuo!o-yufkPEUWNy!RJK>sU)jIPuMD_SPw2P^DM>FOhVbgH=-4bloWa=IEm})9QE$)HOx$}&n}&Cl)T~-8Ktd^bPYpaRj^eKQJNRP z>|ThiF@9led89`5oTu)`d4fYqSIS7{*_?KT(c215%4LS76>jw{aUZ(wsou%Vpxl8F z%vyD%Nom6;EeMBmRKiX2+nmlzPCodi1@HZ!ZA3K&Tm)0MKtRB%>(U}R} zXC|lA`*I#$@N(YazO`Lw7vBAvJGBn|9ofX#*s7WqTzJX8BvdBwiQ5SFY~2f=bG}7N z4y;Qbht(2&?R?G1t62Z#sRt3mx%B19$H+`tg%IojWj69f2rUuznj-w7=y_{}K!u=RRE^X{{5SDVgSM%oop!jn zFG?*K%!7;vDcC72wt7c!@iRl(E`(nApA3f{k(U*feUBpTH4JoSiT z+IW5PmA=Uc*J@wpYiGwOz0R*4q>$IF6LZE%@rv0g+DQ(xwO3XyH;g!AzGJfLg#)p3 z=U1>IWb5MKUf#ZtFjdBAtNo@5{T`<)F_-e^F{8b+;kOviqsmxCk6Mdp-&t3glRPfs zJ(2Puiz~@1B>dDMz8pVdX`a)jkBIE<7HEUdbftRs5}yza=F?U%bY`=lx^m?5+v%i* zy2o`>>80r#qm;s*toe|gm7=h82)#c%o3Z>h^K->=fNx((e|98#akVAJPTW*nLBA`~ zXGwHniEym1;cBY#5YOt?3&$$4EgSbG9Dawd1NL&sB>o&Cjot3-HPQxdSeCpP!!_@806z z22cFp3VF!6-ujQQha1=LH~4|?IF4Hznwo-7YuC%}?*4GEfGhI-Q@r5CmP;q?;2a!# zWZ2gR(?6xZgYn7UXKb(7Ld~^Z17J!Q-2zb*yC{MhG>IZnEREB5+N`@f4Fvt zp5%`f+Tfo3T3J%!N0TeQdXl!#(-MXOm)#}Ql@2Q%mek)WAt9lA+08@yPa~6G-NBQd zq}P=zm$a3YgM)*Wf>o6QE_*7gXlZFFA3mad9F!&W3z{6 zztukN9pdh1XXFh7JOgv+tEwN>{n7q^`{wT%|IyR-@182^YMTG-`j4;vW7o5A_sfO> zFfiv8{lDe)tMfmPAss6xNy-)K(W{b&(t1~BdY8DyqQN6y$L}IA0MkOT7)tvKl#|OXRoA{Du zl~WQoN)Ejg?(%mDKmY1WKMbkojMhI}JcVSm*HSx*A3C?|Mb*#gsKJ@-WJYb0Zp0M_ ztZ*B=J#u^bXh09*}&%XW9zQN*HEE=N3qVQ({oKmH%=On1*>39%;O+F!zNaN?9Rn_uaz z4sb+%pPHWBUD*7)Sq|LY6uIIVNgsz8tbQ|d%Ej`n8?UI{v0UoAhqt7Dx22e^C+9^E z=8OL_zYEozp2=fN$w_O&c~K?v0l4aI=PZ7sDs%TUgUJ)Qo@Eu$HwAtTzH^Ueyb%$O zURt?_HjMZ#Hh%KAE*rP?tTm?>uYRqL!r4a~5gSAfT=@kU4RKu3VHR8g=YIzfUQT|! zsg3LJqBA$2obNHRbY6e)lh{j!8{%?AILFuN>wI<9h}ay!(JJ@PB}RV%E6nQXpZLY7 zXwoL>Fq8h{Gwa0vgsD$pM#BK~z?NTVCntDkOlxV+=HC{=g*zlcDjVso2wErqBN)uz z-;3)%Q1%i~^7@K4|2p$^`R|Mciu?|w(E@D3c>CMd3ERedXRPunwEXwMglqsn_S6b! z{gTjtDBu|3qG01c7rB8mbN8LGu89tN&GlyTU_p?JM>qd^{HERFDadS2|>#P2; z-sq2DnSMbu#lM>E0%FTMEPUfHt^RQ%Dl0*PXJk74rO!!#h@LHfJ^r{ExB;e+Yt&F% zUnM7ChSCKA#pvG#YX;2N8$4~at{Ix#U`lxBCY9eL(BJ`PP_L%%`K#G&AT}$Z9VdPl z`c46$3Ll`#>oShU10tq=my*P#6JQE~!OREi%-8@L3BHU=`&~>!fEfwZ!IJALnspsa zsWov;=r;*mCh0w*US-8E;xsLz4?Od6h7JF zEBKRH4a=Z6Ei*HDofK2>oL-*U0oE0LZ?xT z;&NUkN#;C(NQW;#g{O4zn;Epb(w1s^jYSK=Q1&Pl%0Qi%%^vHz=uiq6Ei;W_1L8m| zCsY40u|UtwB5qC-ZJkS9qN1mBjY^-Sn@7;wZ5XS_6O&=p0%>pH_09~|^rah(XTJuU z0`C1QT~1d%OmA4hlAS1u`Uc*7Jh?-Rg~l$!(Yb2nZlrFz7@dDlptA81xuiZho4%+u zR$<*jPo`7{Wz`~Q`2ZH#T(5rB-s{tpvpJvtQonNzhNi`6JljZPFChAbLY!FehIQ*} zfC8=e&&^i`FVrPJgs=tuP>hbJ;`Isp_&fuWaxGChL464;Zz=KNg*#N_boc!*$1D)(QLij`$o|rJhihz( zPvoirqZ>%u)IEI6yn?uqpevmVk;1UBG|a_=xGY~E7@zNa;*F1Yxy%v-Ah1k$+g$2#*q7?5rY^HLZAet$ zd3;}|T?ZjB#n$zM%pN$iEXg|{Yau5tV__zCVJF*mH7$Xf&h-ddt@}h1J^&N$`HgJJ z3T&AdQxacp&`tlOUqhVj(-M$?IqH~{+s{hqyVPSGKeU@^_ju&W4OW@@@xe1YV@nre zwOlOcV#&#eypm*G-O&XqrIF)3l(#1@4U?K*PV2(fgcx@kPX=Tqlmt)p>X4>{h8#RQ z;vsw4V$7-s%vqXF-n{N_sKB$p3Dr{S>@TB_O@E!=&(li#Gt9Nwa7ELHUy?aL>MI`N zNpZ~%-}01VK0hH4tc-Iy;op*B-I9W2JQMtam}88-3k*ZlGB5a}`h-aO)C?M>1IwWF zu(UN+p?Gg5B#X~%THx5Ea1C2V(Q^PLwfbxMeh>tNbb$--hcC!9fz7K&$1;0jPcI+` z`nDN}+2Y@R3z2t9>U+D?cYUsJ8u2`P6a4~D&*wso1Np^LZ6p!@Jnjq^`Jgrr?N@HrDH8`uU7THKy zHc#XmxyVRPif|)8uJsIO4EE%Qg$>P{yOsuJ^+kzSKNLfD1w*@t_t~gp!8Y$@J>GSj zxZnn8PY$+ZdwJXA4;c?@kc$x$hr79{wbCajvMydJ2dsipf+n@?lXghi?@lMvX6g+S*JUr#S&BYF|}> zG>T9QhEB%_1&FT|EagRre{rG&O)TX2(rSN77AUqBx|Vm#FT}WD#FlI@^aGnaRu7^6 zjcqZyp8^a~-0gvlhO?F2-$_pyymiol`EH|r_0@u)T5js3b~*|>{5q-_It^)S62`
2NI}rGEV3v#J&IGcc5@qorq-_XKAe_hJBu&Jc91*|c08j{V=Le8Crpy6 zlg^jnET<9G{iM-5foU0pBDqn=BPQi=c0kbZjU9t}26+5(@C`ETaOaKE`Hg^m{#Fke zm#P?tBTP5f#xT2-#Rl;+gYn8!VzHi~S>Zg3GGTpDC)y}^1u;w*B?qS5a+k?V?aW&Y z^o8ZR`4Hry)8d0rPNJ|v66;fVu{mqFR3q|C2ckUCgBn)9aH!je_-Lrj_VQH0Tw9bg z{%Ga{`yYW`4?9lthzwf~QgKQk@TBWBEVJEjB7ldPM?9!-p6Ve1Q57e>?x0#}fF}{T z`Ou?}12TKOVBySON?uTwP!#&HQFT;Ib0$rDUbh03V@%sU2hg8BKOR2xp{bO(e4b*s z7T)V=0b>KvfCq>aH0Hi!t~+)F(3_(E4IP#ME;eyaULP8}{O;|L%$6*naMNn_rv)Kt z3A^D+q3`Oh6yh8coW)o0w7$1%IB0qNP*rD`>%MVPd~JGzUH8iaZngJKG?y_p5!U&Hn(vV)-uiePT++7KVp2UA!GLWj$aI7eyY|u*GRT^W!|aX zr?8BLY^Ap zJk4sE4a>0)&j#(0z|^_^HF8%(lPE`yS0z>Xc6rya*M4}R$$$N_#p%VR>6;;h4liGQHrhY|`089r?!{!6Id6&C2 zq&kX(Q5$di+^nM(nM&5ob6$yK9z}J&(45uptqqxfg6hw#$Btp+O2*HJ!O~FHP)eX= zM-9V;U~65Sqn;Kr`O`GnVQ#%1AKyA?NCSo^2bmTAbO+2kq2BUvp6Bp{kPE$LsJ7*h zOHN7ZR-g1Wi8%VjsML1ur7l@QExo-nzq?Ik6hphd<`q0)WU0Jb8B&U&X9!cP^ls0b zFV4yf&Uuhe#-(9VSWK-yqpoPW)*l}*T{Z#FhV09)Ae-R}p2lQgnVECiKfpC~3rLg5 zk+HXaDdph@K-Il;WS!Wa^7MtNX!;pj`f)`0{jf_;OuXT2$VoJ0`XWMyARLzy>)G;l zAy#9x&C;fgdrifHSPB!E931=DRb_#t>^NO_!#eSWXSMY4&r??Br1%1J)(7_hN8-_g zo2>Ppv{%=DWVh7c+B7h~yF1k9dzwq<;#0{_U=c&qOV~EsPA9BXLO|m<_c| zQ1WMZ&b2u~9%M#?m^ikplG_!_WvqJ%HHUyqAD?qr>#oypo05^TxHlH3M(#X+-NBIZ z6!|?$Brd12^9aVvdNK@0@=!9p>+4OnP2pE*zUw*_`EFHh;gJ1hrz1fL0z)x|E8q4_ zYWrp;6v0wVurSKg4rrn^)Kw2|AofzjNfG`d{-v^2vMyZe$U3NP1~f`d+!bO2$WzXl z0WFj+p5C)@?io>P`2&D&Qa*BXlp``*u6V8owR>bT#Hzzra3s_SJwdh)?l5Nd*E5QP#UZAazdCtz5o%}Ywwz>taaq6E(F~dVb(m3Z3&#KnO+3m zv$nHT3Gc*@hvMV3xd1^E6v171?NsxT@)RpXAPkz$bK~PJzFO1FAUtuI5cL9*@ zS#QiK{p(d07HEK7K+?cJTOAwt46+C%WK2=gFGaaj4f<8keAjCY>-xh^TU+z){(3w% zAPn@}_v)E-#voZ0V2;bI=8MzY(HomNMNTfA@Ca}>!}N4G!a(z3)F45l>dhEgp(3#UjWxa2MBp}V$TzEZTT_+7V z(aL=`dF$l`oFs4#_p)&ozhwP$WtwK7b6L-xGJIQrXY z4(v+7lZnTOb;>NH02hUW%hpBmOH$cajgmzEs!a^Y0)^BdeMw(ey`QA?oCd7Db+u|; z)706%enzBW_IJw4LFatBhR!cSE?fcPB?X^e`R5`f4wnPMK2hXC*3G^J=%+>9CeFXj zi5>bY0v7p&GK#W)QE~|m2Fnx?{)^O~l!>zK@o+ZkuPKrMcY6N#>+#3U|7A6qaKFL+ zT4qN(_w;I?nBGyDADBYis>`@fbY^vWIz{46{0f_2ngXUk{i}`F1%m=5sxs~;Mno~& z2W&w%JO<2`PTcx~*Z(7}-J$a#Co8zKp0YW6X+*CP`U~>RffF=ukzcO|@!GOY-soEl zO!qNmqnS0Ef{;@U;qR zU?qhv=Xf~Jh{*ZaZ*afkDNQz$8tORv3>S8P$@!sHeh^?fI^nPotv+{Oz^>3Rwif!CR7Kjz*p0YJV%c1v=@mQ6mn za(8vtX8Ku;Tk=%cr3#$f_wFcGUy8BWyzZlr2$laHF~CS~EItMKRf81Ji~E!djoeOB z&AMfqp0kbpg7Jpw{R%Fbw|`C#G)1-Z)|T{!_h2;&*E3Pzbs|{##y_1=iw(Yw880e* ze^8wbsQ%KGq(3LV*1lG=oC1mZ;S)XyE;80u=2*9*PsxP+(S7I|zBF zzV+emRzC5NL?JkB>Sy`I1c=|eNBLsM$@z$psE85%G?yKKFRyk-E3ZVDP z;YG(~!aDA%^F*rvWN7Zuuo95Cqy>mn4cGd?hnz0Xv!I*A%UnR&?h<9cgK;_AD5qQZ z9~&40%^-4W5*s)@*~MB95lK-{fRY1CEgShMi~EYFf7I|4wubQ7@iE^#eIAz+HIrn3 zpr;tj6f61NOaq7?&DvBq6Sc-nvEbLUly?A%{s;^#SXGi{e6`^)n-qJs|D2TP>ZCbz zfYGfF%#9_AAuw}}CEd?b@pn)Eikca^_mk+A; z4}S>f+^+9prIHIbp)w@+MG+q@uFZc}S1<4a(H>VnmBF>yp%4u7q2s5tJaNa`6}N(V ztB$2f)YqGWISv6Ml4OH7-Krg(nS6u2@Aa<4(dNZ2$5mGm9su_lsJ?9jrz^181gvwe z%x`&>2B^B+=M$ZYCdaA}{a%kg?+Y19?0qozdeyhMHprJ}!8vkiyH~tU+IfvPWnr- zYoh&$qNX|D^_r{%ENYjeHVB%cu?q)l{llHZe9s1n0b3`yikl>W&7ej{0o9+Az$tH< z<&F(xvE8V*M&pUA4SRr|c?2QXttIoBPm1o+x4S1#H(qDxqOvFK6hiOJkm0hL{>(2% zmCfcE{^RcmmCbck;`A z8cmC`Fcs}3$eMd++dUhiSAiKzr|T7q8c>F5K}A|oRVGZ$TwMX1F7na}0OG9voCN-4 zBci;H3<&EwKrm`&O>qDj&v}4DZ8{es0gQn-K^4xO@B>dgaRY-d2EPXDHYVliHx_Rr z#;jN^tTLykpAUWwl~s{Eeuu1OvabTQn|$B=`4A2^h+r0=v^`;HxJegc&LqVkLR^SFyF>0g#KYPi8zv zv^9uBvckAOSYB=DV5`a0)gPEP_hFAi#M$Xb5!GW(ndj3crMB>*b7Ny@^yrAlZYhHe zyXb*!>RlC)2W7h5I3MZP6r%^;4Ik4VD-LWAvdY zg_{pvN6?h)%a9T{?9DqgvaCwFi_FCkvgg_ZeJB&+tjjCog1#+kkj$_%#LA#9xuNGU zDU3t#ly!OW$o3YzqLHSVK4_ITY*R#_QBP=qzS0ccVG|G-jgS@P0P?_k zh@|wf3rGMY^p77;{#ISO!G;v%;dLvFFCN!R4G`@0wQe1MyEbMoUS5GfOe}vl5dRE8 z7T4J9fvKXh_&AuaFt(flH_jH9FS38wUR{AxO1#j=U_3 zp;_Up3Hx2gWaLW^;isBXS+p!t9a$aU0#7W;R-m-OQFheljAMxBBb952I?)Q$J@?9| z>Q9~4CQ_&q)|AneuI8l`Hq+O{vVCs=rdO#BN*)_X1&Wp5rlGNc(-$aKp`yP&@Ugl8 z`sT{<*2N}2+<@hyfC*!yJeudd{k4d9;v-7~H4Ck!6E@=ImWg{|@ScU}s5D5Xxr7_1 z#QR+2bgbrJ?2=TSCONP9{ty-pVfL+PSvcCKjwG4KFAY8$YR4g_9N$8mkK8)?e6s8i zWx?hBDuUqE@0&R^9O{qpvnFbJWWVU!SZPVhPa`AnS+&RlBpf=q>{|oMxFoUrA6~#{ zE3oilqBTIZ(5cqVR;Kd_FU?$l4#9v9VVgcet~MNCNAU##{$M$aBv=`vA(p4cBq20N zK>hT69@@Wi#|1L9X;!^Rp+5&WvOP5@-ohL&Q3(J_TP2Ij{_a zvU2sJepnz-6$bQ%BN(GSQsE3{)be-1)q(Wjs7O{XProlg&wmEw*#qjE2G?Si)|waB zhR5*z5iCN=bdvZ=6FQ+z6dX9XhJgGF+($c(dklF;0Ng@vBcLiC%lrgH`@e02I3(OOGr+j3CN$~=V7g~}cwDN~xk z8BQroo~7u_w?xe&x3mMwTb8?JF}~Fy`yi3G-F#NPteNdXmob`wiU9oy>yIK58F%zfB=jTsTVli7Vy2cP>N@a<@;LUL{`+xTEoZ2h zQRbl}T11FAS;Ydiw|Fjgb%|-`<6tLF)ecA_hvpt4TeZ?wtXVD-?>5yhjb>I$n9Y^w%5h!_Dksdzd zdD5)5MFNQ+4ik0V9Ky5L6-`h%1r7}K>{j8Exa0$@(0cmn(iUD@Yk-1K7@RF=JMh*M znv?p|`=YN_he-1Bv<^LDsi1@uP_BuBu8Mo%Ey8ID0&{ef%#de2vfBf#Dc)U-Dk0Jz z%}ss@Fr|12;CuAS+_I1zn8{Euu~rgNNM-B#PE8Lxl7Vd#L32dI!SNBT{9axVRN8|` z;C>f<-Az6N)o_mJ-2e&;W04oFP3IjtZ=K({ffK^cxVGjU2M5Id-b)u`SH8-y|3#>N zcdYW|4lIc1Q6Rm5?=ra#Lg`pQf`o{SIS8fCu|sL!|B+C7H(TKg5bp30@Z zQE$5p{0+OP^5ghLg9HHb>wc++xA4BQ1&qF5wC|Vai9QIrf;}vNmA5+u)$bV*Z^E8| zT;S4Qhf1Q4gV6JjF8Pc65|>KAFsk-C|9LX;cV6@NQJL$Yl(fCn>W%cV0T*^Wf(u#? zTmPBlId`4``3mk4NM;(Wz-*{DUc8)Kf3VAIZh1FMuQoJ+Qyw4uCVzso$F?)<3S7f& z5HFu=tb17is+4|)iZL9~d0;ltn01Y2JwLQO%h47U?kCx}xRDbgIhILh(IJZNSmx_Y@2uaEmz^Spd^uw#NPdDzyK zF}wkCca##Vb1?kflj(2gX(?lNX5G4At3VnUn^-mdHMh6}SlzVlHNK`#oX)Iqn_|i1 zLiqH$`6n-ynK`$dI+L%Zk7@BgzR0c&Jp`7ry=Ps&_MGkg>wMj_A`^Bo#ApDbznWqr z&bqI>?=#|=zI_DGUZ3j(P20E})jrWj0M?EGyGkJ$+}G6qC=i#!WK26ZCBfjluj0Va zH96o)VxP(T0YVAi|DMTo{*cS(SdM5Bpu0UBmSiaS^mEBnyvq@-2e`bzRef_bc&ew1 zg~}0HzGvf!DOo6pVLZ0&Iotm8@L;Y!yV5(}wKuzR!l$(A^E_ShWWr=G z>;eU-3o>9)d&l@vWPcQ9;-CBEQt?rvHX1YGNB6w;GP>H3$QAj$H^7lqAFz_%D+H>s zxox2v0W~6>Ze}3j3IP3UTTp#pr+TYxW`-zYx*?b7pUsq)jEJP06&eqXi1RsS^X8Oi zV5g@+n7xYkf3ISlHEcfUN6}r;p`n&)A1e-mc)C5i0>o~kfc()b9WUbhN$}~uTDt7f zFUBBFH4i8@B9lj9-^4C3Ie)(r2_deGo|^x_dWGtM$5~5P_j27=2U!mnrSxg7sgb~;fUS>I&aC?9dCJW%v<2l{WAqy9=<|Z zl85E|ugOrF5HJzboRED(9+`ziGD%M0L})gmOZ|P`At&A>fq>pvYFWBpD;1mEVCU96` zPk(JV<6vY2w|jX+hGkrrGB6ZGqur zwGF%J)&{dMjAMs;{{kXGWTxDpPKg3RiejOwi#2_=N%m2TY7{q99sjgxc-q+gj=N*` zaaQd5oEp$mk5q{Hg9IUvi644?cg(KwG1wLk2W|~)t%SDvRaF`hpH}n_ZsE-U8(H_S z+Er=-^#eri%u&0$Y3WY4V}b`$_>7+(zbMfgvug(s>di8Is6OP;T~+^zKSCI+4H%c=S_1xyG?e0uz|gA zcHc@&#rp`mp!f3Gsa#LK6o7aWAZwK(l~EPTzKw#TlYNo#a=&)dJVpjxWy2&N@kWjF znZ}sw4p(+C?jFY0Igy8r0tyS3&*zw?X$LfB8LSo&$knJ&*BZ@1QS`Mq%O0c9eR+iY zN_*k5S9~(HZBjk?<(8Xix}^a%gc%=mtDGSZWZFoE9eSkX*7tV{-n-~bQNV4Di0S%{?fU9y!81y7UN zf));#Ck~s=6Qx{Qmnd3g&@9>te9{N49VKl3k*qL%Z)B0rP}G|CKFHcLF6Y2~{K$U^ z#Q%ga0OmFB>b(xRo?j>dGhCa^0n(c{6xv2m3E3|gec=HbLkh(;mrs}G%ZeSb`lR$o zR=T^Ydo3d_CnzVRSEQbRMvn6DgE4L4ENROGE6V(6;oOI=VcWndY-@?{?9;^BDbw;7 zFki=PsrRlENS?TyP!({AV}W(PVyC`)zy1y6(qVg4ya9ga0E6Jy3-3FU>90g8`!-nt zHo9biy2@TScSt`dS5ANju|@4$a?9<4Wv8`nTqNgHjdMlCrU|d6kh8LQREZ=(+oP5c z6gq_^Y7IJ&bt|3<2L#leN5k=pUFvugnWT==Bx5^Navfort~hFjRI~o@cb%}O?b2aS zVQuW1^A0v;BmW*{b>WPuvnz`@ZXPj*+WF6B8mmT@vSQ=>KA)uoc3IPFSFy0n@@I%Z zq$842hjetURZ1HZp%rY&H7{)oEG^7da3VI@3mictXa_ZGwyTfEK8EJxAz>m2wFBk8 zi*J>?iqjM;feD}cpD|%RltYS$jm8vNXQGTr?nm}{tHzm+0g-d#a5S?g z#ponut;+UtAyz$>2$fX;x*Y&mpD*@R`1*{~f>i zUnreJO}mk$wASFe#}EgIi!|!NuCCpw%E=keCvy+-D+RVis_p+mNZ#_GTNdB5V}8sG zdewMMREl~#NXr5`W)zAma`m7*LksJS1G$R0oAH3C!3jV|pJ!Wla9=2Oe6pgy@8(*! zZ*gK(f?Qxd`*bxZvJbXzQ?B{`*zaS!HPM+dw`*s~sxDzNQX31c>KQ%+9JR*3p z&A3t|N$|B**7Zm~`y1y|{;1_TUQ`?xNhWOczS4e@wfH>l zgnw=@>&XJ)Sbo+o>L@8H`N{1LNmfko6>cZl#?`oT$r4`pLkGCJ--64SC! z%=EFRm^%UmYSC4yzhPt<(LDf;P)#Tu)!)D$he9TWgoqBAtXb=J_G|RvkjO>7uv|Gt zMQiPrNFY3G>kXxBObkqEKAU?zd{~H;!eFRhpK1xZG}P z0w{m9{fSIixA^34^jIAC5L0aF0&^EnJ0lTGu9N-4;$GHR6T-``Fu#|g#*iOP%1iwE zi9SIoo}wO@YAHv(vYaV+u2pPJ`Ot(bx5)K0@%i_{5D+_t?>4BLe0`nUMj7DAarBs- z3aIY=0O%~c89>@ou@m^W11s5TbbMv|Z0Cc;d5hGheBjx57UsT2GFx)I1R&+{QsZTl zm;q9{UkZ};%1ZsLftnLweO3ioeSGk1geV9Qy#$rKKcljJ9~|t5o~}FOP0lRC$P5-i zPxOhd7sM|;9fv2*%FVvXJlE&-8@cXUSR25 zSVc;S3mYiXue^DTvY}w7zb!e5!<+k!=ce=a8WO}=r5IHDWT~G|-?L(vYoPKarKB5S41Fyf$WiZuOr7;?II$LyF{LNaT-KR8$ay=&nj z(^hOUJZQdv_Fm11>1V&DpUy*r*Mwmvb9D`NkeWX!6w?Z6@31$mF?qP6NNae<0%F3U zzb<^&T$@_^3?(ENHen@t(I(NSzN&(xzwnsA$5QRnHc8F*`~VIT>a@=4w$~HL3jxz9 zRpRuVXLWmR5=4N`=i%bi+Cy9>yOg@m5o-ipYGl@sM$D?GLesXlR5~ifKu)Kl`Y&<4 z;?7t>f9kxtPJQ6B$PgBJnjYfM`5I>Zr3Nx?cnvwI$-seKi~dK8C9veN%BZzEaZ1qgq>w&m zT+WhWO}UX}b@#%w{ZgOER&Poh_ z2CWULYAaP=6{1yv4KPs!3@yZtUH)F^;DZf5Qz=(@YG}XuiW=h_uJR#~d6DR;2Pb%? z_Ogn%6uNv;g+4je+1Pk+1*qiI-Mb;R!GOg zw>8x@C-;YlAHi!elE<`IQ$6e6Ytt<7UMCl_BF%20K!O;_R8k~;spB4%+xq7t{au98 zKBiqAgt59a1wpDOq)(%*a-z_Mu(CtrbMNXEnrP>phx~@(!6scTK_#uunH+>DvL4~{ z#2i>#JwnD+pq%Uybkqo`R?SvJsKCK@RS7eJ-@ce;Ola)3T)2PRw?(uv*xL75iHELM zfSzR&FYIYE3em)eoO?%0pjBZ#>$9Y$89`Zof>dzaz)zgqC5M^QFJez09_YT^3O$2I zh-wkCz7C~Pm(BvzbpF?e8sc|I8JiMaT2I zQT$ZTicgMfC?J4sF&|30#)kN!wa+aO;R|sYk~s;AH2VstOfP$CYaLzWg^VwBZcGre zsu`1TfR?Akkj4y+eMGZH$Mc|?gnhLowC>!1=8oo^A>3qM%|4Cpa$n5kk&X<7q(kv= zz3!4crS8Vs(@9lpcIn9ULK#Yj%3M`%-XZasL*S1+98-X##2n6Z5%m~7?Rfo#5;OY_ zs}48-BAIE(l77zBTK%P*u5e3Y)kMDzHKPm1s1s!!NyF9EQAhhH$NRtJ2CO0_-p{=Y z^`%UpVdIs!7rxmClj)CXoV{0xnym(lT6tC7@0nu^lV7OSM`+d=&>U&Uv&|!h?LZwlt z?4kL=7IkU_h|RmQ{|`CC+}8z0UEmn2 zvJi>m7C>@AqfJs=ePDcm&ea)WqMgtKh$|=24X?eXAOpR3;vRu9X1lONxhB`~MhJ`au79YaD5A3!rUF{)CNrz#?a>f=Z z2FtxMQFMwyJyU=zB`Vb%VNI@ITF#bZ&JQTB4nKYSjeTZ6``F5wbpOV|HC1~}+@e_N zO^}l%PDid;im$#AUzwdE7S}VEg{?8_cv^A&>UROKX*osAv+Q!vnHB_FmvWP3Gd)6D zLG$raqwh+`G!PDCrJ;9$)Mmocpy;GHa;_}i)xWmO^B^kAV0+uv@E|k4P7WXLG-=aMb4iFG`nBdMEqfrR zYhR|hS1*f+xDF?~V(Dr)QLz1(K_9zE#(J!E%N6@pS9KK3j*;!H(-h;1DsV!^R*i^x(hVt5?rCc-MaAD=m9HvbS8Rgd zuEX`hFV;>ewYoIQ2Sl}6n)JGxLDa}FWL3dHa z>fw_q+L39-{g*xtku)w4L&!6iQGVjopu&uNF|0o0aT;{ex3@y5tbzxTQ{#^(%$6sS zwLB^6uG2-8HfgTZ$TLI2Q3SzB-_Wp*(r)!`M)TA?Xrjt)#u;YD+@CwqV_HesD+AYg zFrW?{EcQCq#cKmdS%Ej26wsUWp@sWRvvm4J@|;0nit!DtBjUAIoviw|<-t<%=#c3I zgC%`OeB5$Kv42uRK~XV$I6OkJRcp?Ax0XNVQC*Vf8aS4KbxaHgX7?1DSedBU-6Ry+ zW+~B*Q^OT#eUWc|Pj5mr^O5XRD(EIsau z(H$4sYX}o3Yk8X|z^v_Hu~MX0^eSV_L~ z=CR!F8Qy}^@mDuJvJ~s)S~)Fp-e6c}gO0hp(B9h{FH7W{*owU=eyu?^bSqMxl=|lh z`4;QI(+}Svq#(j_@~Qu;y>}0XdTSqt%T}@LDO6~asU*oMTh3;tt+1m=Dsn6;$05dX z7}7}+vz1T|lWYkghZ*P5iE*4Ehru}IG!upxW{fesYig(Vv!Czpd%b_W|NP!(UswD3 z%(6af-RoZKKHvBHT;FXhvJJ29voB`y6Azoa+8kI@*`*uOA2JOMVeo9PO%H^Ch}d9h zmD$DN_-6R&&$A@YT7^$y$ypGt_#kwB^s^4D+!0br6X%wQM6v`TC(SyxiI`orEzzS|=<wzSZt`@jNSQ zT>pHhq2twjRN|SCY!b^yiecy2_y*CNu=GBF5#rgVIqvWaQeU-iFpMGpYkp5+Xl2cE zt-jw>c`U)yA38f)dbI$b8BY#lFq3N*2Rx`BL+7$!<-x2(Vv{2wx2?UgmAwdw z8Fpq!0Ry-r`hqKz>r^?#sd)E9$j%zb-5DvT)jW$uP$9JFzA#}UW!bEAtD7L9>D_5u znPjW{d{=e>F_A~NmW$n6r{e`(k)k~=`LnH28!k_9xVflcqU^OJ6l#Ju8lc%!*tPq3@Cf&GKn zcG58+XnU4(OthaY?Al4Jh0@-25ywQ2(szx(wWTMPtxfvOLx;ChZy$>>j*dj7X6~8S ze|jDj6t(T(Y{cE zg*oe%{VMupW-Ifj&mAgaAIqIOC#~9R>^NSWi?+gcJ32QYEgIjUpUv1iN8{Dl+L5t4 z$+DEOq&S}vwq1Q#;!INH6tuK0Fgss9ZMkcz6CYo+E!|iE<4{-y9GtVCKd_8Lrz?C$ z>c+eBY;BDw1&$E2skpMhgO_IXV>_RBSs`ep!o03QR$+CgYMq}xH8J$PF7Y1qj3aI)C-GE6paQ(7qPrj# z8D3h8qTr^kWWWj?@4G<8$21ZB&v|E7UAI#`cL`v#9q&lJcO-Icb6@@Fr0P} z5_a@gMfIo^glagxc&4gf<2<*3a|o9>;oBD~&Abb8qoB^YW1`NFeX>b~P>5PVQY5;b zFzRv-F<-5iMsBy!?<6L*IUr0GXgg6R`!L;m=1;K%AFealW?)WJQ2&!-X%0Qt zY#S{Dy+QtPJ8f}j|3#Z4l&s4Rp|iEha5OHt_TGoL=&6EQUt#D(?uNkXvsHKVoqL*$ z{0|k@NW5n{Rl{+X6AvXgJ8fBbW#wM)pR`uWFleH5Cy>B|$L}j#3zqZ;k_Ph&duyD6 zWlCnwxU1GCR?`eqpjtUvirjn779mPq=&}!m6y#odYo`Xb!)1(8#jx^cMX*Az)lr&;h z-r%hiTU;R7#?D9AifbW8^mDMj3#LR8m1FkU_?AqZqQtGVUnSi4zA_gGa~xwQ3@lYY zb*g2@bMMC#aJC<%yEV7neb#VSN9*~;GwpY`Nk80pM^tdnwbKGZP$B3h=z3L!AP+SQ z1=olJs-BO|*jBV=s1Y~Ji2VdVZKy|S7>K545^|UV)sO*`0KAWFLzYChZCJ-(KyN8_ z$`OGZhKZvt({vfet5+ZJh_}NQqU5MXgLvc?t`+*SSEWtJ%hEi2Y=0xU(7C2;aKdA? z2&419Z)Dl9PPt}I0?qEu@osV$j-IrLTI%sm*J36lZ5pE@jw*6}8qgCm;0dSY5h=2sC3Vj5-nwB_ zZSuaf_k>_ag8ruRya2mo2_98pY&6_5SXypX2r74o=r08I*DN`D(NWNS20H~OY(nm) zE{O0kw(uQeFZdXXuq^z5ek^+RkeZo;YhcLzEW0T!e2618rC>r@b^Phlc^|B#>bMwj zdg;Mxv!U9UW$j5EmN9J2a12n(k3DC@@KT?wmnX&-bmxzpS6CoBBSSe+<&^~!vd+76 zF{_m4R1=y-$-@~*Q{FyD&N&}D#5wnog=L~n%SxwJEetmkiYpj~#acB@cB86lpax`> zkME^4Q&y5&~bU6#dOc-p{;_q_%uK2Y7cdonYCI$DNvCR(g!8~W^4 zXIXgS#tL=rB-KAZzZjFY347y^8j4{XsI@w|5MF^;nuVZ)m`!jt>A^04k?XH@gcs2d zO9QM>-ZV}8 zmKV4{FZ}##mULoT(~fkP2@UI)C6e|P8y&@oqS(rL96}7m_uf1&K&S_jEyun0$_^MS z|5Da+yh?2+HP9*PB55yQT&f_luqJj#Ea>O%9TCrx-l5X=Tc$}n0NGHYVAOv?ME?aY4 zTJ~q?;9{MYCdf`@7dPZ!L{aCVye%>UB1!Al-%6|7fB)c<`$seTX1#+Go5lk!wY2L%UNS z6r?=lb~%-V0#VnEkIx+$hfU|^E#XX}lb3L}WH98FmS24XY~8rH0yKiDSTm=X`TSf5 zZhSm-Cd`+)y3$b7?+a2?bG3I%?ibv1SRK%RjPR~Cx%JCzg!6~jhi|MC+-kBeeN#H^ zsr-=KCd%*~30;)IFJ!k4;AZpn-cLpQ=TjC?xwW%h z0v^h^E+pVG2f75)vkdQP3LRZ1AOVhH)*JuhZI|DtNLe1v zc5^epgr7tp1~c*@3!O;|vQ;~Tnj_X3kbQ5bEw{oWnTV}AwHx9c4w$bdhZl0FS(q9E z7%fqT1z5rv;p6Evmx0B{E#AvqT7quJ1&rxFa>43S!Ax`8zTXKDo94R$k*Vb^H||W+ zSQ&YQu2XXNcKQ_Bv)tRe(8{`t-9G3kYtki37tbc3$j2fKb!97SB=qvkEO8~L6rn(| zfh;IKatPs^wj29{`Jv22=h1N2M7~{lQSf}5u}4d8zA^p6!n}Hr(9w$<`IPza@H5w6 zok%eXNgXAE04JCxZC7Ckbk+7CYd2yQIulGDf9#U>8+{jISUkmB9JMmv7LMDE2)mfF z{RVSq31zg;zIp``7ehY0GtK4;5rK#m*uW{f|USQ$PVFT6Q|uS+~$m5$pB7!^lwe9ydV+e%d}Y-MF^ z6*bsN#V%9W?5yc-@>%W!`vQ!WBif%ip6u-f*lqiAuV!r#J#IDQ-lVC)3Go2WWc20A z58Xwt9%5{D5|+!&3eUxdXWw<(fl8T-SL>*o?8|T@<}dh!46u50!x3A8U+Q$_JKsvv z+zb9eZ1%1L1at(fX5+{2A|mc~+QB(`yOM`W=rfn*9*Wg;_MZ9sI^iBI6@hW|U$tBI zX7viR=FfVljombM?632lpW0`rC%EU8rho;VGir|Z<#r;1XG0HdM^{tQo9>eBwY>Ve z`zrjGD-D1-;(ZS)zN6^r2&zAq$?L@vB74uXjnIf>+9_s!BI8PybNH#`an11R7N-PE2oe-L&jI#n(+hJ_1EGIB6)@?PGwuDBES*ex8lsDGY zoo#e;_XO)x__9Xx?H6~`k36(+FG>5f`YJ!An!o|66iAu~$}>>+-H;$y{dR3LnJ>G^ zJTbvD2IgN-d`0#`C^T8+&XSjRw81z`N}i0 zXN{sfmF+oZspcG|GwNehnay1`GEd!MV4ix)a~4^YHnZUQl7?8_)aXicnY2j5I!{}& zO(&09a-9OT1z;{CWYxtg!td!sHK)FJ7D+Cb0fkllKw*oo(<3-<>B-#qHxmb5YzW%f zKjk0y5F502;kLOZ{?XCBdiGo7ejP<|?(H);b^XxTORfDmnAws7{j*M9(*>xpAvJn8 zM@Or(v#xUTS=vZ_qNMio*cOF4^(<|9)|i%+SnFBOT)WGbIi=p*({RcaNFgDfx+85a zTMU`Y(Fhq!2u7`Rj<3jJbra(gLxY!lDNVH7OOw`w(RW1RV-nYU2Wo)T9ila}*jfx& z&9-}wPtbjG#b*{K6juCxH^-uTV;B1X zjkm-Q2n^tOO!lDUYrxxN&xGByday`7HPK0ttU$B$5AXHii)nAWI&Ma?7{XxETWy1gE1BA>83S(GD494b( zyPF+k$NQ3QoHzx}y6Z*4D?^J*AFkhwL%)~Gm>iahlq@(8VSY9U-w_VZGsjg*V%}7O zla!2bUQMzsIfu?Z87w=bjgz`hOxLmqzCTwmOwh2U7*i3%47iRlmG!=fc^MKHH|ZW` ziti~POJJ;=>$m9VKghGrjn}SQWT|}+Pp7>z2F}*B!MO1lJFc*+n&PVW=o5)m?~&!2 zE21d(_b(#X33i=)DmR~GiWz!n7{D!i$#_AwUy4bimU^4lm0--#C%4}D_ysSPcUmo7 zMiM^Q+{R8ab)%N(Jyr8n-r=&IP(s=GP!+Q`YO;rP^QgzP@14wrXPzS?GPdm5F0`?u z_goOG+K}!hvirL#vJml3BI`p-=!e&s`=M@G^8Tg86MU5R-D&u5D?LZL?{?w_Wgb> zaY%j4a)0FVSu(&twE+g!IijO8xa;Ulrs$9saN^u+Z6D9*`cRC=Hkgu0936+5_RFfa zaBNcnMW_Ta>2GJ#^a@fv$Rr?mGN-Wzdlzub>D&~j@Y=Ht<(`U|6>Z1aR-0S*oZV{T zizfi3D>xD#o&uK^nWi9DigIhu+p1)S9??>{w@W7nmS5d%#+*`%*B;gP7#Wan($^ew z*VIU8?5AC2r2GNlvVx!L?xa8FX-YP{6wK_%zdY;$)9xy!< zJnPfosNlk>9|j6(mZx1xG}YIU>gHifzSQK+8VSC)G8`uDh_KTkEYY-C*?pG_5T8!n zWsFxD0_FcPlT%*M_dN7TmfUA;jGPd(;_4@lgZ?dN+I&?LsL9a4)M&gV!BTt5!|tA90?M(tV7Pp?rUlKZ-U7G0Eki3R@F?Oj zLiC1_i3I#912V{@4hTa~3Bez|g8>cqBEM`F_wj%Wr)RJWhr-clh<+DbQhvy@8kl_m zDy4 zsY*&j*9A??gtiP4=dy-VcF42)fB6$0MwVvAnUCc;t$`0y-QJT*%NZ|fASdo?~XLi|ju)M;7Fh%j##hCh6E_E&Crun{KDJ7sG z?`Yw(_H4Eb4moplY-VLK5Zqv18Xm^|up)HjeG0j0!8>fVju%|PwJJ!V^k*)>D=rR% zuqy}AGyKfOKa(JwdSg7xSb`ifk(;=56_Vd%=CMFJW-GxtTV-d0Cn-`Vv}p+#XKdei zsK$WyxQ!QUOuDn?{8VMf^vd|hkq0#?#k{B!qb?AZn;s%Hnrfq8jA-&Ey$S2gn!l&h zSvR)Wrb&!K^jawq6C8JA&iFxRp+_l?HR3e}j&&U_$WxQy6^w-#J6c$Ra!`|Cj-F!; zdvo}rDV0)CZCA5mHtR1WWuH8!(MVBoq;*VNeM-A_w~D;Ioqc2K-3Vzxc6SIVU~H<; z-Jzf8-%Bc7lhZkWFWH+NeFpyGgq=xa6!x7qu_6QjF~7vl8qn zgw`;U;sWP_Xe_szh%ZnL=QObi3whqNH{LuZN039u)!F1MD~DY!j7x)*8&7H|D|0O& zpt!)%+p%W0axnXG9)5sbzkJdT1v&IP9y4>o#DC*NNH}W-)>~1Qe>GPl$=ZZ)VhSUyMji=5|al-Uaj?N^t0j zM95}zleze4p1q5dx9LbJVoEiHTDOSD!4V$J=S$sI_-U+jHiA)0xrm_IXhxcNzTZ$F ziiFK9gUcE|s&NgbMtZv>>Ow`4=qftrMk2a%f+4$t*t3@?A>xoG!i*jhRd6rqM+>y5Tx`mEmnIN!cGpN zW5ybDrXAv1{A@s$TzzvXp6Qk!+;u!HTL44UsA#pUNO&~ir)*iB|1d)$Cd1EL3LQ!q zjGvD2A?cH<{@5!uIAap}40CL1vX7aYfZY{z-=(1)M*6_sw-jWi@|JD5q@UZGkrGRI z#u#XmKNM{cI-`MdbOw=;&FPyic?=E@l-BSVXx>Ac6v(YKR(#iV6M>dv&(=dAauG@d zNWuWE%&~+`7|=WJ$QlXow#V}Hj451eR=IW{1sG%_nzS)|A8}S1xcnN8n={6XN8jP) zYSfGd$j;3SUHpuVZFBj!D)Lpq8ML`RH;O8TJtMvFsqj&CT~?wg%XZF%+Gn+ZPlPm{ z5ResuZc`XL7W&@xeZg;1YBVN^ao2J0kQzi;#Ssuk#lDnMqD}2>DeJ~gdIz?d|Z25Rm#9*A+(=6=dn1U zNvL4Vkt>=oiyfBcsX`Nwr(O80`^%jOoQE6Z$(YBbDzm1@eDWc8t68ffp4(zq$_O1- zlV#vNHRzzpAh}BIjksLx@EF@*x=jJ2?PdqQdent_ZQkXcy>v3yEf=+uI4C2{^I6gL zs>N5A;)0Qt_Z4|K%yn0=2TlX>2xgz_g(#DXR^?fg}^EM zu*x2JD8-p8!~(rX0bexezoHZCX(~r5=-pjYS32sf>>uh+J@Ik!ecN4ZEQlCvZzW$l zJiMwD{jS8fAg_bIT$I-ttUy6EkkA?T^3XlwXL1u&dpstcY&n5Slq36D$a>B8R(L`)>@MnGENvbdTSMuB@14`X;tyBmqz{_eC#bBl9 zQFpfosJV2GIaNxUqn!$4oZoA51MOw9m<=!lwv;4GAv$yK`)8s#_ncYURsPdGB!VX` zr7A{R-+^j`EyCdEz{&z&migE8YTHAc8?ez!v_#KyDFt}eNRWG}Iis@7ob{g+H#z@fgHzd^5O+Jv_V}x}dlT zOV2L0h@MIAX=I-mlt6~)v!Lo-!H#TF5InFN&ylfVTIP~{^8QfK)h?-r)|QB3bMgeP;^b<)XeprQbSNGy%btO5aMYbMRd1(LZmrOt{%kWTrJ zE7(#(?&m1he!}tDNRUcT0VWmWTd&IQ>?+TJjO~vQg|)r2Dosr(9v3wrCk;N#jgD6h ztytvjgk1AqAFb(SXw5qNAKZ&R)MM{k`IHzhhYBM*5GU9Cz@N}ga^qxX{WJ!U>< z<->ai&-sRPwA9%+Roo}JnjWJtU$1G$+(axm4ksHL2&T)O@C3S6mj|3S#L~YSvlmmY zsY1K#IB+Oo>9}K|N@@Av4{9-%AVaUZayi|Y@*=23GrG(FEP7a@2R65GmS7SV%Ios) zto5JU$y@BT%~j>x<)z+SB0d}GrXUDmE(b`mEFY3u+T^oTZjN$dvpl4U(4opLOs&H; zIcNrl%7yokM(WY_5TfVS%IDXpWWD!%Nx^X;C<2D#CQS!c zNQ`qG8f;r4Jx$q`+y%$1tlj?f(J+#yaqI@GSHWtM5(?*&mNSrV@}vg~`i z>JCs-G6of|z;W7OAKM9YNqt(#SN0(KgAS%T=fZ+RdkT2jVJ3y>W`C0!4G>*Cay9t7 zpRi+7?1`K2Ttx-TgkyAK_(q0vT6tsx$}c@@{&XDVcRywJu@esQ0}B_=p@a%m$w@Oi zdrEsfR*=<8IVuvwd%^YjnqD|VTW%BjS6Ql#15Aa}40CsWRnVo$&FOKMF6uv51jpna ziJdCe+{(S?$!SFQCyeC6ND;kE={i`Zw0og1n$)g?n|pNXet|PJF)7<#F7{K|^JR(- zF7#1|Og=FFu1)RcfEv|uc4tA@!a!op@)cMoGmjZ1efRiaMP%zp_=PcL1M|nx9vJ6n!#kWVs}7 zCv`M{Le!t*%CigeFxASPir&@F9D9-@Cr#0&0XexnjaIQ&Y!S|dh~;et_?UpXEW4~7 zY_YiGkF=ulNgtCr=&yjD!7c5EwtChWSNrkEh&(&@!Sd7^GF68*gS1lN zXxY2#P>q2D37i4Hmk&nVlu*Ha!7r(1-n<52ZxEtw3qH&c->(d4!HIroH`|fN2#@kd zPTJnc-Akt@DlAwmZKaPuttco2!09_G6?BW>>FqGsxWG`vIIF44RHACvZwEcgkCZCC~mxjUmZMbXj8AJFO!qjK`#_|jCWG`Ub8 zhOnJ&-a}+^#krO$haM-6(DIn~dB{P@cbuzIoM3u-q**O)wK@Il4ARv3TIF1)Pi&%2 z?*XPoIQI;MT3!>|Vju9!&Dj1d@j*tg9V<648p!YoXjk7Lx(gWCZp|y-gT8lHi#Q9O#d5Tl>bc6;#?1XUMqwOn;%A@eo1ydpx>^~gblP^veI1 z^%eNRt(NN%lrrCxC+0ndnvctoAFO?wQ!L$1l4QLz2D|Z1#%YmHuypn5rkW+!WLjUL z>C0yr9fs_@beN{sKvj7#_z;EGx7>nm^ZC%(Xve+d8vB zHV{_Z>X%=rZ8ICa(ohrGrV<4xF=Kjmy8#gJKG8GL92r^wUPN0lVj1@NW!U%tdG(GF z3Lf z$LQG^hG6wk$`!;yhW9^pSg9rwuzN)fWrAi$_`6*>N(Rcn> zTFvo%s*K@ z6U)k2R7;B;k%W4w9(K)5N%1H-=lJN13@d{rY0kBHday?!Eqt*HA3Ia!UbTZf_Hr9u zO`bcaNybbd3UodkyDANGNYELG%OjjaQF}5uh?d`2mjE-fFQ{^AprtuwYX@?C2t8e4 zCOVZEM3p~5Ew)#m=2gnOKS6*2rfKSTlgzEKz*_R5$$OET=e&;yP5l6mB3EO zhCKQ}dCHj_^u4dJkg4y^bK2S{S65uWy(WOf$dsIbM}kzZv<+WlQ`h1IjY6@0ar#{o zQt4T0Oxb$}{_RmkW`|FW^x5KjjI+b%GkC5Kxt0Bz<7b-QuzIKGK(0o2P3gpp zb+460^6@{FR-{WwY*hpDN80$el!5K#VZ5cO_cBrY#h|_oSXYH8h+H}`Ksh`!Ol{j{ zt+|gV;a?|QR@)A6k&p$eWCZj;=h!pdXxOwj*E6J^AFM-vMaX{$)*ZN&b|Q%%IM@9` zHhyWp=4wJf_S^f~4a?`u_uupu8`5_hE^n>-Ab(rs$WU5}?EIAQs7_zAJ-w}Uf7<&3 zh2kV9pIS{_yz8@yC$Gf}A9hpTM)8at-I+f3J=$vhGYLA|IA<&%65ND5lLia|_b8Pa zvw-ZTX`v>HuLHmPvCV=YtD=dYXYy2kEvkE~Rb6r4C;C_LZ8I=JOqM zWCP<9k_y5~VrP{aj}NwW5uW`q95f*{S?oGO5ck?4yTtOD7iE49Yrs%TT6~1+@v zQU8AjoT&(E8E3Jgn|;pw;7wIOJxBPFuO~NvQE<;xD)_K^<;{UQU9@{?6cK#GsOAD z*8%o`Ka8slBE?ZkL3hvYIIcukRP6VZxQ$VIJ1+!n)4X>`Ef#qfD{_yK)}InN(P@Pz zS*huZ;}Vx&49Ja-R_J(gV$xVjd*(|xtv{~^SwYXhIXWVQS<5tGSkl{8JLawMt~KY< z!j?X5wmph%V*imGVYs32wtAor7b&>pBl?3M1JhTX^OP6_HNsNn+6x&$Q2o85O<$AZF}qJD;VwlQz_C4qfQb+!U=*6vYFoGgCVs zd#3JerFwAF;r36vzZC+NA}TEd4$SdUzN%!cE4A| z(XfnH&TnWSi(A{GW@eGg%9^$N^HngEUc;p95AdG5V^j3ip0SaGNz* zm(91YV5&XS2d=jkCyR=MT#F^4JwTHndH0nSmite3X~qF9n`|;w*t#9AmT}y^##FLF z!1Tne*)5mVKe@O z_2*|{%kl63Jg#?ttHOMe;fXD$lf{Q|sc&m{yE%-UTgNT6ebPFB7*YB>i=F)kd{ z8!${`l1vRc2;+?-gS8EXOmU!#$z!)mQ^4ML^t1}B7kZfpGD|+v!a#1u&$|1bJ8xE7 zsVIJM_>7qK*+gEs_YUL^B5$XussweiY+SLIirKIim#resu>ii7%d685(G_7^ZNoCM zV4J_@1@bpy3x6XTf7l2S)bpPe9klb6kLTK7p-}wXKH51d%IWQlI#l>RG@z#f%kZmG zByi*LmdAfquA|i=YuVbY+TUR3o(<~b?MGNC3WLAQBzfO2{a4r>c%`H+%?9?fn-s%E z52s+1_7gk0s;D)Ca0uT6e1&R1?RKfV`hqzi#}4G>=Z%a?PSCXT${Xzh#w>KL0>|h9 zfJw<V?Rh{RFBk}2L=6R57Q50D+oKY3ZrlKo@;(n zu49Gk3{Ap$I{6G(hQ1H8WbdZ<^m)7M7hBY5Ya&aq+QfWy$N~I#t$&p#~sCfld;TDq8{vT%UP;Lx{-rb%H0?r4#pW zt?UE_CIQWTb>he~)9#>8nTgZ3zkhzE?UepbQ~cOvr8Ywlw(dqVENgJiaQDDM@|jAi z31LjDi>B`zS{u#MAz%=)amKJIA_LjO$C1GQh@($c1{jHoKxN60xbl*VFEw{^t|=%V zrW)VBQd#Eet;fUPov^oqAg`^uPFB#{VK&rkr73vqyBkNF->vLWAD{Ahzrxyu#HTJ9 z*XW*)Tinix4=q!v)19vF2|HxObw>jK3I$qNGL|MC}FG?#Ei~*I-iHdzKxnP zac(fc_@0Z}GHPBsYZ8XvxP7%OT>9ap{>Jh-ZFgiQi++qqDonVCuG7|_+VK_ohh*W{ zNpPqpJY7KwMwjWjbQc*UJP`apemw5>``yCOO!GZ0dyfISfdabupBNa(DX$u`v#|>h zP?l2NPg}`n3lw9DQ=MFA`vY{ngg5kPs`lm9m^2X!Yd_WG`51X%nkd7pXP%v` zY%=#8#5qRC=>*#ao7p+)x&+jo=U$*~=bLbioZBsGK*o~<`R6zbaFCR%zC9XCy_&*M za2?s>ehS`RGg@@`#E?aUqnuV^pC|}eM*wyBm?B?qhz5+aeb0Bjp#)^esoWvHcDPK! zCcKJ~XvZDKM#HPqH%!pw!+-uQpe-D6$!=xD0Ns?;JD(GyNXv1?$f=gN*b-v`)CxQy z621LaBQ4S$&z;`v+q}M~AhzGQCiqXW$CG862PiX7v^aF-%DM9-k`>_*^75yZ;S41B z3Y}(S|AISX=#>v_4nSX4&&)Mk*}B^b(=xjplKVwxa#Q8`Yyu0nkNu;Kh8hD zDB3xemlBO&TIsJ|5u5V3}U^ z!xnb&t-o}Ty>R{Y6@CKv>F?DE6~BYyB2bJNc0wumP)}WWnJ>IyPD&!L`f!@Wxan+G zm!ZY;uB>>+W<^$$4$Jos)y?Zc!H(EgUt3a*I6(e*i&_X?4o13gBWAp*79=qkFdEO< zl8d=P%NndqwJy&`<_ZZDreSB{xKW+#1!mc=n~CHF4R|?0W86~;WYdbEhB>dplGhoS zCvVFG0P=Na>97HBVDz_9O8cur0-4+4v)ieOMX2Rj;*2~S+)L9xn6)CgL3%=Z|NQd2 z`RY6mc_(!fK!D7vi`)2%+zZ70krzMcOQ!UO=z0e~mJ>>Om#RUCDB-G0c;!?_&Hf!P z24GHRmJ)59;U=>|?gGCnY~q}gIaH2iv`~naI`vsgbxsi0Cryg+po}@*A6DWfNp5Fj^x_J=rF|P=+tY)3!~Of@OVG z=U#$35VHQbeGT{`CyQ}vxi@c7!>a=l?Qkur?jvs|e05wM%W2j(n|^#HqE)?Ec<*i? z`1}QpL{OUSt!G!JG2ygI# z8jM}O9Sxt0!+1`bpFO{|!%>xUPY$AJ)S$v@BRErh?}ahcsg33(?S$nz-Ja2B0b|xh z{x3g(OmQpHJLf2$sjPU@mzIvzzCN)y>%xITr&OK}P0|v!g8Qzt6mL zY!Q#F#$>26TtHZp({LcR7M5{}G#KWjPi?}Voe4nL@|>4Hlufx%?6SQTB)Io|rjV5L zlv~4x4{jm*>*MA@z8;C=!`sS2RzKifVi^bI?F>YEXRno)NvD^ zW7S45S@F98XS5YPJf*@)tXVP*Sb2Y&l`*)eu#wopd10>NqwoIEoJjF$h=k+zRwf;5 z8Q@%|rWA8Mq)fAGy6+m!r^6ag)fUFrm`G<)^-0=Bm=+#BRVqBic6onHGg9W>Sjuj5 ze~>cLVeYRR5K0~OS<-){3IQ&2>y+G)hEfw4*?0QhM}28;YT+EQ{Dn^4y^%AvBzcSu zTk9uK4;8&-)Y;_Yb|^>@Z4ABvL;wgQfv;`>3*rcPL_TTQ>#?li)%cMP7eeGaR9Bpe zL}>$bain|GeqZkS93^8Wz-NGwa);l_^F16S(OYTe-ZEiRi!tt-@LYovc3Z-L9T8B` zx(}&jv&b?ipTNh+d+|z^f;&F3AMyhk|a>@1l;oC@R3BJcgk#K9BY6US&EmB&s zH(Qw-7}63+1ssqQRLShZx+e2#HQDD>4!LiyRB)=pzq3Vms1gg|xa=}}nvHY_Nxs)h zPlnfkHd$beXcx@}GjwUgd7gdG(GsO0ic$>rtGH?|)mu4%;TyvG7(g+Oy%%>|nV9-N zi-OZXtrt?_>(RcnggD^JasE;d)4t~8X@|kuGLBljNZJu}ST?4>_$7V!z!}boqkklc z8oqYWG{wQAgMuC_Eh}J))4tdliNSRBDQ?71h^IZWKi_<;ViqipRLLjH9;M! z->jtva@{lJui+c)%^moL4V2c@3v|7%u#JbqKvCHjd;PX9m?Im^k)T_Af3tvym(}qmCn)=H@9bm#XPW zCPLD8`NeMJ2(#+F@Al1a(LwD07f5P84948N@qP$^_B??0s>bg9U_V~|!H4$4zqww8 z1Vrfj`DGMee6G^zE}iYs`F!!O0FYc@p6h8qJzPR?rr$Fn8;0uid9&2J>INe3;0KYf|5Cy<{ zYF2Yj%Ubcr3vh0-uc!Y4#O;0nkfE94P2lg@xQ}1h^Kva~`#(8?){^d@8UQsz;Ep?h zJ`MmRu9LUrXRvhuapulN-?#3IANs$@_*yaa|6^oyIV0@XtrKtHUw!i5Q}SPuIr?Az zk*oP%X8J>j;r}ya)Ekg%mT4Fz-xR)ty8hZuSbsHSuoBz*HSd^K!fdV1@V$HMi_qd! zA){N74mak3pfv$07%=U*bG?o03o?E~WX z&s|^34{ud-MbfjRcI^hzSNO{q2T~3sRT%=i-tq^#{@<0k5#Y5xfzWeJC{_ZpaM z{i+M}+3jFxPynWV>Tq!M(H*Gkz?b^PE%N>PjsC-@|3$X{>6Cc3!O%KEU{zvPdAy&F z9{_ccKz+U}z`sYM`CPH~crI1<`TBHPdvYYCviG+wmi&SEYZHQwso(4s1FC@7&I$fI z`agK#_`gBFNubWOtIc>wd?`xNbG^j(?LR#=6j`v^({+@R5Ex4D!OsfVfU8h0ye?^R z5)y(ICvAKHES0Okqv2Bb@R&Q_Z24=nM85j)6Z02|Ps3J1eox=-;3M%e0Og^@C800# zf!_wgpfcYW_FhXt$?wT7@o(>nl<|wbce{$BbT58^;^IC4dDPRx{4!lWuonyY8i^im z%N8)|*ET!8;pqa>!jIY3^P2W}^ z2-duQW97G>U@pGXME8%v-zn=if7wY9?cc74)C)^Xe}h8=oE$;PDSpu6FEsc8XY{9| zb^l$=e|P5pnq%e@H;uql2Qoi9!+YAKzEXm?ASO#5UU60W zKB%?*LJJW`*QLw9zQ||Ze{qecd@tUnqJ#5(e((6~2sB^20ocKJf;w*w7}-MBx^;gs zF~FkA0g3qy9ixA`ep}%SHJ=5Zva@Zie=!GZz8!kbOz$SJ*8X}aL>BPTh&ldEQf<*+ zdAW%8wg|wHQS%E}EAq$*CGKHF7`*#g|Se<4-+K7ip(>vqYtmT#lH>e(}YP5j$0fUcBC z&^4Ie_QQ_+HTE^W2}=|FJ#Y<#SH663;p-(~->|wiVFDQC5@-9jZC)>Q-wbTpSO3Nj zu!2X)C!lLfwXbcO2Vd-u_qa@b@4F28lE@<4)>^)e9-$7H ztd6>_?hkt*4P^VrBi~Nix1Q^Tq=EB*y#C{MV2S_rN2TkaMc_c(-XBo&{t1H%pm(IE*F12reEXv|I89$Yo8M0YA1B&-01Q99l|Qo9)0%%1#fFpnz?VGM z+P*wS_yCmM*9*M7b&X)h0Y`J$T6}ctzc1~T4WO3XRMf`reOW;La#5A^`HTPjFuJxB zn6cO=L*n~a#`fsQ9Zl~K!r@& z;QPbmUzgU&_lz+*)UU1eeI)_S~RcOECsN7?#^^&&sK{pInZ9hh*0wEOX~Z#xvB132&FcS?W!^c^u@_v9s? z<+x|1MSSmD4f^(MHcI&?3?w4}gJ&Oo!`im(xwaPY`}-bWI|^Xfbj#dzZPBmRftJll z$M1Yw{n`s70A;%Zr|YHHsIWQWwbHG$FP9X)!|+C>gZ>Hl(V;WK%R>tV-eHSNScEfd zF5Mggg*aAsEDC@iiYbedE6a^21>K$1NaD!sV{pz7zk;fY?HB&O z!T%9LGro{$x%JEcGVNjhT@rhrN9|vuv9LnQx*{uL|c+m!!D2=DMk#``02UrodR zxvMtVF4~dp?tfd{KgWJ80`~h((t!uJ{xeu>tzV<~2LJlU8Tv+FU&of@D_kP&#~=J{ zaciTjwStJyt+e)&U#{i+kLdji?qh%ucR4-zUF?531u1|dBcBLstWEHDu)eXVi$Z_^ wkDc6p;s??GpK$o!!}lLI<^P()7qPmHw0||sEXcEd9r*8rq1o|#gNrx*AM4KnbpQYW literal 0 HcmV?d00001 diff --git a/versioned_docs/version-8.7/components/console/manage-clusters/monitoring/cluster-metrics-endpoint/index.md b/versioned_docs/version-8.7/components/console/manage-clusters/monitoring/cluster-metrics-endpoint/index.md new file mode 100644 index 00000000000..0d08ddb2a24 --- /dev/null +++ b/versioned_docs/version-8.7/components/console/manage-clusters/monitoring/cluster-metrics-endpoint/index.md @@ -0,0 +1,57 @@ +--- +id: overview +title: Cluster Metrics endpoint +description: Learn how to expose and consume Camunda 8 SaaS cluster metrics using the Cluster Metrics endpoint. +--- + +The Cluster Metrics endpoint lets you expose metrics from a Camunda 8 SaaS Orchestration cluster and consume them in your own monitoring system. + +## About + +Use this endpoint to monitor cluster performance, set alerts, and correlate Camunda metrics with the rest of your infrastructure using your existing observability tools. + +This endpoint is a dedicated, customer-facing metrics service that exposes aggregated component-level metrics. The endpoint is separate from Camunda’s internal monitoring and operational systems and provides access only to metrics intended for customer consumption. + +## Before you begin + +Before using the Cluster Metrics endpoint, ensure that: + +- You have an external monitoring system capable of collecting prometheus metrics. +- You understand your organization’s network access and IP allowlisting requirements. + +## Supported environments + +- The Cluster Metrics endpoint is available for all Camunda 8 SaaS Orchestration clusters. +- The endpoint is configured per Orchestration cluster and can be enabled without requiring an upgrade or downtime. + +## Metrics exposure model + +The Cluster Metrics endpoint exposes metrics using a pull-based model and Prometheus-compatible format ([Prometheus](https://github.com/prometheus/docs/blob/main/docs/instrumenting/exposition_formats.md#text-based-format) and [OpenMetrics](https://github.com/prometheus/docs/blob/main/docs/instrumenting/exposition_formats.md#openmetrics-text-format) text exposition formats). + +![Cluster Metrics endpoint architecture](./img/cluster-metrics-endpoint-prometheus-architecture.png) + +When the Cluster Metrics endpoint is enabled for a cluster: + +- Camunda exposes a cluster-scoped metrics endpoint that aggregates metrics from all Orchestration cluster components. +- Metrics are exposed in Prometheus-compatible format. +- Your monitoring system initiates metric collection by scraping the endpoint. + +The Cluster Metrics endpoint does not push metrics to customer systems. + +## Monitoring endpoint constraints + +The Cluster Metrics endpoint exposes the application-level metrics produced by the Camunda version running in your cluster. + +The following constraints apply: + +- The Cluster Metrics endpoint uses Basic Authentication only. +- Metric names and labels depend on the Camunda version running in your cluster. +- Metric and dashboard compatibility between Camunda versions is not guaranteed. + +If your monitoring system does not support Prometheus scraping, you can adapt the metrics using a self-managed OpenTelemetry Collector. For more information, see [Integrate non-Prometheus monitoring systems](/components/console/manage-clusters/monitoring/cluster-metrics-endpoint/configure-monitoring-systems-to-scrape-metrics.md#integrate-non-prometheus-monitoring-systems). + +## Next steps + +- To enable the Cluster Metrics endpoint and obtain connection details, see [Set up the Cluster Metrics endpoint](/components/console/manage-clusters/monitoring/cluster-metrics-endpoint/set-up-cluster-metrics-endpoint.md). +- To configure Prometheus to scrape metrics, see [Configure monitoring systems to scrape metrics](/components/console/manage-clusters/monitoring/cluster-metrics-endpoint/configure-monitoring-systems-to-scrape-metrics.md). +- If your monitoring system does not support Prometheus scraping, see [Integrate non-Prometheus monitoring systems](/components/console/manage-clusters/monitoring/cluster-metrics-endpoint/configure-monitoring-systems-to-scrape-metrics.mdd#integrate-non-prometheus-monitoring-systems). diff --git a/versioned_docs/version-8.7/components/console/manage-clusters/monitoring/cluster-metrics-endpoint/set-up-cluster-metrics-endpoint.md b/versioned_docs/version-8.7/components/console/manage-clusters/monitoring/cluster-metrics-endpoint/set-up-cluster-metrics-endpoint.md new file mode 100644 index 00000000000..4c3f3eed9a7 --- /dev/null +++ b/versioned_docs/version-8.7/components/console/manage-clusters/monitoring/cluster-metrics-endpoint/set-up-cluster-metrics-endpoint.md @@ -0,0 +1,116 @@ +--- +id: set-up-cluster-metrics-endpoint +title: Set up the Cluster Metrics endpoint +description: Learn how to set up the Cluster Metrics endpoint in Camunda 8 SaaS, manage credentials, and obtain the connection details required to integrate with your monitoring system. +--- + +Set up and manage the Cluster Metrics endpoint for a Camunda 8 SaaS Orchestration cluster, including how to activate and deactivate the endpoint and obtain the connection details required to integrate it with an external monitoring system. + +## Before you begin + +Before enabling the Cluster Metrics endpoint, ensure that: + +- You are using Camunda 8 SaaS. +- You have access to Console and have permission to manage cluster-level settings. +- If allowlisting is configured for your cluster, the monitoring system’s source IP addresses are added to the cluster IP allowlist. + +## Enable Cluster Metrics endpoint + +Enable the Cluster Metrics endpoint per Orchestration cluster via either the Camunda Console or API. When the endpoint is enabled, Camunda provisions a secure, cluster-scoped metrics endpoint for external scraping. + +To activate the endpoint: + +1. Sign in to Camunda Console. +1. Navigate to **Clusters**. +1. Select an existing cluster, or create a new one. +1. Open the **Monitoring** tab for the cluster. +1. Click **Activate monitoring endpoint**. +1. Enter a **username** for the monitoring credentials. +1. Click **Activate**. + +### Capture connection details + +When the Cluster Metrics endpoint is activated, the Console displays a dialog containing the authentication credentials. + +1. Copy and store the password securely. +1. Click **Got it** to close the dialog. + +After closing the dialog, you can find the metrics endpoint URL in the **Monitoring** tab for the cluster. + +:::caution +Copy and safely store the password when it is displayed. The password is not shown again after you close the dialog. If you lose it, generate a new password. +::: + +The following information is required to connect your monitoring system: + +- **Metrics endpoint URL**: HTTPS endpoint used by your monitoring system to scrape metrics. +- **Username**: Used for Basic Authentication. +- **Password**: Used for Basic Authentication. + +## Manage authentication credentials + +Authentication credentials are created and managed in Camunda Console. + +### Create additional credentials + +You can create multiple credentials for the same cluster: + +1. On the **Monitoring** tab, click **Create new credentials**. +1. Enter a username. +1. Generate and copy the password when it is displayed. + + + +### Rotate credentials + +Ƭo rotate a password: + +1. On the **Monitoring** tab, locate the credential. +1. Click the **Generate password** icon next to the username. +1. Generate and copy the new password when prompted. + +When credentials are removed or rotated, previously issued credentials may continue to work briefly. Access may persist for up to five minutes before the credentials are fully invalidated. + +To avoid interruptions during credential rotation, you can create multiple credentials for the same cluster and update your monitoring system to switch between credentials, rather than rotating a single credential in place. + +## Authentication and IP allowlisting + +The Cluster Metrics endpoint enforces both authentication and network restrictions. + +| Restriction | Description | +| :-------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Authentication | The endpoint uses Basic Authentication. | +| IP allowlisting | The endpoint enforces the cluster-level IP allowlist.
  • Requests from non-allowlisted IP addresses are rejected.

  • If an IP allowlist is configured for the cluster, you must add the source IP addresses of your monitoring system to the allowlist to access the endpoint.

| + +### Error responses + +The Cluster Metrics endpoint returns standard HTTP status codes to indicate access and availability issues: + +| Scenario | HTTP status code | +| :--------------------------------------------- | :------------------------ | +| Request from a non-allowlisted IP address. | `403 Forbidden` | +| Invalid or missing authentication credentials. | `401 Unauthorized` | +| Request rate exceeds allowed limits. | `429 Too Many Requests` | +| Metrics endpoint is temporarily unavailable. | `503 Service Unavailable` | +| Request times out due to high load. | `504 Gateway Timeout` | + +## Disable the Cluster Metrics endpoint + +If you no longer want to expose cluster metrics externally, you can disable the Cluster Metrics endpoint: + +- Click **Deactivate** in the **Monitoring** tab, or +- Delete all credentials associated with the endpoint + +When the Cluster Metrics endpoint is disabled: + +- The monitoring endpoint is shut down almost immediately (typically within a few seconds). +- All existing credentials are deleted and are not retained if the endpoint is reactivated. +- Monitoring systems can no longer scrape metrics from the cluster. + +To use the endpoint again, you must reactivate it and create new credentials. Disabling the Cluster Metrics endpoint does not affect cluster operation or workload execution. + +## Next steps + +- To configure Prometheus to scrape metrics from the Cluster Metrics endpoint, see [Configure monitoring systems to scrape metrics](/components/console/manage-clusters/monitoring/cluster-metrics-endpoint/configure-monitoring-systems-to-scrape-metrics.md). +- If your monitoring system does not support Prometheus scraping, see [Integrate non-Prometheus monitoring systems](/components/console/manage-clusters/monitoring/cluster-metrics-endpoint/configure-monitoring-systems-to-scrape-metrics.md#integrate-non-prometheus-monitoring-systems). diff --git a/versioned_docs/version-8.7/components/console/manage-clusters/monitoring/index.md b/versioned_docs/version-8.7/components/console/manage-clusters/monitoring/index.md new file mode 100644 index 00000000000..cc871a20cf8 --- /dev/null +++ b/versioned_docs/version-8.7/components/console/manage-clusters/monitoring/index.md @@ -0,0 +1,13 @@ +--- +id: overview +title: Monitoring +description: Learn how to monitor Camunda 8 SaaS Orchestration Clusters using a secure metrics endpoint and your existing monitoring and observability tools. +--- + +Use your own monitoring and observability tools to observe the health and performance of your Camunda 8 SaaS Orchestration Clusters. + +## Cluster Metrics endpoint + +Camunda provides a secure, customer-facing metrics endpoint that exposes aggregated cluster metrics for external consumption. + + diff --git a/versioned_docs/version-8.8/components/saas/monitoring/cluster-metrics-endpoint/configure-monitoring-systems-to-scrape-metrics.md b/versioned_docs/version-8.8/components/saas/monitoring/cluster-metrics-endpoint/configure-monitoring-systems-to-scrape-metrics.md new file mode 100644 index 00000000000..5b7435ec9c4 --- /dev/null +++ b/versioned_docs/version-8.8/components/saas/monitoring/cluster-metrics-endpoint/configure-monitoring-systems-to-scrape-metrics.md @@ -0,0 +1,127 @@ +--- +id: configure-monitoring-systems-to-scrape-metrics +title: Configure monitoring systems to scrape metrics +description: Learn how to configure monitoring systems to scrape metrics from the Cluster Metrics endpoint in Camunda 8 SaaS. +--- + +Configure your monitoring systems to scrape metrics from a Camunda 8 SaaS cluster using the Cluster Metrics endpoint. + +## Before you begin + +Before configuring metric scraping, ensure that: + +- The Cluster Metrics endpoint is enabled for your Camunda 8 SaaS cluster. +- You have the metrics endpoint URL and authentication credentials. +- Your monitoring system can reach the endpoint from an allowlisted IP address. + +For information about the Cluster Metrics endpoint monitoring model and limitations, see [Cluster Metrics endpoint](/components/saas/monitoring/cluster-metrics-endpoint/index.md). + +## Metrics endpoint details + +The metrics endpoint: + +- Uses HTTPS +- Requires Basic Authentication +- Returns metrics in Prometheus format + +### Endpoint format + +The full metrics endpoint follows this format: `https:///` + +- ``: The domain hosting the metrics endpoint. +- ``: The identifier of the Camunda 8 SaaS cluster. + +## Configure Prometheus scraping + +Prometheus can scrape the Cluster Metrics endpoint directly. + +### Example scrape configuration + +```yaml +scrape_configs: + - job_name: "c8-" + scheme: https + metrics_path: / + static_configs: + - targets: + - + basic_auth: + username: + password: + scrape_timeout: 5s + scrape_interval: 30s +``` + +Configuration notes: + +- Use HTTPS. +- Configure Basic Authentication using the credentials provided when the Cluster Metrics endpoint was enabled. +- A scrape timeout of less than 10 seconds is recommended. +- A scrape interval of at least 15 seconds is recommended. Metrics are collected every 15–30 seconds, so shorter intervals do not produce new data. + +## Scrape interval and retention + +The Cluster Metrics endpoint exposes metrics from the most recent scrape only and does not retain historical data. + +Configure your monitoring system to store and retain metrics as needed. + +## Verify metric collection + +After configuring scraping: + +- Confirm that the scrape target reports a healthy state. +- Check that metrics correspond to the expected Camunda 8 cluster. + +If metrics do not appear, review authentication, network access, and scrape configuration. + +## Integrate non-Prometheus monitoring systems + +The Cluster Metrics endpoint exposes metrics in Prometheus-compatible formats. Some monitoring systems require additional components to ingest these metrics. + +In these cases, you can deploy a self-managed OpenTelemetry Collector to adapt the metrics to your monitoring system. For more information, see the [OpenTelemetry Collector documentation](https://opentelemetry.io/docs/collector/). + +![Integrate non-Prometheus monitoring systems](./img/cluster-metrics-endpoint-non-prometheus-architecture.png) + +Using an OpenTelemetry Collector allows you to normalize, enrich, and control the flow of metrics scraped from the Cluster Metrics endpoint. For example, you can: + +- Transform metrics to match internal naming conventions +- Filter metrics to reduce noise or control ingestion costs. +- Enrich metrics with standard labels such as environment or region. +- Forward metrics to one or more monitoring backends. +- Manage scrape behavior, buffering, retries, and backpressure without changing how Camunda exposes metrics. + +### Push-only monitoring systems + +If your monitoring system only supports push-based ingestion, use the following approach: + +1. Deploy a self-managed OpenTelemetry Collector. +1. Configure the collector to scrape the Cluster Metrics endpoint. +1. Configure the collector to push metrics to your monitoring system. + +Camunda provides the metrics endpoint only. You are responsible for deploying, configuring, and operating the collector. + +### Non-Prometheus metric formats + +If your monitoring system requires a format other than Prometheus, use an OpenTelemetry Collector with the appropriate exporter. + +The OpenTelemetry Collector supports a wide range of exporters, allowing you to forward metrics to different monitoring backends. + +For more information, see [OpenTelemetry Collector exporters](https://opentelemetry.io/docs/collector/components/exporter/). + +## Troubleshoot common issues + +### Authentication errors + +- Verify the configured username and password. +- Check that the monitoring system’s IP address is allowlisted. + +### Scrape timeouts + +- Increase the configured scrape timeout. +- Verify network connectivity to the metrics endpoint. + +### Missing or incomplete metrics + +- Confirm that the Cluster Metrics endpoint for the cluster is enabled and healthy. +- Verify that the cluster is running a supported Camunda version. +- Review scrape interval and retention behavior. diff --git a/versioned_docs/version-8.8/components/saas/monitoring/cluster-metrics-endpoint/img/cluster-metrics-endpoint-non-prometheus-architecture.png b/versioned_docs/version-8.8/components/saas/monitoring/cluster-metrics-endpoint/img/cluster-metrics-endpoint-non-prometheus-architecture.png new file mode 100644 index 0000000000000000000000000000000000000000..63bb065b298be41cf37bc746fe631186e02e4639 GIT binary patch literal 60891 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�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Ξ@+a4Dv2c7>P-j4JX*~v$pXusSeh}UD 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 literal 0 HcmV?d00001 diff --git a/versioned_docs/version-8.8/components/saas/monitoring/cluster-metrics-endpoint/index.md b/versioned_docs/version-8.8/components/saas/monitoring/cluster-metrics-endpoint/index.md new file mode 100644 index 00000000000..a41382a772a --- /dev/null +++ b/versioned_docs/version-8.8/components/saas/monitoring/cluster-metrics-endpoint/index.md @@ -0,0 +1,57 @@ +--- +id: overview +title: Cluster Metrics endpoint +description: Learn how to expose and consume Camunda 8 SaaS cluster metrics using the Cluster Metrics endpoint. +--- + +The Cluster Metrics endpoint lets you expose metrics from a Camunda 8 SaaS Orchestration cluster and consume them in your own monitoring system. + +## About + +Use this endpoint to monitor cluster performance, set alerts, and correlate Camunda metrics with the rest of your infrastructure using your existing observability tools. + +This endpoint is a dedicated, customer-facing metrics service that exposes aggregated component-level metrics. The endpoint is separate from Camunda’s internal monitoring and operational systems and provides access only to metrics intended for customer consumption. + +## Before you begin + +Before using the Cluster Metrics endpoint, ensure that: + +- You have an external monitoring system capable of collecting prometheus metrics. +- You understand your organization’s network access and IP allowlisting requirements. + +## Supported environments + +- The Cluster Metrics endpoint is available for all Camunda 8 SaaS Orchestration clusters. +- The endpoint is configured per Orchestration cluster and can be enabled without requiring an upgrade or downtime. + +## Metrics exposure model + +The Cluster Metrics endpoint exposes metrics using a pull-based model and Prometheus-compatible format ([Prometheus](https://github.com/prometheus/docs/blob/main/docs/instrumenting/exposition_formats.md#text-based-format) and [OpenMetrics](https://github.com/prometheus/docs/blob/main/docs/instrumenting/exposition_formats.md#openmetrics-text-format) text exposition formats). + +![Cluster Metrics endpoint architecture](./img/cluster-metrics-endpoint-prometheus-architecture.png) + +When the Cluster Metrics endpoint is enabled for a cluster: + +- Camunda exposes a cluster-scoped metrics endpoint that aggregates metrics from all Orchestration cluster components. +- Metrics are exposed in Prometheus-compatible format. +- Your monitoring system initiates metric collection by scraping the endpoint. + +The Cluster Metrics endpoint does not push metrics to customer systems. + +## Monitoring endpoint constraints + +The Cluster Metrics endpoint exposes the application-level metrics produced by the Camunda version running in your cluster. + +The following constraints apply: + +- The Cluster Metrics endpoint uses Basic Authentication only. +- Metric names and labels depend on the Camunda version running in your cluster. +- Metric and dashboard compatibility between Camunda versions is not guaranteed. + +If your monitoring system does not support Prometheus scraping, you can adapt the metrics using a self-managed OpenTelemetry Collector. For more information, see [Integrate non-Prometheus monitoring systems](/components/saas/monitoring/cluster-metrics-endpoint/configure-monitoring-systems-to-scrape-metrics.md#integrate-non-prometheus-monitoring-systems). + +## Next steps + +- To enable the Cluster Metrics endpoint and obtain connection details, see [Set up the Cluster Metrics endpoint](/components/saas/monitoring/cluster-metrics-endpoint/set-up-cluster-metrics-endpoint.md). +- To configure Prometheus to scrape metrics, see [Configure monitoring systems to scrape metrics](/components/saas/monitoring/cluster-metrics-endpoint/configure-monitoring-systems-to-scrape-metrics.md). +- If your monitoring system does not support Prometheus scraping, see [Integrate non-Prometheus monitoring systems](/components/saas/monitoring/cluster-metrics-endpoint/configure-monitoring-systems-to-scrape-metrics.md#integrate-non-prometheus-monitoring-systems). diff --git a/versioned_docs/version-8.8/components/saas/monitoring/cluster-metrics-endpoint/set-up-cluster-metrics-endpoint.md b/versioned_docs/version-8.8/components/saas/monitoring/cluster-metrics-endpoint/set-up-cluster-metrics-endpoint.md new file mode 100644 index 00000000000..1935f3a2ceb --- /dev/null +++ b/versioned_docs/version-8.8/components/saas/monitoring/cluster-metrics-endpoint/set-up-cluster-metrics-endpoint.md @@ -0,0 +1,116 @@ +--- +id: set-up-cluster-metrics-endpoint +title: Set up the Cluster Metrics endpoint +description: Learn how to set up the Cluster Metrics endpoint in Camunda 8 SaaS, manage credentials, and obtain the connection details required to integrate with your monitoring system. +--- + +Set up and manage the Cluster Metrics endpoint for a Camunda 8 SaaS Orchestration cluster, including how to activate and deactivate the endpoint and obtain the connection details required to integrate it with an external monitoring system. + +## Before you begin + +Before enabling the Cluster Metrics endpoint, ensure that: + +- You are using Camunda 8 SaaS. +- You have access to Console and have permission to manage cluster-level settings. +- If allowlisting is configured for your cluster, the monitoring system’s source IP addresses are added to the cluster IP allowlist. + +## Enable Cluster Metrics endpoint + +Enable the Cluster Metrics endpoint per Orchestration cluster via either the Camunda Console or API. When the endpoint is enabled, Camunda provisions a secure, cluster-scoped metrics endpoint for external scraping. + +To activate the endpoint: + +1. Sign in to Camunda Console. +1. Navigate to **Clusters**. +1. Select an existing cluster, or create a new one. +1. Open the **Monitoring** tab for the cluster. +1. Click **Activate monitoring endpoint**. +1. Enter a **username** for the monitoring credentials. +1. Click **Activate**. + +### Capture connection details + +When the Cluster Metrics endpoint is activated, the Console displays a dialog containing the authentication credentials. + +1. Copy and store the password securely. +1. Click **Got it** to close the dialog. + +After closing the dialog, you can find the metrics endpoint URL in the **Monitoring** tab for the cluster. + +:::caution +Copy and safely store the password when it is displayed. The password is not shown again after you close the dialog. If you lose it, generate a new password. +::: + +The following information is required to connect your monitoring system: + +- **Metrics endpoint URL**: HTTPS endpoint used by your monitoring system to scrape metrics. +- **Username**: Used for Basic Authentication. +- **Password**: Used for Basic Authentication. + +## Manage authentication credentials + +Authentication credentials are created and managed in Camunda Console. + +### Create additional credentials + +You can create multiple credentials for the same cluster: + +1. On the **Monitoring** tab, click **Create new credentials**. +1. Enter a username. +1. Generate and copy the password when it is displayed. + + + +### Rotate credentials + +Ƭo rotate a password: + +1. On the **Monitoring** tab, locate the credential. +1. Click the **Generate password** icon next to the username. +1. Generate and copy the new password when prompted. + +When credentials are removed or rotated, previously issued credentials may continue to work briefly. Access may persist for up to five minutes before the credentials are fully invalidated. + +To avoid interruptions during credential rotation, you can create multiple credentials for the same cluster and update your monitoring system to switch between credentials, rather than rotating a single credential in place. + +## Authentication and IP allowlisting + +The Cluster Metrics endpoint enforces both authentication and network restrictions. + +| Restriction | Description | +| :-------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Authentication | The endpoint uses Basic Authentication. | +| IP allowlisting | The endpoint enforces the cluster-level IP allowlist.
  • Requests from non-allowlisted IP addresses are rejected.

  • If an IP allowlist is configured for the cluster, you must add the source IP addresses of your monitoring system to the allowlist to access the endpoint.

| + +### Error responses + +The Cluster Metrics endpoint returns standard HTTP status codes to indicate access and availability issues: + +| Scenario | HTTP status code | +| :--------------------------------------------- | :------------------------ | +| Request from a non-allowlisted IP address. | `403 Forbidden` | +| Invalid or missing authentication credentials. | `401 Unauthorized` | +| Request rate exceeds allowed limits. | `429 Too Many Requests` | +| Metrics endpoint is temporarily unavailable. | `503 Service Unavailable` | +| Request times out due to high load. | `504 Gateway Timeout` | + +## Disable the Cluster Metrics endpoint + +If you no longer want to expose cluster metrics externally, you can disable the Cluster Metrics endpoint: + +- Click **Deactivate** in the **Monitoring** tab, or +- Delete all credentials associated with the endpoint + +When the Cluster Metrics endpoint is disabled: + +- The monitoring endpoint is shut down almost immediately (typically within a few seconds). +- All existing credentials are deleted and are not retained if the endpoint is reactivated. +- Monitoring systems can no longer scrape metrics from the cluster. + +To use the endpoint again, you must reactivate it and create new credentials. Disabling the Cluster Metrics endpoint does not affect cluster operation or workload execution. + +## Next steps + +- To configure Prometheus to scrape metrics from the Cluster Metrics endpoint, see [Configure monitoring systems to scrape metrics](/components/saas/monitoring/cluster-metrics-endpoint/configure-monitoring-systems-to-scrape-metrics.md). +- If your monitoring system does not support Prometheus scraping, see [Integrate non-Prometheus monitoring systems](/components/saas/monitoring/cluster-metrics-endpoint/configure-monitoring-systems-to-scrape-metrics.md#integrate-non-prometheus-monitoring-systems). diff --git a/versioned_docs/version-8.8/components/saas/monitoring/index.md b/versioned_docs/version-8.8/components/saas/monitoring/index.md new file mode 100644 index 00000000000..cc871a20cf8 --- /dev/null +++ b/versioned_docs/version-8.8/components/saas/monitoring/index.md @@ -0,0 +1,13 @@ +--- +id: overview +title: Monitoring +description: Learn how to monitor Camunda 8 SaaS Orchestration Clusters using a secure metrics endpoint and your existing monitoring and observability tools. +--- + +Use your own monitoring and observability tools to observe the health and performance of your Camunda 8 SaaS Orchestration Clusters. + +## Cluster Metrics endpoint + +Camunda provides a secure, customer-facing metrics endpoint that exposes aggregated cluster metrics for external consumption. + + diff --git a/versioned_sidebars/version-8.6-sidebars.json b/versioned_sidebars/version-8.6-sidebars.json index a69eee0d204..d07c6f7d1d1 100644 --- a/versioned_sidebars/version-8.6-sidebars.json +++ b/versioned_sidebars/version-8.6-sidebars.json @@ -121,6 +121,28 @@ "components/console/manage-clusters/manage-api-clients", "components/console/manage-clusters/manage-secrets", "components/console/manage-clusters/manage-alerts", + { + "type": "category", + "label": "Monitoring", + "link": { + "type": "doc", + "id": "components/console/manage-clusters/monitoring/overview" + }, + "items": [ + { + "type": "category", + "label": "Cluster Metrics endpoint", + "link": { + "type": "doc", + "id": "components/console/manage-clusters/monitoring/cluster-metrics-endpoint/overview" + }, + "items": [ + "components/console/manage-clusters/monitoring/cluster-metrics-endpoint/set-up-cluster-metrics-endpoint", + "components/console/manage-clusters/monitoring/cluster-metrics-endpoint/configure-monitoring-systems-to-scrape-metrics" + ] + } + ] + }, "components/console/manage-clusters/manage-ip-allowlists", "components/console/manage-clusters/create-backups", "components/console/manage-clusters/settings", diff --git a/versioned_sidebars/version-8.7-sidebars.json b/versioned_sidebars/version-8.7-sidebars.json index 5252ddb521d..03512d9ba52 100644 --- a/versioned_sidebars/version-8.7-sidebars.json +++ b/versioned_sidebars/version-8.7-sidebars.json @@ -135,6 +135,28 @@ "components/console/manage-clusters/manage-api-clients", "components/console/manage-clusters/manage-secrets", "components/console/manage-clusters/manage-alerts", + { + "type": "category", + "label": "Monitoring", + "link": { + "type": "doc", + "id": "components/console/manage-clusters/monitoring/overview" + }, + "items": [ + { + "type": "category", + "label": "Cluster Metrics endpoint", + "link": { + "type": "doc", + "id": "components/console/manage-clusters/monitoring/cluster-metrics-endpoint/overview" + }, + "items": [ + "components/console/manage-clusters/monitoring/cluster-metrics-endpoint/set-up-cluster-metrics-endpoint", + "components/console/manage-clusters/monitoring/cluster-metrics-endpoint/configure-monitoring-systems-to-scrape-metrics" + ] + } + ] + }, "components/console/manage-clusters/manage-ip-allowlists", "components/console/manage-clusters/create-backups", "components/console/manage-clusters/settings", diff --git a/versioned_sidebars/version-8.8-sidebars.json b/versioned_sidebars/version-8.8-sidebars.json index d92a8bb232e..84429ca8bee 100644 --- a/versioned_sidebars/version-8.8-sidebars.json +++ b/versioned_sidebars/version-8.8-sidebars.json @@ -1109,6 +1109,28 @@ "components/concepts/clusters", "components/saas/regions", "components/saas/data-locations", + { + "type": "category", + "label": "Monitoring", + "link": { + "type": "doc", + "id": "components/saas/monitoring/overview" + }, + "items": [ + { + "type": "category", + "label": "Cluster Metrics endpoint", + "link": { + "type": "doc", + "id": "components/saas/monitoring/cluster-metrics-endpoint/overview" + }, + "items": [ + "components/saas/monitoring/cluster-metrics-endpoint/set-up-cluster-metrics-endpoint", + "components/saas/monitoring/cluster-metrics-endpoint/configure-monitoring-systems-to-scrape-metrics" + ] + } + ] + }, { "type": "category", "label": "Encryption", From a7f82cbf6e6aaab33bde5222c49a82b8f685f5f7 Mon Sep 17 00:00:00 2001 From: Zainab Daodu Date: Mon, 12 Jan 2026 14:45:57 +0100 Subject: [PATCH 07/11] Remove todos --- .../set-up-cluster-metrics-endpoint.md | 3 --- .../set-up-cluster-metrics-endpoint.md | 3 --- .../set-up-cluster-metrics-endpoint.md | 3 --- .../set-up-cluster-metrics-endpoint.md | 3 --- 4 files changed, 12 deletions(-) diff --git a/docs/components/saas/monitoring/cluster-metrics-endpoint/set-up-cluster-metrics-endpoint.md b/docs/components/saas/monitoring/cluster-metrics-endpoint/set-up-cluster-metrics-endpoint.md index 1935f3a2ceb..3573b17e6de 100644 --- a/docs/components/saas/monitoring/cluster-metrics-endpoint/set-up-cluster-metrics-endpoint.md +++ b/docs/components/saas/monitoring/cluster-metrics-endpoint/set-up-cluster-metrics-endpoint.md @@ -59,9 +59,6 @@ You can create multiple credentials for the same cluster: 1. Enter a username. 1. Generate and copy the password when it is displayed. - - ### Rotate credentials Ƭo rotate a password: diff --git a/versioned_docs/version-8.6/components/console/manage-clusters/monitoring/cluster-metrics-endpoint/set-up-cluster-metrics-endpoint.md b/versioned_docs/version-8.6/components/console/manage-clusters/monitoring/cluster-metrics-endpoint/set-up-cluster-metrics-endpoint.md index 4c3f3eed9a7..5091864d68e 100644 --- a/versioned_docs/version-8.6/components/console/manage-clusters/monitoring/cluster-metrics-endpoint/set-up-cluster-metrics-endpoint.md +++ b/versioned_docs/version-8.6/components/console/manage-clusters/monitoring/cluster-metrics-endpoint/set-up-cluster-metrics-endpoint.md @@ -59,9 +59,6 @@ You can create multiple credentials for the same cluster: 1. Enter a username. 1. Generate and copy the password when it is displayed. - - ### Rotate credentials Ƭo rotate a password: diff --git a/versioned_docs/version-8.7/components/console/manage-clusters/monitoring/cluster-metrics-endpoint/set-up-cluster-metrics-endpoint.md b/versioned_docs/version-8.7/components/console/manage-clusters/monitoring/cluster-metrics-endpoint/set-up-cluster-metrics-endpoint.md index 4c3f3eed9a7..5091864d68e 100644 --- a/versioned_docs/version-8.7/components/console/manage-clusters/monitoring/cluster-metrics-endpoint/set-up-cluster-metrics-endpoint.md +++ b/versioned_docs/version-8.7/components/console/manage-clusters/monitoring/cluster-metrics-endpoint/set-up-cluster-metrics-endpoint.md @@ -59,9 +59,6 @@ You can create multiple credentials for the same cluster: 1. Enter a username. 1. Generate and copy the password when it is displayed. - - ### Rotate credentials Ƭo rotate a password: diff --git a/versioned_docs/version-8.8/components/saas/monitoring/cluster-metrics-endpoint/set-up-cluster-metrics-endpoint.md b/versioned_docs/version-8.8/components/saas/monitoring/cluster-metrics-endpoint/set-up-cluster-metrics-endpoint.md index 1935f3a2ceb..3573b17e6de 100644 --- a/versioned_docs/version-8.8/components/saas/monitoring/cluster-metrics-endpoint/set-up-cluster-metrics-endpoint.md +++ b/versioned_docs/version-8.8/components/saas/monitoring/cluster-metrics-endpoint/set-up-cluster-metrics-endpoint.md @@ -59,9 +59,6 @@ You can create multiple credentials for the same cluster: 1. Enter a username. 1. Generate and copy the password when it is displayed. - - ### Rotate credentials Ƭo rotate a password: From c0ebee76650d4b1449f15910f68d4e5dfa44954e Mon Sep 17 00:00:00 2001 From: Zainab Daodu Date: Mon, 12 Jan 2026 14:55:04 +0100 Subject: [PATCH 08/11] Update admonitions --- .../cluster-metrics-endpoint/set-up-cluster-metrics-endpoint.md | 2 +- .../cluster-metrics-endpoint/set-up-cluster-metrics-endpoint.md | 2 +- .../cluster-metrics-endpoint/set-up-cluster-metrics-endpoint.md | 2 +- .../cluster-metrics-endpoint/set-up-cluster-metrics-endpoint.md | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/components/saas/monitoring/cluster-metrics-endpoint/set-up-cluster-metrics-endpoint.md b/docs/components/saas/monitoring/cluster-metrics-endpoint/set-up-cluster-metrics-endpoint.md index 3573b17e6de..27e831ace03 100644 --- a/docs/components/saas/monitoring/cluster-metrics-endpoint/set-up-cluster-metrics-endpoint.md +++ b/docs/components/saas/monitoring/cluster-metrics-endpoint/set-up-cluster-metrics-endpoint.md @@ -37,7 +37,7 @@ When the Cluster Metrics endpoint is activated, the Console displays a dialog co After closing the dialog, you can find the metrics endpoint URL in the **Monitoring** tab for the cluster. -:::caution +:::warning Copy and safely store the password when it is displayed. The password is not shown again after you close the dialog. If you lose it, generate a new password. ::: diff --git a/versioned_docs/version-8.6/components/console/manage-clusters/monitoring/cluster-metrics-endpoint/set-up-cluster-metrics-endpoint.md b/versioned_docs/version-8.6/components/console/manage-clusters/monitoring/cluster-metrics-endpoint/set-up-cluster-metrics-endpoint.md index 5091864d68e..ec68af16653 100644 --- a/versioned_docs/version-8.6/components/console/manage-clusters/monitoring/cluster-metrics-endpoint/set-up-cluster-metrics-endpoint.md +++ b/versioned_docs/version-8.6/components/console/manage-clusters/monitoring/cluster-metrics-endpoint/set-up-cluster-metrics-endpoint.md @@ -37,7 +37,7 @@ When the Cluster Metrics endpoint is activated, the Console displays a dialog co After closing the dialog, you can find the metrics endpoint URL in the **Monitoring** tab for the cluster. -:::caution +:::warning Copy and safely store the password when it is displayed. The password is not shown again after you close the dialog. If you lose it, generate a new password. ::: diff --git a/versioned_docs/version-8.7/components/console/manage-clusters/monitoring/cluster-metrics-endpoint/set-up-cluster-metrics-endpoint.md b/versioned_docs/version-8.7/components/console/manage-clusters/monitoring/cluster-metrics-endpoint/set-up-cluster-metrics-endpoint.md index 5091864d68e..ec68af16653 100644 --- a/versioned_docs/version-8.7/components/console/manage-clusters/monitoring/cluster-metrics-endpoint/set-up-cluster-metrics-endpoint.md +++ b/versioned_docs/version-8.7/components/console/manage-clusters/monitoring/cluster-metrics-endpoint/set-up-cluster-metrics-endpoint.md @@ -37,7 +37,7 @@ When the Cluster Metrics endpoint is activated, the Console displays a dialog co After closing the dialog, you can find the metrics endpoint URL in the **Monitoring** tab for the cluster. -:::caution +:::warning Copy and safely store the password when it is displayed. The password is not shown again after you close the dialog. If you lose it, generate a new password. ::: diff --git a/versioned_docs/version-8.8/components/saas/monitoring/cluster-metrics-endpoint/set-up-cluster-metrics-endpoint.md b/versioned_docs/version-8.8/components/saas/monitoring/cluster-metrics-endpoint/set-up-cluster-metrics-endpoint.md index 3573b17e6de..27e831ace03 100644 --- a/versioned_docs/version-8.8/components/saas/monitoring/cluster-metrics-endpoint/set-up-cluster-metrics-endpoint.md +++ b/versioned_docs/version-8.8/components/saas/monitoring/cluster-metrics-endpoint/set-up-cluster-metrics-endpoint.md @@ -37,7 +37,7 @@ When the Cluster Metrics endpoint is activated, the Console displays a dialog co After closing the dialog, you can find the metrics endpoint URL in the **Monitoring** tab for the cluster. -:::caution +:::warning Copy and safely store the password when it is displayed. The password is not shown again after you close the dialog. If you lose it, generate a new password. ::: From ccd2047fa99a217b705297673223407178c64b78 Mon Sep 17 00:00:00 2001 From: Zainab Daodu Date: Mon, 12 Jan 2026 15:15:25 +0100 Subject: [PATCH 09/11] fix broken link --- .../monitoring/cluster-metrics-endpoint/index.md | 2 +- .../monitoring/cluster-metrics-endpoint/index.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/versioned_docs/version-8.6/components/console/manage-clusters/monitoring/cluster-metrics-endpoint/index.md b/versioned_docs/version-8.6/components/console/manage-clusters/monitoring/cluster-metrics-endpoint/index.md index 0d08ddb2a24..614d8660eb0 100644 --- a/versioned_docs/version-8.6/components/console/manage-clusters/monitoring/cluster-metrics-endpoint/index.md +++ b/versioned_docs/version-8.6/components/console/manage-clusters/monitoring/cluster-metrics-endpoint/index.md @@ -54,4 +54,4 @@ If your monitoring system does not support Prometheus scraping, you can adapt th - To enable the Cluster Metrics endpoint and obtain connection details, see [Set up the Cluster Metrics endpoint](/components/console/manage-clusters/monitoring/cluster-metrics-endpoint/set-up-cluster-metrics-endpoint.md). - To configure Prometheus to scrape metrics, see [Configure monitoring systems to scrape metrics](/components/console/manage-clusters/monitoring/cluster-metrics-endpoint/configure-monitoring-systems-to-scrape-metrics.md). -- If your monitoring system does not support Prometheus scraping, see [Integrate non-Prometheus monitoring systems](/components/console/manage-clusters/monitoring/cluster-metrics-endpoint/configure-monitoring-systems-to-scrape-metrics.mdd#integrate-non-prometheus-monitoring-systems). +- If your monitoring system does not support Prometheus scraping, see [Integrate non-Prometheus monitoring systems](/components/console/manage-clusters/monitoring/cluster-metrics-endpoint/configure-monitoring-systems-to-scrape-metrics.md#integrate-non-prometheus-monitoring-systems). diff --git a/versioned_docs/version-8.7/components/console/manage-clusters/monitoring/cluster-metrics-endpoint/index.md b/versioned_docs/version-8.7/components/console/manage-clusters/monitoring/cluster-metrics-endpoint/index.md index 0d08ddb2a24..614d8660eb0 100644 --- a/versioned_docs/version-8.7/components/console/manage-clusters/monitoring/cluster-metrics-endpoint/index.md +++ b/versioned_docs/version-8.7/components/console/manage-clusters/monitoring/cluster-metrics-endpoint/index.md @@ -54,4 +54,4 @@ If your monitoring system does not support Prometheus scraping, you can adapt th - To enable the Cluster Metrics endpoint and obtain connection details, see [Set up the Cluster Metrics endpoint](/components/console/manage-clusters/monitoring/cluster-metrics-endpoint/set-up-cluster-metrics-endpoint.md). - To configure Prometheus to scrape metrics, see [Configure monitoring systems to scrape metrics](/components/console/manage-clusters/monitoring/cluster-metrics-endpoint/configure-monitoring-systems-to-scrape-metrics.md). -- If your monitoring system does not support Prometheus scraping, see [Integrate non-Prometheus monitoring systems](/components/console/manage-clusters/monitoring/cluster-metrics-endpoint/configure-monitoring-systems-to-scrape-metrics.mdd#integrate-non-prometheus-monitoring-systems). +- If your monitoring system does not support Prometheus scraping, see [Integrate non-Prometheus monitoring systems](/components/console/manage-clusters/monitoring/cluster-metrics-endpoint/configure-monitoring-systems-to-scrape-metrics.md#integrate-non-prometheus-monitoring-systems). From a64023c5181524d0702f2da8f23d77d1482d871a Mon Sep 17 00:00:00 2001 From: Zainab Daodu Date: Tue, 13 Jan 2026 17:55:43 +0100 Subject: [PATCH 10/11] Add credential limit and verification command --- .../configure-monitoring-systems-to-scrape-metrics.md | 8 ++++++++ .../set-up-cluster-metrics-endpoint.md | 4 +++- .../configure-monitoring-systems-to-scrape-metrics.md | 8 ++++++++ .../set-up-cluster-metrics-endpoint.md | 4 +++- .../configure-monitoring-systems-to-scrape-metrics.md | 8 ++++++++ .../set-up-cluster-metrics-endpoint.md | 4 +++- .../configure-monitoring-systems-to-scrape-metrics.md | 8 ++++++++ .../set-up-cluster-metrics-endpoint.md | 4 +++- 8 files changed, 44 insertions(+), 4 deletions(-) diff --git a/docs/components/saas/monitoring/cluster-metrics-endpoint/configure-monitoring-systems-to-scrape-metrics.md b/docs/components/saas/monitoring/cluster-metrics-endpoint/configure-monitoring-systems-to-scrape-metrics.md index 5b7435ec9c4..931628a01b6 100644 --- a/docs/components/saas/monitoring/cluster-metrics-endpoint/configure-monitoring-systems-to-scrape-metrics.md +++ b/docs/components/saas/monitoring/cluster-metrics-endpoint/configure-monitoring-systems-to-scrape-metrics.md @@ -31,6 +31,14 @@ The full metrics endpoint follows this format: `https:///`: The domain hosting the metrics endpoint. - ``: The identifier of the Camunda 8 SaaS cluster. +### Verify endpoint access + +Before configuring your monitoring system, use the following command to verify that the Cluster Metrics endpoint is reachable: + +```bash +curl -v -u ":" https:/// +``` + ## Configure Prometheus scraping Prometheus can scrape the Cluster Metrics endpoint directly. diff --git a/docs/components/saas/monitoring/cluster-metrics-endpoint/set-up-cluster-metrics-endpoint.md b/docs/components/saas/monitoring/cluster-metrics-endpoint/set-up-cluster-metrics-endpoint.md index 27e831ace03..1721bd52f88 100644 --- a/docs/components/saas/monitoring/cluster-metrics-endpoint/set-up-cluster-metrics-endpoint.md +++ b/docs/components/saas/monitoring/cluster-metrics-endpoint/set-up-cluster-metrics-endpoint.md @@ -53,7 +53,9 @@ Authentication credentials are created and managed in Camunda Console. ### Create additional credentials -You can create multiple credentials for the same cluster: +You can create up to 20 credentials per cluster. + +To create additional credentials: 1. On the **Monitoring** tab, click **Create new credentials**. 1. Enter a username. diff --git a/versioned_docs/version-8.6/components/console/manage-clusters/monitoring/cluster-metrics-endpoint/configure-monitoring-systems-to-scrape-metrics.md b/versioned_docs/version-8.6/components/console/manage-clusters/monitoring/cluster-metrics-endpoint/configure-monitoring-systems-to-scrape-metrics.md index 054618b03af..7da5b707041 100644 --- a/versioned_docs/version-8.6/components/console/manage-clusters/monitoring/cluster-metrics-endpoint/configure-monitoring-systems-to-scrape-metrics.md +++ b/versioned_docs/version-8.6/components/console/manage-clusters/monitoring/cluster-metrics-endpoint/configure-monitoring-systems-to-scrape-metrics.md @@ -31,6 +31,14 @@ The full metrics endpoint follows this format: `https:///`: The domain hosting the metrics endpoint. - ``: The identifier of the Camunda 8 SaaS cluster. +### Verify endpoint access + +Before configuring your monitoring system, use the following command to verify that the Cluster Metrics endpoint is reachable: + +```bash +curl -v -u ":" https:/// +``` + ## Configure Prometheus scraping Prometheus can scrape the Cluster Metrics endpoint directly. diff --git a/versioned_docs/version-8.6/components/console/manage-clusters/monitoring/cluster-metrics-endpoint/set-up-cluster-metrics-endpoint.md b/versioned_docs/version-8.6/components/console/manage-clusters/monitoring/cluster-metrics-endpoint/set-up-cluster-metrics-endpoint.md index ec68af16653..435534b2c5e 100644 --- a/versioned_docs/version-8.6/components/console/manage-clusters/monitoring/cluster-metrics-endpoint/set-up-cluster-metrics-endpoint.md +++ b/versioned_docs/version-8.6/components/console/manage-clusters/monitoring/cluster-metrics-endpoint/set-up-cluster-metrics-endpoint.md @@ -53,7 +53,9 @@ Authentication credentials are created and managed in Camunda Console. ### Create additional credentials -You can create multiple credentials for the same cluster: +You can create up to 20 credentials per cluster. + +To create additional credentials: 1. On the **Monitoring** tab, click **Create new credentials**. 1. Enter a username. diff --git a/versioned_docs/version-8.7/components/console/manage-clusters/monitoring/cluster-metrics-endpoint/configure-monitoring-systems-to-scrape-metrics.md b/versioned_docs/version-8.7/components/console/manage-clusters/monitoring/cluster-metrics-endpoint/configure-monitoring-systems-to-scrape-metrics.md index 054618b03af..7da5b707041 100644 --- a/versioned_docs/version-8.7/components/console/manage-clusters/monitoring/cluster-metrics-endpoint/configure-monitoring-systems-to-scrape-metrics.md +++ b/versioned_docs/version-8.7/components/console/manage-clusters/monitoring/cluster-metrics-endpoint/configure-monitoring-systems-to-scrape-metrics.md @@ -31,6 +31,14 @@ The full metrics endpoint follows this format: `https:///`: The domain hosting the metrics endpoint. - ``: The identifier of the Camunda 8 SaaS cluster. +### Verify endpoint access + +Before configuring your monitoring system, use the following command to verify that the Cluster Metrics endpoint is reachable: + +```bash +curl -v -u ":" https:/// +``` + ## Configure Prometheus scraping Prometheus can scrape the Cluster Metrics endpoint directly. diff --git a/versioned_docs/version-8.7/components/console/manage-clusters/monitoring/cluster-metrics-endpoint/set-up-cluster-metrics-endpoint.md b/versioned_docs/version-8.7/components/console/manage-clusters/monitoring/cluster-metrics-endpoint/set-up-cluster-metrics-endpoint.md index ec68af16653..435534b2c5e 100644 --- a/versioned_docs/version-8.7/components/console/manage-clusters/monitoring/cluster-metrics-endpoint/set-up-cluster-metrics-endpoint.md +++ b/versioned_docs/version-8.7/components/console/manage-clusters/monitoring/cluster-metrics-endpoint/set-up-cluster-metrics-endpoint.md @@ -53,7 +53,9 @@ Authentication credentials are created and managed in Camunda Console. ### Create additional credentials -You can create multiple credentials for the same cluster: +You can create up to 20 credentials per cluster. + +To create additional credentials: 1. On the **Monitoring** tab, click **Create new credentials**. 1. Enter a username. diff --git a/versioned_docs/version-8.8/components/saas/monitoring/cluster-metrics-endpoint/configure-monitoring-systems-to-scrape-metrics.md b/versioned_docs/version-8.8/components/saas/monitoring/cluster-metrics-endpoint/configure-monitoring-systems-to-scrape-metrics.md index 5b7435ec9c4..931628a01b6 100644 --- a/versioned_docs/version-8.8/components/saas/monitoring/cluster-metrics-endpoint/configure-monitoring-systems-to-scrape-metrics.md +++ b/versioned_docs/version-8.8/components/saas/monitoring/cluster-metrics-endpoint/configure-monitoring-systems-to-scrape-metrics.md @@ -31,6 +31,14 @@ The full metrics endpoint follows this format: `https:///`: The domain hosting the metrics endpoint. - ``: The identifier of the Camunda 8 SaaS cluster. +### Verify endpoint access + +Before configuring your monitoring system, use the following command to verify that the Cluster Metrics endpoint is reachable: + +```bash +curl -v -u ":" https:/// +``` + ## Configure Prometheus scraping Prometheus can scrape the Cluster Metrics endpoint directly. diff --git a/versioned_docs/version-8.8/components/saas/monitoring/cluster-metrics-endpoint/set-up-cluster-metrics-endpoint.md b/versioned_docs/version-8.8/components/saas/monitoring/cluster-metrics-endpoint/set-up-cluster-metrics-endpoint.md index 27e831ace03..1721bd52f88 100644 --- a/versioned_docs/version-8.8/components/saas/monitoring/cluster-metrics-endpoint/set-up-cluster-metrics-endpoint.md +++ b/versioned_docs/version-8.8/components/saas/monitoring/cluster-metrics-endpoint/set-up-cluster-metrics-endpoint.md @@ -53,7 +53,9 @@ Authentication credentials are created and managed in Camunda Console. ### Create additional credentials -You can create multiple credentials for the same cluster: +You can create up to 20 credentials per cluster. + +To create additional credentials: 1. On the **Monitoring** tab, click **Create new credentials**. 1. Enter a username. From 125a2e3ec67772bc1ad9aec2f8ef75e9e3b2d18f Mon Sep 17 00:00:00 2001 From: Zainab Daodu Date: Tue, 20 Jan 2026 12:38:38 +0100 Subject: [PATCH 11/11] Update 890-release-notes.md --- .../890/890-release-notes.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/docs/reference/announcements-release-notes/890/890-release-notes.md b/docs/reference/announcements-release-notes/890/890-release-notes.md index 580500f097c..776e2a77e67 100644 --- a/docs/reference/announcements-release-notes/890/890-release-notes.md +++ b/docs/reference/announcements-release-notes/890/890-release-notes.md @@ -92,6 +92,18 @@ New documentation shows you how to: - Install Camunda 8 Run with H2 as the default secondary storage. - Seamlessly switch from H2 to Elasticsearch or OpenSearch when required. +### Cluster Metrics endpoint + +
SaaSConsole
+ + +Camunda 8.9 provides a Cluster Metrics endpoint for SaaS clusters. + +- Activate a secure metrics endpoint for your cluster and integrate it with Prometheus, Datadog, or any monitoring system that supports Prometheus scraping. +- Get real-time visibility into cluster performance, troubleshoot faster, and integrate with your existing observability stack. + + + ### Global user task listeners
Self-Managed