From 5f9c04a7a4059372df97267454503627325349e2 Mon Sep 17 00:00:00 2001 From: "avi@robusta.dev" Date: Tue, 21 Oct 2025 10:53:26 +0300 Subject: [PATCH 1/4] updated docs --- .../alertmanager-integration/launchdarkly.rst | 131 ++++++++++++++++++ .../exporting/robusta-pro-features.rst | 13 +- docs/configuration/index.rst | 7 + docs/index.rst | 7 +- 4 files changed, 155 insertions(+), 3 deletions(-) create mode 100644 docs/configuration/alertmanager-integration/launchdarkly.rst diff --git a/docs/configuration/alertmanager-integration/launchdarkly.rst b/docs/configuration/alertmanager-integration/launchdarkly.rst new file mode 100644 index 000000000..e73d63a12 --- /dev/null +++ b/docs/configuration/alertmanager-integration/launchdarkly.rst @@ -0,0 +1,131 @@ +LaunchDarkly Integration with Robusta +===================================== + +.. note:: + This feature is available with the Robusta SaaS platform and self-hosted commercial plans. It is not available in the open-source version. + +This guide explains how to route LaunchDarkly feature flag changes to Robusta's UI via a webhook. + +Requirements +------------ + +- Robusta must already be deployed and running in your environment. +- You have admin access to the Robusta UI (to create API keys and view your ``account_id``). +- You have admin access to LaunchDarkly (to create webhook integrations). + +Integration Steps +----------------- + +We will configure: + +1. A Robusta API key and account ID. +2. A LaunchDarkly **Webhook Integration** pointing to Robusta. +3. Configure the webhook to send feature flag change events. + +Step 1: Get Account ID and API Key +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Obtain your Robusta ``account_id`` and create an API key: + +1. In the Robusta UI, navigate to **Settings → API Keys**. +2. Click **New API Key**. +3. Name the key **LaunchDarkly**, grant it **Read/Write** access to alerts, and click **Generate API Key**. +4. Copy and securely store the generated API key. +5. In **Settings → Workspace**, copy your **account_id**. + +Step 2: Create a Webhook Integration in LaunchDarkly +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +In LaunchDarkly: + +1. Go to **Settings → Integrations → Webhook**. +2. Click the **Add integration** button. +3. Configure: + + - **Name**: ``Robusta`` + - **URL**: ``https://api.robusta.dev/integrations/generic/launchdarkly?api_key=YOUR_API_KEY_HERE&account_id=YOUR_ACCOUNT_ID_HERE`` + - Replace ``YOUR_API_KEY_HERE`` with the API key from Step 1. + - Replace ``YOUR_ACCOUNT_ID_HERE`` with your account ID from Step 1. + +4. **Statement**: Leave as default or customize as needed. +5. **Resource type**: Select **FLAG**. +6. **Select flags**: Choose the specific flags you want to monitor, or select all. +7. **Project and environments**: Select the projects and environments you want to track. +8. Save the integration. + +Alternative: Using Headers Instead of URL Parameters +-------------------------------------------------- + +If you're using a third-party service that can forward requests, you can alternatively configure the webhook to use headers instead of URL parameters: + +- **URL**: ``https://api.robusta.dev/integrations/generic/launchdarkly`` +- **Headers**: + - ``account-id``: Your Robusta account ID + - ``api_key``: Your Robusta API key + +What Gets Tracked +----------------- + +The integration automatically tracks: + +- **Feature flag changes**: When flags are turned on/off, created, or modified +- **Environment changes**: Changes to flag configurations in specific environments +- **Member actions**: Who made the changes and when +- **Configuration diffs**: Before and after states of flag configurations +- **Approval workflows**: Approval requests and status changes + +Alert Information +----------------- + +Each LaunchDarkly change creates a Robusta alert with: + +- **Title**: Descriptive title showing who made the change and what flag was affected +- **Description**: Detailed information about the change, including member details +- **Labels**: Flag key, environment, action type, and source information +- **Evidence**: + - Configuration diff showing before/after states + - Markdown summary with flag details, project, environment, and reason +- **Fingerprint**: Unique identifier for change aggregation + +Validation +---------- + +1. Make a test change to a feature flag in LaunchDarkly (turn it on/off, modify targeting, etc.). +2. In Robusta's UI, verify the alert appears with: + - Correct flag name and environment + - Member information (who made the change) + - Configuration diff showing the change + - Proper labels and annotations + +Troubleshooting +--------------- + +- **No alerts appearing**: Verify the webhook URL is correct and the API key has proper permissions. +- **Missing member information**: Ensure the LaunchDarkly webhook payload includes member details. +- **Wrong environment**: Check that the correct projects and environments are selected in the LaunchDarkly webhook configuration. +- **Missing configuration diffs**: Ensure the webhook is configured to send both ``previousVersion`` and ``currentVersion`` data. + +For additional support, check the Robusta logs for any LaunchDarkly webhook processing errors. + +Holmes Configuration +------------------- + +To enable Holmes to pull LaunchDarkly changes into the AI assistant, add the following configuration to your ``generated_values.yaml`` file and upgrade the Robusta Helm chart: + +.. code-block:: yaml + + holmes: + additionalEnvVars: + - name: PULL_EXTERNAL_FINDINGS + value: "true" + +After updating the configuration: + +1. Save the ``generated_values.yaml`` file. +2. Run: ``helm upgrade robusta robusta/robusta -f generated_values.yaml`` +3. Restart the Holmes pod to pick up the new environment variable. + +This enables Holmes to access and analyze LaunchDarkly feature flag changes, allowing you to ask questions like: +- "What feature flags were changed recently?" +- "Who modified the authentication flag?" +- "Show me all flag changes in the production environment." diff --git a/docs/configuration/exporting/robusta-pro-features.rst b/docs/configuration/exporting/robusta-pro-features.rst index 37dc354a5..ca256cbb7 100644 --- a/docs/configuration/exporting/robusta-pro-features.rst +++ b/docs/configuration/exporting/robusta-pro-features.rst @@ -22,11 +22,20 @@ Send alerts to Robusta from any monitoring system using HTTP webhooks. :doc:`Custom Webhooks ` Send alerts from any system that supports HTTP webhooks, including custom monitoring solutions. -:doc:`Nagios Integration <../alertmanager-integration/nagios>` - Forward alerts from Nagios to Robusta for enrichment and automation. +:doc:`Datadog Integration <../alertmanager-integration/datadog>` + Forward alerts from Datadog to Robusta via webhooks. + +:doc:`New Relic Integration <../alertmanager-integration/newrelic>` + Forward alerts from New Relic to Robusta via webhooks. + +:doc:`LaunchDarkly Integration <../alertmanager-integration/launchdarkly>` + Forward feature flag changes from LaunchDarkly to Robusta via webhooks. :doc:`SolarWinds Integration <../alertmanager-integration/solarwinds>` Configure SolarWinds to send alert webhooks directly to Robusta. + +:doc:`Nagios Integration <../alertmanager-integration/nagios>` + Forward alerts from Nagios to Robusta for enrichment and automation. Data Export and Reporting APIs ------------------------------- diff --git a/docs/configuration/index.rst b/docs/configuration/index.rst index caccc6915..18db403e1 100644 --- a/docs/configuration/index.rst +++ b/docs/configuration/index.rst @@ -52,4 +52,11 @@ Connect your monitoring system to Robusta, to enrich alerts and apply automation Forward PagerDuty incidents and alerts by webhook + .. grid-item-card:: :octicon:`bell;1em;` LaunchDarkly + :class-card: sd-bg-light sd-bg-text-light + :link: alertmanager-integration/launchdarkly + :link-type: doc + + Forward LaunchDarkly changes by webhook + .. **Have alerts elsewhere?** Send alerts via the generic :doc:`HTTP webhook endpoint `. diff --git a/docs/index.rst b/docs/index.rst index 035ffe627..d084c6c1a 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -25,8 +25,13 @@ Overview Prometheus & AlertManager - Nagios + Datadog + New Relic SolarWinds + PagerDuty + Dynatrace + LaunchDarkly + Nagios Custom Webhooks .. toctree:: From bf5ed72e4896bbb63d9a82834987b8d8b366e66d Mon Sep 17 00:00:00 2001 From: "avi@robusta.dev" Date: Tue, 21 Oct 2025 11:07:28 +0300 Subject: [PATCH 2/4] fixed change --- docs/configuration/exporting/robusta-pro-features.rst | 5 +---- docs/index.rst | 1 - 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/docs/configuration/exporting/robusta-pro-features.rst b/docs/configuration/exporting/robusta-pro-features.rst index ca256cbb7..6be112cfa 100644 --- a/docs/configuration/exporting/robusta-pro-features.rst +++ b/docs/configuration/exporting/robusta-pro-features.rst @@ -22,9 +22,6 @@ Send alerts to Robusta from any monitoring system using HTTP webhooks. :doc:`Custom Webhooks ` Send alerts from any system that supports HTTP webhooks, including custom monitoring solutions. -:doc:`Datadog Integration <../alertmanager-integration/datadog>` - Forward alerts from Datadog to Robusta via webhooks. - :doc:`New Relic Integration <../alertmanager-integration/newrelic>` Forward alerts from New Relic to Robusta via webhooks. @@ -33,7 +30,7 @@ Send alerts to Robusta from any monitoring system using HTTP webhooks. :doc:`SolarWinds Integration <../alertmanager-integration/solarwinds>` Configure SolarWinds to send alert webhooks directly to Robusta. - + :doc:`Nagios Integration <../alertmanager-integration/nagios>` Forward alerts from Nagios to Robusta for enrichment and automation. diff --git a/docs/index.rst b/docs/index.rst index d084c6c1a..099b09cd4 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -25,7 +25,6 @@ Overview Prometheus & AlertManager - Datadog New Relic SolarWinds PagerDuty From 4b06cf95e208a05e74962eb1093ad61784d8d64a Mon Sep 17 00:00:00 2001 From: "avi@robusta.dev" Date: Tue, 21 Oct 2025 11:35:54 +0300 Subject: [PATCH 3/4] updated docs --- .../alertmanager-integration/launchdarkly.rst | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/docs/configuration/alertmanager-integration/launchdarkly.rst b/docs/configuration/alertmanager-integration/launchdarkly.rst index e73d63a12..fe1a8b312 100644 --- a/docs/configuration/alertmanager-integration/launchdarkly.rst +++ b/docs/configuration/alertmanager-integration/launchdarkly.rst @@ -47,21 +47,29 @@ In LaunchDarkly: - Replace ``YOUR_API_KEY_HERE`` with the API key from Step 1. - Replace ``YOUR_ACCOUNT_ID_HERE`` with your account ID from Step 1. -4. **Statement**: Leave as default or customize as needed. +4. **Statement**: Click the Add the statement button. 5. **Resource type**: Select **FLAG**. 6. **Select flags**: Choose the specific flags you want to monitor, or select all. 7. **Project and environments**: Select the projects and environments you want to track. 8. Save the integration. +.. Note:: + + Other resource types other than **FLAG** are not verified to work though they might function without additional configuration. + Alternative: Using Headers Instead of URL Parameters -------------------------------------------------- If you're using a third-party service that can forward requests, you can alternatively configure the webhook to use headers instead of URL parameters: - **URL**: ``https://api.robusta.dev/integrations/generic/launchdarkly`` -- **Headers**: - - ``account-id``: Your Robusta account ID - - ``api_key``: Your Robusta API key +- **Headers**: These are the headers to configure: + + .. code-block:: http + + Authorization: Bearer + account-id: + What Gets Tracked ----------------- From bfe9ae6340b1f10947286f4d875e1eee6792f3e9 Mon Sep 17 00:00:00 2001 From: "avi@robusta.dev" Date: Tue, 21 Oct 2025 16:36:36 +0300 Subject: [PATCH 4/4] updated comment --- .../alertmanager-integration/launchdarkly.rst | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/docs/configuration/alertmanager-integration/launchdarkly.rst b/docs/configuration/alertmanager-integration/launchdarkly.rst index fe1a8b312..a6165457c 100644 --- a/docs/configuration/alertmanager-integration/launchdarkly.rst +++ b/docs/configuration/alertmanager-integration/launchdarkly.rst @@ -60,15 +60,16 @@ In LaunchDarkly: Alternative: Using Headers Instead of URL Parameters -------------------------------------------------- -If you're using a third-party service that can forward requests, you can alternatively configure the webhook to use headers instead of URL parameters: +Including API keys in URLs can expose them in logs, browser history, and monitoring tools. A more secure approach is to send the key in the request headers whenever possible. -- **URL**: ``https://api.robusta.dev/integrations/generic/launchdarkly`` -- **Headers**: These are the headers to configure: +If you’re using a third-party service that supports custom headers, configure the webhook like this: + +- **URL**: ``https://api.robusta.dev/integrations/generic/launchdarkly?account_id=YOUR_ACCOUNT_ID_HERE`` +- **Headers**: .. code-block:: http Authorization: Bearer - account-id: What Gets Tracked