From 9c6763d5f0ccd95346b4cca8a8347259b98b4489 Mon Sep 17 00:00:00 2001 From: Charly Laurent Date: Wed, 2 Oct 2024 12:02:07 +0200 Subject: [PATCH 1/2] Rename Mergify agent integration This agent integration will soon be removed. An OAuth integration will replace it. --- mergify/README.md | 4 +++- mergify/manifest.json | 6 +++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/mergify/README.md b/mergify/README.md index 6131818e2..44f5227d1 100644 --- a/mergify/README.md +++ b/mergify/README.md @@ -2,6 +2,8 @@ ## Overview +**Important**: starting October 10th 2024, this integration is no longer supported. You should use the [new integration](https://app.datadoghq.com/integrations/mergify-oauth). + This integration monitors merge queue length for each configured repository in [Mergify][1] and tracks Mergify's global availability. By sending metrics to your Datadog account, you can set up monitors for anomaly alerts and analyze merge @@ -49,6 +51,7 @@ Run the [Agent's status subcommand][5] and look for `mergify` under the Checks s See [metadata.csv][6] for a list of metrics provided by this check. For the metric `mergify.queue_checks_outcome`, the available `outcome_type` tags are : + - `PR_DEQUEUED`: The number of PRs that have been manually removed from the queue - `PR_AHEAD_DEQUEUED`: The number of PRs that have been removed from the queue because a PR ahead of it was removed from the queue - `PR_AHEAD_FAILED_TO_MERGE`: The number of PRs that have been removed from the queue because a PR ahead of it failed to merge @@ -65,7 +68,6 @@ For the metric `mergify.queue_checks_outcome`, the available `outcome_type` tags - `PR_UNEXPECTEDLY_FAILED_TO_MERGE`: The number of PRs that have been removed from the queue because they unexpectedly failed to get merged - `BATCH_MAX_FAILURE_RESOLUTION_ATTEMPTS`: The number of PRs that have been removed from the queue because the maximum batch failure resolution attempts have been reached - ### Service Checks See [service_checks.json][7] for a list of service checks provided by this integration. diff --git a/mergify/manifest.json b/mergify/manifest.json index c57551a16..dd74917c6 100644 --- a/mergify/manifest.json +++ b/mergify/manifest.json @@ -9,7 +9,7 @@ "support": "README.md#Support", "changelog": "CHANGELOG.md", "description": "Mergify merge queue statistics integration", - "title": "Mergify", + "title": "Mergify [Deprecated]", "media": [], "classifier_tags": [ "Supported OS::Linux", @@ -41,7 +41,7 @@ "auto_install": true }, "dashboards": { - "Mergify merge queue overview": "assets/dashboards/mergify_overview.json" + "Mergify merge queue overview [deprecated]": "assets/dashboards/mergify_overview.json" } }, "author": { @@ -50,4 +50,4 @@ "homepage": "https://mergify.com", "sales_email": "hello@mergify.com" } -} \ No newline at end of file +} From a095f8e2baf5d1dc48282ac36546806f4ae57b86 Mon Sep 17 00:00:00 2001 From: Charly Laurent Date: Wed, 2 Oct 2024 12:03:05 +0200 Subject: [PATCH 2/2] Create a new tile for Mergify built-in integration --- .github/CODEOWNERS | 1 + mergify_oauth/CHANGELOG.md | 7 + mergify_oauth/README.md | 63 +++++ .../assets/dashboards/mergify_overview.json | 226 ++++++++++++++++++ mergify_oauth/assets/logos/mergify-logo.svg | 14 ++ mergify_oauth/assets/oauth_clients.json | 20 ++ mergify_oauth/assets/service_checks.json | 1 + mergify_oauth/images/dashboard.png | Bin 0 -> 82226 bytes mergify_oauth/manifest.json | 65 +++++ mergify_oauth/metadata.csv | 6 + 10 files changed, 403 insertions(+) create mode 100644 mergify_oauth/CHANGELOG.md create mode 100644 mergify_oauth/README.md create mode 100644 mergify_oauth/assets/dashboards/mergify_overview.json create mode 100644 mergify_oauth/assets/logos/mergify-logo.svg create mode 100644 mergify_oauth/assets/oauth_clients.json create mode 100644 mergify_oauth/assets/service_checks.json create mode 100644 mergify_oauth/images/dashboard.png create mode 100644 mergify_oauth/manifest.json create mode 100644 mergify_oauth/metadata.csv diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 6d6d600ec..5acd55bf7 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -116,6 +116,7 @@ /modal/ @modal-labs support@modal.com @irfansharif irfan@modal.com /mendix/ @mendix/cloud @DataDog/agent-integrations @DataDog/ecosystems-review /mergify/ @Mergifyio/oss-integrations +/mergify_oauth/ @Mergifyio/oss-integrations /n2ws/ @eliadeini eliad.eini@n2ws.com @DataDog/ecosystems-review /neo4j/ @davidfauth help@neo4j.com @DataDog/ecosystems-review /neoload/ @Neotys-Labs/r-d @DataDog/ecosystems-review diff --git a/mergify_oauth/CHANGELOG.md b/mergify_oauth/CHANGELOG.md new file mode 100644 index 000000000..eae6bff2c --- /dev/null +++ b/mergify_oauth/CHANGELOG.md @@ -0,0 +1,7 @@ +# CHANGELOG - Mergify + +## 1.0.0 / 2024-10-02 + +***Added***: + +* Initial Release diff --git a/mergify_oauth/README.md b/mergify_oauth/README.md new file mode 100644 index 000000000..95c313399 --- /dev/null +++ b/mergify_oauth/README.md @@ -0,0 +1,63 @@ +# Mergify + +## Overview + +This integration monitors merge queue length for each configured repository in [Mergify][1] and tracks Mergify's global availability. By sending metrics to your Datadog account, you can set up monitors for anomaly alerts and analyze merge queue performance. You can maintain awareness of Mergify service availability and optimize your development workflow using this Datadog integration. + +## Setup + +- **In Datadog**: Go to **Integrations**, select the Mergify tile and click **Install Integration**. +- Click **Connect Accounts** to begin authorization of this integration. You will be redirected to the [Mergify dashboard][3]. +- **In the Mergify dashboard**: Log in, select the organization you would like to set up the **Datadog Integration** for and click **Connect the integration**. + +Your Mergify statistics now appear in Datadog. + +## Uninstallation + +1. Go to the [Mergify dashboard][3], log in, and navigate to **Integrations**. +2. Click the **Disconnect** button in the **Datadog** tile. + +Once this integration has been uninstalled, any previous authorizations are revoked. + +Note: Ensure that all API keys associated with this integration have been disabled by searching for the integration name on the Datadog [API Keys page][4]. + +## Data Collected + +### Metrics + +See [metadata.csv][2] for a list of metrics provided by this check. + +For the metric `mergify.queue_checks_outcome`, the available `outcome_type` tags are : + +- `PR_DEQUEUED`: The number of PRs that have been manually removed from the queue +- `PR_AHEAD_DEQUEUED`: The number of PRs that have been removed from the queue because a PR ahead of it was removed from the queue +- `PR_AHEAD_FAILED_TO_MERGE`: The number of PRs that have been removed from the queue because a PR ahead of it failed to merge +- `PR_WITH_HIGHER_PRIORITY_QUEUED`: The number of PRs that have been removed from the queue because a PR with higher priority has been queued +- `PR_QUEUED_TWICE`: The number of PRs that have been removed from the queue because they have been queued twice +- `SPECULATIVE_CHECK_NUMBER_REDUCED`: The number of PRs that have been removed from the queue because the number of speculative checks in the config was changed +- `CHECKS_TIMEOUT`: The number of PRs that have been removed from the queue because the speculative checks have timed out +- `CHECKS_FAILED`: The number of PRs that have been removed from the queue because the speculative checks have failed +- `QUEUE_RULE_MISSING`: The number of PRs that have been removed from the queue because the queue rule that was used to queue the PR has been removed from the config +- `UNEXPECTED_QUEUE_CHANGE`: The number of PRs that have been removed from the queue because a user made an operation on the queued pull request +- `PR_FROZEN_NO_CASCADING`: The number of PRs that have been removed from the queue because they were frozen by a freeze with no cascading effect +- `TARGET_BRANCH_CHANGED`: The number of PRs that have been removed from the queue because the PR's target branch was changed +- `TARGET_BRANCH_MISSING`: The number of PRs that have been removed from the queue because the PR's target branch does not exist anymore +- `PR_UNEXPECTEDLY_FAILED_TO_MERGE`: The number of PRs that have been removed from the queue because they unexpectedly failed to get merged +- `BATCH_MAX_FAILURE_RESOLUTION_ATTEMPTS`: The number of PRs that have been removed from the queue because the maximum batch failure resolution attempts have been reached + +### Service Checks + +Mergify does not include any service checks. + +### Events + +Mergify does not include any events. + +## Support + +Need help? Contact [Mergify support][1]. + +[1]: https://mergify.com +[2]: https://github.com/DataDog/integrations-extras/blob/master/mergify/metadata.csv +[3]: https://dashboard.mergify.com +[4]: https://app.datadoghq.com/organization-settings/api-keys?filter=Mergify diff --git a/mergify_oauth/assets/dashboards/mergify_overview.json b/mergify_oauth/assets/dashboards/mergify_overview.json new file mode 100644 index 000000000..8005d51eb --- /dev/null +++ b/mergify_oauth/assets/dashboards/mergify_overview.json @@ -0,0 +1,226 @@ +{ + "title": "Mergify Overview", + "description": "# Faster and Safer Code Merge\n\n**Merge Queue**: Queue, Update and Merge your Pull Requests.\n**Workflow Automation**: Automate your code merge processes.\n\nSave Time. Save Money. Secure your code.\nImprove your developer experience.\n\nThis is an example of Datadog merge queue dashboard you can get from https://mergify.com/.", + "widgets": [ + { + "id": 6714248528946580, + "definition": { + "type": "image", + "url": "https://raw.githubusercontent.com/Mergifyio/logo/c2acfa2389524d13f677b15eb75b62393b47ac1a/mergify-brandmark-multi-bg.svg", + "sizing": "contain", + "margin": "md", + "has_background": false, + "has_border": false, + "vertical_align": "center", + "horizontal_align": "center" + }, + "layout": { + "x": 0, + "y": 0, + "width": 2, + "height": 2 + } + }, + { + "id": 6680129273384530, + "definition": { + "type": "note", + "content": "# Faster and Safer Code Merge\n\n**Merge Queue**: Queue, Update and Merge your Pull Requests.\n\n**Workflow Automation**: Automate your code merge processes.\n\nSave Time. Save Money. Secure your code.\nImprove your developer experience.\n\nThis is an example of Datadog merge queue dashboard you can get from https://mergify.com/.", + "background_color": "white", + "font_size": "14", + "text_align": "left", + "vertical_align": "top", + "show_tick": false, + "tick_pos": "50%", + "tick_edge": "left", + "has_padding": true + }, + "layout": { + "x": 2, + "y": 0, + "width": 10, + "height": 2 + } + }, + { + "id": 4473883965068244, + "definition": { + "title": "Merge Queue Length", + "title_size": "16", + "title_align": "left", + "show_legend": true, + "legend_layout": "horizontal", + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "type": "timeseries", + "requests": [ + { + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "name": "query1", + "data_source": "metrics", + "query": "max:mergify.merge_queue_length{$repository} by {branch,repository}" + } + ], + "response_format": "timeseries", + "style": { + "palette": "dog_classic", + "line_type": "solid", + "line_width": "normal" + }, + "display_type": "line" + } + ] + }, + "layout": { + "x": 0, + "y": 2, + "width": 12, + "height": 2 + } + }, + { + "id": 295070581551368, + "definition": { + "title": "Median Time to Merge Per Repository, Per Branch, and Per Queue", + "type": "treemap", + "requests": [ + { + "response_format": "scalar", + "queries": [ + { + "name": "query2", + "data_source": "metrics", + "query": "avg:mergify.time_to_merge.median{$repository} by {repository,branch,queue}", + "aggregator": "last" + } + ], + "formulas": [ + { + "formula": "query2" + } + ] + } + ] + }, + "layout": { + "x": 0, + "y": 4, + "width": 12, + "height": 3 + } + }, + { + "id": 5619028571653368, + "definition": { + "title": "Queue Checks Outcomes", + "title_size": "16", + "title_align": "left", + "requests": [ + { + "response_format": "scalar", + "formulas": [ + { + "formula": "query1", + "limit": { + "order": "desc" + } + } + ], + "queries": [ + { + "query": "sum:mergify.queue_checks_outcome{$repository} by {outcome_type}", + "data_source": "metrics", + "name": "query1", + "aggregator": "last" + } + ], + "style": { + "palette": "datadog16" + } + } + ], + "type": "sunburst", + "legend": { + "type": "automatic" + } + }, + "layout": { + "x": 0, + "y": 7, + "width": 12, + "height": 4 + } + }, + { + "id": 5315420267683440, + "definition": { + "title": "Queue Freeze Duration", + "title_size": "16", + "title_align": "left", + "show_legend": true, + "legend_layout": "auto", + "legend_columns": [ + "avg", + "min", + "max", + "value", + "sum" + ], + "time": {}, + "type": "timeseries", + "requests": [ + { + "formulas": [ + { + "formula": "query1" + } + ], + "queries": [ + { + "name": "query1", + "data_source": "metrics", + "query": "avg:mergify.queue_freeze.duration{$repository} by {queue,repository}" + } + ], + "response_format": "timeseries", + "style": { + "palette": "dog_classic", + "order_by": "values", + "line_type": "solid", + "line_width": "normal" + }, + "display_type": "line" + } + ] + }, + "layout": { + "x": 0, + "y": 11, + "width": 12, + "height": 3 + } + } + ], + "template_variables": [ + { + "name": "repository", + "prefix": "repository", + "available_values": [], + "default": "*" + } + ], + "layout_type": "ordered", + "notify_list": [], + "reflow_type": "fixed" +} diff --git a/mergify_oauth/assets/logos/mergify-logo.svg b/mergify_oauth/assets/logos/mergify-logo.svg new file mode 100644 index 000000000..28f3caa7f --- /dev/null +++ b/mergify_oauth/assets/logos/mergify-logo.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/mergify_oauth/assets/oauth_clients.json b/mergify_oauth/assets/oauth_clients.json new file mode 100644 index 000000000..864dfab1e --- /dev/null +++ b/mergify_oauth/assets/oauth_clients.json @@ -0,0 +1,20 @@ +{ + "integration": { + "scopes": [ + "api_keys_write" + ], + "client_role": "integration", + "name": "Mergify Integration OAuth Client", + "onboarding_url": "https://dashboard.mergify.com/datadog-oauth", + "description": "Mergify Integration OAuth Client", + "redirect_uris": [ + "https://dashboard.mergify.com/front/integrations/callback/datadog-US1", + "https://dashboard.mergify.com/front/integrations/callback/datadog-US3", + "https://dashboard.mergify.com/front/integrations/callback/datadog-US5", + "https://dashboard.mergify.com/front/integrations/callback/datadog-EU1", + "https://dashboard.mergify.com/front/integrations/callback/datadog-US1-FED", + "https://dashboard.mergify.com/front/integrations/callback/datadog-AP1" + ], + "id": "7e609702-7d7d-11ef-9fee-da7ad0900002" + } +} diff --git a/mergify_oauth/assets/service_checks.json b/mergify_oauth/assets/service_checks.json new file mode 100644 index 000000000..fe51488c7 --- /dev/null +++ b/mergify_oauth/assets/service_checks.json @@ -0,0 +1 @@ +[] diff --git a/mergify_oauth/images/dashboard.png b/mergify_oauth/images/dashboard.png new file mode 100644 index 0000000000000000000000000000000000000000..0b61cd13305d59847e5e9f7e2025c148441d7b94 GIT binary patch literal 82226 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%0DI-*uQk-384Liq1rjLN?%!ncU-4Qj5vZ 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 E0tklC+W-In literal 0 HcmV?d00001 diff --git a/mergify_oauth/manifest.json b/mergify_oauth/manifest.json new file mode 100644 index 000000000..504df5042 --- /dev/null +++ b/mergify_oauth/manifest.json @@ -0,0 +1,65 @@ +{ + "manifest_version": "2.0.0", + "app_uuid": "3b53fe32-b47e-4a29-881f-b90397a11589", + "app_id": "mergify-oauth", + "display_on_public_website": true, + "tile": { + "overview": "README.md#Overview", + "configuration": "README.md#Setup", + "support": "README.md#Support", + "uninstallation": "README.md#Uninstallation", + "changelog": "CHANGELOG.md", + "description": "Monitor your Mergify merge queue stats", + "title": "Mergify", + "media": [ + { + "media_type": "image", + "caption": "Mergify - Dashboard", + "image_url": "images/dashboard.png" + } + ], + "classifier_tags": [ + "Supported OS::Linux", + "Supported OS::Windows", + "Supported OS::macOS", + "Submitted Data Type::Metrics", + "Category::Developer Tools", + "Offering::Integration" + ] + }, + "assets": { + "dashboards": { + "Mergify Merge Queue Overview": "assets/dashboards/mergify_overview.json" + }, + "integration": { + "source_type_name": "Mergify OAuth", + "configuration": {}, + "events": { + "creates_events": false + }, + "metrics": { + "metadata_path": "metadata.csv", + "check": [ + "mergify.merge_queue_length", + "mergify.time_to_merge.median", + "mergify.time_to_merge.mean", + "mergify.queue_checks_outcome", + "mergify.queue_freeze.duration" + ], + "prefix": "mergify." + }, + "service_checks": { + "metadata_path": "assets/service_checks.json" + }, + "source_type_id": 10350, + "auto_install": true + }, + "oauth": "assets/oauth_clients.json" + }, + "author": { + "support_email": "support@mergify.com", + "name": "Mergify", + "homepage": "https://mergify.com", + "sales_email": "hello@mergify.com" + } +} diff --git a/mergify_oauth/metadata.csv b/mergify_oauth/metadata.csv new file mode 100644 index 000000000..73377e509 --- /dev/null +++ b/mergify_oauth/metadata.csv @@ -0,0 +1,6 @@ +metric_name,metric_type,interval,unit_name,per_unit_name,description,orientation,integration,short_name,curated_metric +mergify.merge_queue_length,gauge,,,,Merge queue length,0,mergify_oauth,, +mergify.time_to_merge.median,gauge,,second,,Median time to merge,0,mergify_oauth,, +mergify.time_to_merge.mean,gauge,,second,,Mean time to merge,0,mergify_oauth,, +mergify.queue_checks_outcome,gauge,,,,Number of outcomes for the queue operation. Each outcome type can be found in the tag 'outcome_type',0,mergify_oauth,, +mergify.queue_freeze.duration,gauge,,second,,Merge queue freeze duration,0,mergify_oauth,,