diff --git a/docs/explanation/overview/what-is-cos.md b/docs/explanation/overview/what-is-cos.md index 08567850..94cdfccc 100644 --- a/docs/explanation/overview/what-is-cos.md +++ b/docs/explanation/overview/what-is-cos.md @@ -1,12 +1,12 @@ --- myst: html_meta: - description: "Learn what the Canonical Observability Stack (COS) is, how it works, what it does, and the flavours available." + description: "Learn what the Canonical Observability Stack (COS) is, how it works, what it does, and the flavors available." --- # What is COS? -The Canonical Observability Stack (COS) is a highly-integrated, low-operations observability suite powered by [Juju](https://documentation.ubuntu.com/juju/3.6/) and Kubernetes. There are two flavours available: COS (sometimes referred to as COS HA) and COS Lite. +The Canonical Observability Stack (COS) is a highly-integrated, low-operations observability suite powered by [Juju](https://documentation.ubuntu.com/juju/3.6/) and Kubernetes. There are two flavors available: COS (sometimes referred to as COS HA) and COS Lite. COS gathers, processes, visualises, and alerts on telemetry (metrics, logs, and traces) generated by workloads running both within and outside of Juju. By leveraging Juju's topology model to contextualise data and charm relations to automate configuration and integration, it provides a turn-key observability solution built on best-in-class, open-source tools. @@ -29,9 +29,9 @@ For more detail, see [Telemetry Flow](/explanation/architecture/telemetry-flow) By modelling observability as a set of Juju relations, COS eliminates the manual configuration burden typically associated with spinning up a monitoring stack. Dashboards, alert rules, and scrape targets are automatically provisioned when charms are related. This application of Juju topology also means that telemetry is contextualised out of the box, enabling admins to filter and correlate data by model, application, or unit without any extra instrumentation. The result is a full-stack, self-monitoring observability platform that evolves alongside the applications it observes. -## Flavours of COS: COS and COS Lite +## Flavors of COS: COS and COS Lite -There are two flavours available: COS and COS Lite. Each is suited to different deployment scenarios: +There are two flavors available: COS and COS Lite. Each is suited to different deployment scenarios: | | COS | COS Lite | |--------------------------|--------------------------------------------------------------|-----------------------------------------------------------| @@ -50,7 +50,7 @@ The key architectural difference between COS and COS Lite is how the backends ar COS is built around a **coordinator/worker pattern**: each backend (Mimir, Loki, Tempo) is split into a coordinator charm and one or more worker charms, allowing individual components to be scaled out independently and placed on separate nodes. An Nginx layer handles load balancing across workers before traffic reaches Traefik. This makes COS HA suitable for high-availability, enterprise deployments where telemetry volumes are large and resilience to node failure is required. COS Lite, by contrast, runs each backend as a single monolithic charm, which is simpler to deploy and much lighter on resources, but without the horizontal scalability or trace support. -Both flavours share the same Grafana, Alertmanager, Traefik, and Catalogue charms. +Both flavors share the same Grafana, Alertmanager, Traefik, and Catalogue charms. ## Useful links diff --git a/docs/how-to/configure-and-tune/customize-storage-options.md b/docs/how-to/configure-and-tune/customize-storage-options.md index a08afe3a..c943395d 100644 --- a/docs/how-to/configure-and-tune/customize-storage-options.md +++ b/docs/how-to/configure-and-tune/customize-storage-options.md @@ -47,12 +47,10 @@ If you don't specify a size, a PVC will be created with a default size of 1G bac Add a `storage_directive` for each storage container in your terraform file. For COS Lite it may look like this: ```diff -module "cos-lite" { - source = "git::https://github.com/canonical/observability-stack//terraform/cos-lite?ref=track/2" +module "cos-lite" { + source = "git::https://github.com/canonical/observability-stack//terraform/cos-lite?ref=main" model_uuid = juju_model.cos.uuid - channel = "2/stable" - ssc = { channel = "1/stable" } - traefik = { channel = "latest/stable" } + risk = "edge" + # Adding storage for Prometheus + prometheus = { diff --git a/docs/how-to/deploy-and-manage/cos-ingress.tf b/docs/how-to/deploy-and-manage/cos-ingress.tf index 6ceb6369..29933732 100644 --- a/docs/how-to/deploy-and-manage/cos-ingress.tf +++ b/docs/how-to/deploy-and-manage/cos-ingress.tf @@ -6,7 +6,7 @@ module "cos" { # Use the right source value depending on whether you are using cos or cos-lite source = "git::https://github.com/canonical/observability-stack//terraform/cos?ref=main" model_uuid = juju_model.cos.uuid - channel = "dev/edge" + risk = "edge" # ... other inputs ... diff --git a/docs/how-to/deploy-and-manage/cos-tls.tf b/docs/how-to/deploy-and-manage/cos-tls.tf index 5b8d99b1..68224f85 100644 --- a/docs/how-to/deploy-and-manage/cos-tls.tf +++ b/docs/how-to/deploy-and-manage/cos-tls.tf @@ -4,11 +4,11 @@ resource "juju_model" "cos" { module "cos" { # Use the right source value depending on whether you are using cos or cos-lite - source = "git::https://github.com/canonical/observability-stack//terraform/cos?ref=track/2" - model_uuid = juju_model.cos.uuid - channel = "2/stable" - internal_tls = true # TLS between in-model applications - + source = "git::https://github.com/canonical/observability-stack//terraform/cos?ref=main" + model_uuid = juju_model.cos.uuid + risk = "edge" + internal_tls = true # TLS between in-model applications + # Update the _offer_url inputs with the offered endpoints of the external CA's model external_certificates_offer_url = "admin/external-ca-model.certificates" # Set to 'null' to communicate with Traefik via HTTP, i.e. no 'external_tls' external_ca_cert_offer_url = "admin/external-ca-model.send-ca-cert" # Required if 'external_certificates_offer_url' is set diff --git a/docs/reference/glossary.md b/docs/reference/glossary.md index 8b660309..feac61d0 100644 --- a/docs/reference/glossary.md +++ b/docs/reference/glossary.md @@ -42,7 +42,7 @@ See [COS components](/reference/cos-components). ## COS Lite -A resource-constrained flavour of COS that runs monolithic Loki and +A resource-constrained flavor of COS that runs monolithic Loki and Prometheus, without Tempo. Recommended for near-edge and single-node deployments. See [What is COS?](/explanation/overview/what-is-cos). @@ -76,7 +76,7 @@ CMRs are the primary mechanism by which workloads in other models — including models — send telemetry to COS. See [Integration matrix](/reference/integration-matrix). -## Flavour +## Flavor Informal term for the two COS deployment variants: **COS** (scalable, HA) and **COS Lite** (monolithic, resource-constrained). Both share Grafana, Alertmanager, diff --git a/docs/tutorial/cos-canonical-k8s-sandbox.conf b/docs/tutorial/cos-canonical-k8s-sandbox.conf index 5ef0d901..2e919987 100644 --- a/docs/tutorial/cos-canonical-k8s-sandbox.conf +++ b/docs/tutorial/cos-canonical-k8s-sandbox.conf @@ -74,17 +74,15 @@ runcmd: } module "cos" { - source = "git::https://github.com/canonical/observability-stack//terraform/cos?ref=track/2" + source = "git::https://github.com/canonical/observability-stack//terraform/cos?ref=main" model_uuid = juju_model.cos.uuid - channel = "2/stable" + risk = "edge" anti_affinity = false internal_tls = false external_certificates_offer_url = null s3_endpoint = "http://$IPADDR:8080" s3_secret_key = "secret-key" s3_access_key = "access-key" - ssc = { channel = "1/stable" } - traefik = { channel = "latest/stable" } } EOF # [docs:create-terraform-module-end] diff --git a/docs/tutorial/cos-lite-microk8s-sandbox.tf b/docs/tutorial/cos-lite-microk8s-sandbox.tf index c3d1a1b0..853c42df 100644 --- a/docs/tutorial/cos-lite-microk8s-sandbox.tf +++ b/docs/tutorial/cos-lite-microk8s-sandbox.tf @@ -14,9 +14,9 @@ resource "juju_model" "cos" { } module "cos-lite" { - source = "git::https://github.com/canonical/observability-stack//terraform/cos-lite?ref=track/2" + source = "git::https://github.com/canonical/observability-stack//terraform/cos-lite?ref=main" model_uuid = juju_model.cos.uuid - channel = "2/stable" + risk = "edge" ssc = { channel = "1/stable" } traefik = { channel = "latest/edge" } }