diff --git a/docs/configuration/alertmanager-integration/alert-custom-prometheus.rst b/docs/configuration/alertmanager-integration/alert-custom-prometheus.rst index 19d0e7d74..f97fb6182 100644 --- a/docs/configuration/alertmanager-integration/alert-custom-prometheus.rst +++ b/docs/configuration/alertmanager-integration/alert-custom-prometheus.rst @@ -23,37 +23,35 @@ Prerequisites * Kube-Prometheus-Stack, installed via Robusta or seperately. * Enable global rule selection for the Prometheus operator. Add the following config to your ``generated_values.yaml``. (By default Prometheus Operator picks up only certain new alerts, here we tell it to pick up all new alerts) - .. grid-item:: + .. md-tab-set:: - .. md-tab-set:: + .. md-tab-item:: Robusta Prometheus - .. md-tab-item:: Robusta Prometheus - - .. code-block:: yaml - - kube-prometheus-stack: - prometheus: - prometheusSpec: - ruleNamespaceSelector: {} # (1) - ruleSelector: {} # (2) - ruleSelectorNilUsesHelmValues: false # (3) - - .. code-annotations:: - 1. Add a namespace if you want Prometheus to identify rules created in specific namespaces. Leave ``{}`` to detect rules from any namespace. - 2. Add a label if you want Prometheus to detect rules with a specific selector. Leave ``{}`` to detect rules with any label. - 3. When set to `false`, Prometheus detects rules that are created directly, not just rules created using helm values file. - - .. md-tab-item:: Other Prometheus - - .. code-block:: yaml + .. code-block:: yaml + kube-prometheus-stack: prometheus: prometheusSpec: ruleNamespaceSelector: {} # (1) ruleSelector: {} # (2) ruleSelectorNilUsesHelmValues: false # (3) - .. code-annotations:: + .. code-annotations:: + 1. Add a namespace if you want Prometheus to identify rules created in specific namespaces. Leave ``{}`` to detect rules from any namespace. + 2. Add a label if you want Prometheus to detect rules with a specific selector. Leave ``{}`` to detect rules with any label. + 3. When set to `false`, Prometheus detects rules that are created directly, not just rules created using helm values file. + + .. md-tab-item:: Other Prometheus + + .. code-block:: yaml + + prometheus: + prometheusSpec: + ruleNamespaceSelector: {} # (1) + ruleSelector: {} # (2) + ruleSelectorNilUsesHelmValues: false # (3) + + .. code-annotations:: 1. Add a namespace if you want Prometheus to identify rules created in specific namespaces. Leave ``{}`` to detect rules from any namespace. 2. Add a label if you want Prometheus to detect rules with a specific selector. Leave ``{}`` to detect rules with any label. 3. When set to `false`, Prometheus detects rules that are created directly, not just rules created using helm values file. diff --git a/docs/configuration/alertmanager-integration/alert-manager.rst b/docs/configuration/alertmanager-integration/alert-manager.rst index 06db76eaf..cc5ffa4cd 100644 --- a/docs/configuration/alertmanager-integration/alert-manager.rst +++ b/docs/configuration/alertmanager-integration/alert-manager.rst @@ -7,7 +7,7 @@ Here's how to integrate an existing Prometheus with Robusta in the same cluster: * Point Robusta at Prometheus so it can query metrics and silence alerts * Robusta will attempt auto-detection, so this is not always necessary! -If your Prometheus is in a different cluster, refer to :ref:`Centralized Prometheus`. +If your Prometheus is in a different cluster, refer to :ref:`External Prometheus`. Send Alerts to Robusta ============================ diff --git a/docs/configuration/alertmanager-integration/embedded-prometheus.rst b/docs/configuration/alertmanager-integration/embedded-prometheus.rst index 219c9f5be..da46dad65 100644 --- a/docs/configuration/alertmanager-integration/embedded-prometheus.rst +++ b/docs/configuration/alertmanager-integration/embedded-prometheus.rst @@ -54,5 +54,5 @@ Apply the change by performing a :ref:`Helm Upgrade `. Troubleshooting --------------------- -Encountering issues with your Prometheus? Follow this guide to resolve some :ref:`common errors `. +Encountering issues with your Prometheus? Follow this guide to resolve some :doc:`common errors `. diff --git a/docs/configuration/alertmanager-integration/google-managed-prometheus.rst b/docs/configuration/alertmanager-integration/google-managed-prometheus.rst index 2e997fcfe..326056395 100644 --- a/docs/configuration/alertmanager-integration/google-managed-prometheus.rst +++ b/docs/configuration/alertmanager-integration/google-managed-prometheus.rst @@ -9,10 +9,10 @@ Prerequisites **************** An instance of Google Managed Prometheus with the following components configured: -* Prometheus Frontend (`Instructions `_) -* Node Exporter (`Instructions `_) -* Scraping configuration for Kubelet and cAdvisor (`Instructions `_) -* Kube State Metrics (`Instructions `_) +* Prometheus Frontend (`Frontend Instructions `_) +* Node Exporter (`Node Exporter Instructions `_) +* Scraping configuration for Kubelet and cAdvisor (`Kubelet/cAdvisor Instructions `_) +* Kube State Metrics (`Kube State Metrics Instructions `_) Send Alerts to Robusta ******************************************** diff --git a/docs/configuration/alertmanager-integration/index.rst b/docs/configuration/alertmanager-integration/index.rst index 4412a9e69..3d8665958 100644 --- a/docs/configuration/alertmanager-integration/index.rst +++ b/docs/configuration/alertmanager-integration/index.rst @@ -28,29 +28,24 @@ Connect Robusta to your Prometheus setup to get enriched alerts with logs, event :gutter: 3 - .. grid-item-card:: Prometheus in same cluster + .. grid-item-card:: In-cluster Prometheus :class-card: sd-bg-light sd-bg-text-light :link: alert-manager :link-type: doc - .. grid-item-card:: Prometheus outside cluster + .. grid-item-card:: External Prometheus :class-card: sd-bg-light sd-bg-text-light :link: outofcluster-prometheus :link-type: doc - .. grid-item-card:: AWS Managed Prometheus - :class-card: sd-bg-light sd-bg-text-light - :link: eks-managed-prometheus - :link-type: doc - .. grid-item-card:: Azure Managed Prometheus :class-card: sd-bg-light sd-bg-text-light :link: azure-managed-prometheus :link-type: doc - .. grid-item-card:: Google Managed Prometheus + .. grid-item-card:: AWS Managed Prometheus :class-card: sd-bg-light sd-bg-text-light - :link: google-managed-prometheus + :link: eks-managed-prometheus :link-type: doc .. grid-item-card:: Coralogix @@ -58,6 +53,11 @@ Connect Robusta to your Prometheus setup to get enriched alerts with logs, event :link: coralogix_managed_prometheus :link-type: doc + .. grid-item-card:: Google Managed Prometheus + :class-card: sd-bg-light sd-bg-text-light + :link: google-managed-prometheus + :link-type: doc + .. grid-item-card:: VictoriaMetrics :class-card: sd-bg-light sd-bg-text-light :link: victoria-metrics diff --git a/docs/configuration/alertmanager-integration/nagios.rst b/docs/configuration/alertmanager-integration/nagios.rst index dd7db7940..31f48ab0d 100644 --- a/docs/configuration/alertmanager-integration/nagios.rst +++ b/docs/configuration/alertmanager-integration/nagios.rst @@ -74,7 +74,7 @@ Ensure Robusta is part of a contact group or explicitly included in your alert d } Step 4: Create the Bash Command Script -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Save this as `notify-robusta.sh`, ensure it's executable (`chmod +x notify-robusta.sh`), and Nagios can access it. diff --git a/docs/configuration/alertmanager-integration/outofcluster-prometheus.rst b/docs/configuration/alertmanager-integration/outofcluster-prometheus.rst index 16c3fcb35..bef4a5826 100644 --- a/docs/configuration/alertmanager-integration/outofcluster-prometheus.rst +++ b/docs/configuration/alertmanager-integration/outofcluster-prometheus.rst @@ -1,4 +1,4 @@ -Centralized Prometheus +External Prometheus ************************************** Follow this guide to connect Robusta to a central Prometheus (e.g. Thanos/Mimir), running outside the cluster monitored by Robusta. @@ -50,7 +50,7 @@ This integration lets your central Prometheus send alerts to Robusta, as if they Filtering Prometheus Queries by Cluster ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -If the same centralized Prometheus is used for many clusters, you will want to add a cluster name to all queries. +If the same external Prometheus is used for many clusters, you will want to add a cluster name to all queries. You can do so with the ``prometheus_url_query_string`` parameter, shown below: diff --git a/docs/configuration/holmesgpt/custom_toolsets.rst b/docs/configuration/holmesgpt/custom_toolsets.rst index 5453a8e99..9b75b158f 100644 --- a/docs/configuration/holmesgpt/custom_toolsets.rst +++ b/docs/configuration/holmesgpt/custom_toolsets.rst @@ -281,6 +281,7 @@ First `create a GitHub Personal Access Token with fine-grained permissions `_ to analyze health issues on your cluster, and to run AI based root cause analysis for alerts. +Robusta integrates with `HolmesGPT `_ to provide AI-powered root cause analysis for your alerts. It automatically investigates issues by analyzing logs, metrics, and Kubernetes state. This requires a Robusta SaaS account, and for the Robusta UI sink to be enabled. (We have plans to support HolmesGPT in a pure OSS mode in the near future. Stay tuned!) diff --git a/docs/configuration/holmesgpt/toolsets/opensearch_logs.rst b/docs/configuration/holmesgpt/toolsets/opensearch_logs.rst index 1f4a612e8..9edec72e7 100644 --- a/docs/configuration/holmesgpt/toolsets/opensearch_logs.rst +++ b/docs/configuration/holmesgpt/toolsets/opensearch_logs.rst @@ -1,7 +1,7 @@ .. _toolset_opensearch_logs: OpenSearch logs -============== +=============== By enabling this toolset, HolmesGPT will fetch pod logs from `OpenSearch `_. diff --git a/docs/configuration/holmesgpt/toolsets/rabbitmq.rst b/docs/configuration/holmesgpt/toolsets/rabbitmq.rst index d6cf1ff70..c8cbf1367 100644 --- a/docs/configuration/holmesgpt/toolsets/rabbitmq.rst +++ b/docs/configuration/holmesgpt/toolsets/rabbitmq.rst @@ -1,4 +1,4 @@ -.. _toolset_prometheus: +.. _toolset_rabbitmq: RabbitMQ ======== diff --git a/docs/configuration/sinks/PagerDuty.rst b/docs/configuration/sinks/PagerDuty.rst index 587527226..6b3bd991b 100644 --- a/docs/configuration/sinks/PagerDuty.rst +++ b/docs/configuration/sinks/PagerDuty.rst @@ -55,7 +55,7 @@ Add the following code to your generated_values.yaml. This will send all alerts Save the file and run .. code-block:: bash - :name: cb-add-pagerduty-sink + :name: cb-add-pagerduty-sink-alerts helm upgrade robusta robusta/robusta --values=generated_values.yaml @@ -91,7 +91,7 @@ Add the following code to your generated_values.yaml file. This will send all ch Save the file and run .. code-block:: bash - :name: cb-add-pagerduty-sink + :name: cb-add-pagerduty-sink-changes helm upgrade robusta robusta/robusta --values=generated_values.yaml diff --git a/docs/configuration/sinks/RobustaUI.rst b/docs/configuration/sinks/RobustaUI.rst index 793601cfd..440840712 100644 --- a/docs/configuration/sinks/RobustaUI.rst +++ b/docs/configuration/sinks/RobustaUI.rst @@ -32,7 +32,7 @@ Use the ``robusta`` CLI to generate a token: Add a new sink to your Helm values (``generated_values.yaml``), under ``sinksConfig``, with the token you generated: .. code-block:: bash - :name: cb-robusta-ui-sink-config + :name: cb-robusta-ui-sink-config-basic sinksConfig: - robusta_sink: @@ -51,7 +51,7 @@ If you have many short-lived clusters, you can remove them from the UI automatic To do so, configure a shorter retention period by setting the ``ttl_hours`` in the Robusta UI sink settings: .. code-block:: bash - :name: cb-robusta-ui-sink-config + :name: cb-robusta-ui-sink-config-ttl sinksConfig: - robusta_sink: diff --git a/docs/configuration/sinks/slack.rst b/docs/configuration/sinks/slack.rst index 3cd7c7641..4294f7ee6 100644 --- a/docs/configuration/sinks/slack.rst +++ b/docs/configuration/sinks/slack.rst @@ -7,7 +7,7 @@ Robusta can proxy Prometheus alerts to Slack, adding powerful features like :ref :width: 600px :align: center -Optionally, Robusta can monitor Kubernetes directly and send notifications on deployment changes or Kubernetes errors. +Robusta can send both Prometheus alerts and direct Kubernetes notifications (pod crashes, deployment changes, etc.) to Slack. .. warning:: @@ -15,15 +15,19 @@ Optionally, Robusta can monitor Kubernetes directly and send notifications on de Follow `these steps `_ to upgrade. -Connecting Slack +Quick Start ------------------------------------------------ -When installing Robusta, run ``robusta gen-config`` and follow the prompt to create a Slack API key. This will use our `official +**Option 1: Automatic Setup (Recommended)** + +When installing Robusta, run ``robusta gen-config`` and follow the prompts. This automatically configures Slack using our `official Slack app `_. -**Note: Robusta can only write messages and doesn't require read permissions.** +Note: Robusta can only write messages and doesn't require read permissions. + +**Option 2: Manual Configuration** -You can also generate a Slack API key by running ``robusta integrations slack`` and setting the following Helm values in your ``generated_values.yaml``: +Generate a Slack API key by running ``robusta integrations slack``, then add to your ``generated_values.yaml``: .. code-block:: yaml diff --git a/docs/how-it-works/alert-builtin-enrichment.rst b/docs/how-it-works/alert-builtin-enrichment.rst index 3ff138582..32e0720aa 100644 --- a/docs/how-it-works/alert-builtin-enrichment.rst +++ b/docs/how-it-works/alert-builtin-enrichment.rst @@ -25,14 +25,14 @@ Testing out Prometheus alerts 1. Deploy a broken pod that will be stuck in pending state: .. code-block:: bash - :name: cb-apply-crashpod + :name: cb-apply-pendingpod kubectl apply -f https://raw.githubusercontent.com/robusta-dev/kubernetes-demos/main/pending_pods/pending_pod_resources.yaml 2. Trigger a Prometheus alert immediately, skipping the normal delays: .. code-block:: bash - :name: cb-apply-crashpod + :name: cb-trigger-prometheus-alert robusta playbooks trigger prometheus_alert alert_name=KubePodCrashLooping namespace=default pod_name=example-pod @@ -47,7 +47,7 @@ Testing out APIServer alerts Let's deploy a crashing pod: .. code-block:: bash - :name: cb-apply-crashpod + :name: cb-apply-crashpod-apiserver kubectl apply -f https://gist.githubusercontent.com/robusta-lab/283609047306dc1f05cf59806ade30b6/raw diff --git a/docs/index.rst b/docs/index.rst index 564468e23..4bc576ea1 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -52,7 +52,7 @@ playbook-reference/index configuration/alertmanager-integration/alert-custom-prometheus Cost Savings - KRR - K8s Misconfigurations - Popeye + K8s Misconfigurations - Popeye .. toctree:: :maxdepth: 4 @@ -91,7 +91,7 @@ Robusta transforms basic Prometheus alerts into actionable insights with full Ku * **Smart Grouping** - Reduce notification spam * **AI Investigation** - Kickstart alert investigation with AI * **Alert Enrichment** - Pod logs, events and more alongside alerts - * **Advanced Routing** - Based on team, namespace, and more + Connect to your existing Prometheus or install our all-in-one bundle (based on kube-prometheus-stack). Need to go beyond Kubernetes? `Try Robusta Pro `_. diff --git a/docs/notification-routing/disable-oomkill-notifications.rst b/docs/notification-routing/disable-oomkill-notifications.rst index 4bfabc29c..b458c97bb 100644 --- a/docs/notification-routing/disable-oomkill-notifications.rst +++ b/docs/notification-routing/disable-oomkill-notifications.rst @@ -8,4 +8,4 @@ Configure Robusta to not send OOMKill notifications by disabling the built-in OO disabledPlaybooks: - PodOOMKill -Similarly you can to disable any built-in notification using the name of the playbook. Find all the built-in playbooks `here `_ and `here `_ \ No newline at end of file +Similarly you can to disable any built-in notification using the name of the playbook. Find all the built-in playbooks `here (prometheus) `_ and `here (kubernetes) `_ \ No newline at end of file diff --git a/docs/notification-routing/notification-grouping.rst b/docs/notification-routing/notification-grouping.rst index 5d27af832..69953a65e 100644 --- a/docs/notification-routing/notification-grouping.rst +++ b/docs/notification-routing/notification-grouping.rst @@ -3,14 +3,13 @@ Notification Grouping (Slack Only) ========================================================= -You can consolidate alerts into Slack threads to reduce the number of notifications. -Each thread begins with a summary message that updates in real time as new alerts are received. +Reduce alert noise by grouping related notifications into Slack threads. Instead of flooding channels with individual alerts, Robusta creates summary messages with threaded details. .. image:: /images/notification-grouping.png :width: 600px :align: center -*Example: Alerts from a cluster are consolidated into a daily summary message, with individual alerts in the thread.* +*Example: Multiple alerts consolidated into a daily summary with individual alerts in the thread.* Configuring Notification Grouping ---------------------------------- diff --git a/docs/playbook-reference/actions/event-enrichment.rst b/docs/playbook-reference/actions/event-enrichment.rst index bbc46e723..756594cb5 100644 --- a/docs/playbook-reference/actions/event-enrichment.rst +++ b/docs/playbook-reference/actions/event-enrichment.rst @@ -1,7 +1,7 @@ Event Enrichment #################################### -The actions are used to gather extra data on errors, alerts, and other cluster events. +Enrichment actions automatically gather context when alerts fire. They fetch logs, metrics, events, and diagnostic data to help you understand and resolve issues faster. Use them as building blocks in your own automations, or write :ref:`your own enrichment actions in Python `. diff --git a/docs/playbook-reference/kubernetes-examples/playbook-track-secrets.rst b/docs/playbook-reference/kubernetes-examples/playbook-track-secrets.rst index c0492e8ec..d2463b220 100644 --- a/docs/playbook-reference/kubernetes-examples/playbook-track-secrets.rst +++ b/docs/playbook-reference/kubernetes-examples/playbook-track-secrets.rst @@ -1,4 +1,5 @@ .. _track-secrets-overview: + Track Kubernetes Secret Changes ############################################ diff --git a/docs/setup-robusta/installation/_see_robusta_in_action-2.rst b/docs/setup-robusta/installation/_see_robusta_in_action-2.rst index 76b0b9754..bf5e3fcf7 100644 --- a/docs/setup-robusta/installation/_see_robusta_in_action-2.rst +++ b/docs/setup-robusta/installation/_see_robusta_in_action-2.rst @@ -1,6 +1,7 @@ .. currently unused, I hope to clean this up and integrate it later :orphan: + See Robusta in action ------------------------------ diff --git a/docs/setup-robusta/installation/index.rst b/docs/setup-robusta/installation/index.rst index 47a906b42..90e708426 100644 --- a/docs/setup-robusta/installation/index.rst +++ b/docs/setup-robusta/installation/index.rst @@ -15,8 +15,6 @@ Installation Guides extend-prometheus-installation standalone-installation dev-setup - - .. grid:: 1 1 2 2 :gutter: 2 @@ -26,33 +24,18 @@ Installation Guides :link: all-in-one-installation :link-type: doc - .. grid-item-card:: Integrate with Existing Prometheus + Five minute setup. Great default alerts. Powered by Prometheus and Robusta. + + .. grid-item-card:: Add Robusta to Existing Prometheus :class-card: sd-bg-light sd-bg-text-light :link: extend-prometheus-installation :link-type: doc - .. grid-item:: - .. raw:: html - - Five minute setup. Great default alerts. Powered by Prometheus and Robusta. - - .. grid-item:: - .. raw:: html - - Make your existing alerts better. Attach pod logs. Automatic alert insights. - -Don't want Prometheus? Use :ref:`Robusta without Prometheus `. - + Make your existing alerts better. Attach pod logs. Automatic alert insights. -Already installed Robusta? See what you can do with it. -------------------------------------------------------------- - -`Route alerts to different teams based on namespace, alertname, and more `_ - -`Enhance Prometheus alerts with Robusta `_ - -`Define new Prometheus alerts `_ - -`Configure auto-remediate for Prometheus alerts `_ + .. grid-item-card:: Use Robusta's AI Agent with other monitoring tools + :class-card: sd-bg-light sd-bg-text-light + :link: install-barebones + :link-type: doc -`Track Kubernetes errors and changes using simple YAML `_ + Use Robusta's AI Agent alongside DataDog, NewRelic, SolarWinds, and more.