-
Notifications
You must be signed in to change notification settings - Fork 745
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add Doppler integration (ECOINT-6) (#2460)
* Add Doppler * WIP: Add tests * Address PR feedback * Update oauth_clients * Update doppler_tests.yaml * Add metrics and service_checks mandatory fields * Remove monitors * Fix CHANGELOG formatting * Remove saved_views * Add oauth field to manifest * Change Configuration header to Setup * Move setup section up * Remove string type from type facet * Remove metrics and service check tests This reverts commit 24f1366. * Remove log facetType and set preserveSource=false * Remove metadata.csv * Remove service_checks.json and hatch.toml * Add back service_checks.json * Add Activity Log examples * Remove usr fields from tests * WIP: Update test inputs * Update test results from action output * Update doppler/assets/oauth_clients.json Co-authored-by: london-wharton <[email protected]> * Update doppler/manifest.json Change Author name to Partner name. This is what shows on the tile so it should be the integration name * Add text back to tests * Fix message field location in tests * Add missing usr attribute mappers * Remove hanging `user` field --------- Co-authored-by: emarsha94 <[email protected]> Co-authored-by: london-wharton <[email protected]>
- Loading branch information
1 parent
2dcd503
commit d493466
Showing
19 changed files
with
714 additions
and
0 deletions.
There are no files selected for viewing
Validating CODEOWNERS rules …
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -57,6 +57,8 @@ | |
/docontrol/ @lielran @DataDog/ecosystems-review | ||
/doctordroid/ @dimittal @DataDog/ecosystems-review | ||
/dylibso-webassembly/ @nilslice @bhelx @DataDog/ecosystems-review | ||
/doppler/ @nmanoogian @apazzolini @doppler-admin @DataDog/ecosystems-review | ||
/doppler/assets/logs/ @nmanoogian @apazzolini @doppler-admin @DataDog/ecosystems-review @DataDog/logs-backend | ||
/embrace_mobile/ @jpmunz @joage @DataDog/ecosystems-review | ||
/eppo/ @emetelka [email protected] | ||
/eventstore/ @Xorima | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
# CHANGELOG - Doppler | ||
|
||
## 1.0.0 / 2024-09-06 | ||
|
||
**_Added_**: | ||
|
||
* Initial Release |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,73 @@ | ||
# Agent Check: Doppler | ||
|
||
## Overview | ||
|
||
[Doppler][1] is a secrets manager designed with both security and developer productivity in mind. | ||
Doppler allows you to securely store secrets (for example: API keys, database credentials, and other sensitive values) and deliver them to your applications. | ||
|
||
This integration sends Activity Logs from [Doppler][1] to Datadog, allowing you to monitor changes to your workplace. | ||
This includes: | ||
|
||
- Modifications to projects, environments, and secrets | ||
- Changes to your team, including new members, role changes, and removals | ||
- Changes to workplace settings, including integrations and security features | ||
|
||
Doppler does not collect any data from your Datadog account. | ||
|
||
## Setup | ||
|
||
### Installation | ||
|
||
1. Click **Connect Accounts** on the Doppler integration tile to connect Datadog with Doppler. | ||
2. Log into Doppler or create an account if you have not already. | ||
3. Select the Doppler workplace that you would like to configure. This step will automatically be skipped if you only have one workplace. | ||
4. Click **Settings** to navigate to your workplace settings. | ||
5. Under **Logging Services** > **Datadog**, click **Connect**. | ||
6. Choose your Datadog site from the Dropdown. | ||
7. Log into Datadog. This step will be skipped if you are already signed in. | ||
8. Review the Datadog permissions that will be granted to Doppler and click **Authorize**. | ||
|
||
Once the installation is complete, Doppler Activity Logs will automatically start flowing to Datadog. | ||
|
||
### Configuration | ||
|
||
The integration will automatically send all Doppler Activity Logs to Datadog, no further configuration is available at this time. | ||
|
||
### Validation | ||
|
||
During installation, Doppler creates a test log to verify that the installed credentials work properly. Verify that this test log is present in your logs to verify the installation. | ||
|
||
## Data Collected | ||
|
||
Doppler does not collect any information from your Datadog account. | ||
|
||
### Uninstallation | ||
|
||
- Go to your [Doppler workplace settings][4] and disconnect the Datadog integration | ||
- Remove all API keys associated with this integration by searching for the integration name on the [Datadog API Keys page][5]. | ||
|
||
### Metrics | ||
|
||
Doppler does not report any metrics. | ||
|
||
### Service Checks | ||
|
||
Doppler does not provide any service checks. | ||
|
||
### Logs | ||
|
||
Doppler creates a log for every entry in your workplace's [Doppler Activity Log][2]. The type of log, as well as any associated log parameters, will be included in the payload. | ||
|
||
### Events | ||
|
||
Doppler does not produce any Datadog events. | ||
|
||
## Troubleshooting | ||
|
||
Need help? Contact [Doppler support][3]. | ||
|
||
[1]: https://www.doppler.com | ||
[2]: https://docs.doppler.com/docs/workplace-logs | ||
[3]: https://support.doppler.com | ||
[4]: https://dashboard.doppler.com/workplace/settings | ||
[5]: https://app.datadoghq.com/organization-settings/api-keys |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
name: Doppler | ||
files: | ||
- name: doppler.yaml | ||
options: | ||
- template: init_config | ||
options: | ||
- template: init_config/default | ||
- template: instances | ||
options: | ||
- template: instances/default |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,242 @@ | ||
{ | ||
"title": "Doppler Dashboard", | ||
"description": "This dashboard provides a high-level overview of your workplace's Doppler activity.\n\nClone this template dashboard to make changes and add your own graph widgets.", | ||
"widgets": [ | ||
{ | ||
"id": 2579449116060402, | ||
"definition": { | ||
"type": "image", | ||
"url": "https://www.doppler.com/avatar/doppler_circle_800.png", | ||
"sizing": "contain", | ||
"margin": "md", | ||
"has_background": false, | ||
"has_border": false, | ||
"vertical_align": "center", | ||
"horizontal_align": "center" | ||
}, | ||
"layout": { "x": 0, "y": 0, "width": 2, "height": 3 } | ||
}, | ||
{ | ||
"id": 1029719899125074, | ||
"definition": { | ||
"type": "note", | ||
"content": "[Doppler](https://doppler.com) is a secrets manager designed with both security and developer productivity in mind.\n\nThis dashboard provides a high-level overview of your Doppler [Activity Logs](https://docs.doppler.com/docs/workplace-logs), allowing you to identify patterns in:\n\n- Different types of activities\n- Temporal patterns in activities\n- Which users are performing activities\n\nRead the [Doppler Datadog docs](https://docs.doppler.com/docs/datadog) for more information.", | ||
"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": 3 } | ||
}, | ||
{ | ||
"id": 4210531550520016, | ||
"definition": { | ||
"title": "Activity Logs by Type", | ||
"title_size": "16", | ||
"title_align": "left", | ||
"show_legend": true, | ||
"legend_layout": "auto", | ||
"legend_columns": ["avg", "min", "max", "value", "sum"], | ||
"type": "timeseries", | ||
"requests": [ | ||
{ | ||
"formulas": [{ "formula": "query1" }], | ||
"queries": [ | ||
{ | ||
"data_source": "logs", | ||
"name": "query1", | ||
"indexes": ["*"], | ||
"compute": { "aggregation": "count" }, | ||
"group_by": [ | ||
{ | ||
"facet": "@type", | ||
"limit": 10, | ||
"sort": { "order": "desc", "aggregation": "count" } | ||
} | ||
], | ||
"search": { "query": "source:doppler" }, | ||
"storage": "hot" | ||
} | ||
], | ||
"response_format": "timeseries", | ||
"style": { | ||
"palette": "datadog16", | ||
"order_by": "values", | ||
"line_type": "solid", | ||
"line_width": "normal" | ||
}, | ||
"display_type": "bars" | ||
} | ||
] | ||
}, | ||
"layout": { "x": 0, "y": 3, "width": 8, "height": 4 } | ||
}, | ||
{ | ||
"id": 5108936822527020, | ||
"definition": { | ||
"title": "Activity Log Counts by Type", | ||
"title_size": "16", | ||
"title_align": "left", | ||
"type": "query_table", | ||
"requests": [ | ||
{ | ||
"queries": [ | ||
{ | ||
"data_source": "logs", | ||
"name": "query1", | ||
"indexes": ["*"], | ||
"compute": { "aggregation": "count" }, | ||
"group_by": [ | ||
{ | ||
"facet": "@type", | ||
"limit": 10, | ||
"sort": { "order": "desc", "aggregation": "count" } | ||
} | ||
], | ||
"search": { "query": "source:doppler" }, | ||
"storage": "hot" | ||
} | ||
], | ||
"response_format": "scalar", | ||
"sort": { | ||
"count": 10, | ||
"order_by": [{ "type": "formula", "index": 0, "order": "desc" }] | ||
}, | ||
"formulas": [ | ||
{ | ||
"cell_display_mode": "bar", | ||
"alias": "Count", | ||
"formula": "query1" | ||
} | ||
] | ||
} | ||
], | ||
"has_search_bar": "auto" | ||
}, | ||
"layout": { "x": 8, "y": 3, "width": 4, "height": 4 } | ||
}, | ||
{ | ||
"id": 2954602671560148, | ||
"definition": { | ||
"type": "note", | ||
"content": "Break down activity logs by type over time intervals to identify operational usage patterns.", | ||
"background_color": "green", | ||
"font_size": "14", | ||
"text_align": "left", | ||
"vertical_align": "center", | ||
"show_tick": true, | ||
"tick_pos": "50%", | ||
"tick_edge": "top", | ||
"has_padding": true | ||
}, | ||
"layout": { "x": 0, "y": 7, "width": 12, "height": 1 } | ||
}, | ||
{ | ||
"id": 788257060754552, | ||
"definition": { | ||
"title": "Activity Logs by Timestamp", | ||
"title_size": "16", | ||
"title_align": "left", | ||
"show_legend": false, | ||
"type": "heatmap", | ||
"requests": [ | ||
{ | ||
"formulas": [{ "formula": "query1" }], | ||
"queries": [ | ||
{ | ||
"data_source": "logs", | ||
"name": "query1", | ||
"indexes": ["*"], | ||
"compute": { "aggregation": "count" }, | ||
"group_by": [], | ||
"search": { "query": "source:doppler" }, | ||
"storage": "hot" | ||
} | ||
], | ||
"response_format": "timeseries", | ||
"style": { "palette": "dog_classic" } | ||
} | ||
] | ||
}, | ||
"layout": { "x": 0, "y": 8, "width": 8, "height": 3 } | ||
}, | ||
{ | ||
"id": 7305773172963494, | ||
"definition": { | ||
"title": "Activity Log Counts by User", | ||
"title_size": "16", | ||
"title_align": "left", | ||
"type": "query_table", | ||
"requests": [ | ||
{ | ||
"queries": [ | ||
{ | ||
"data_source": "logs", | ||
"name": "query1", | ||
"indexes": ["*"], | ||
"compute": { "aggregation": "count" }, | ||
"group_by": [ | ||
{ | ||
"facet": "@usr.email", | ||
"limit": 10, | ||
"sort": { "order": "desc", "aggregation": "count" } | ||
} | ||
], | ||
"search": { "query": "source:doppler" }, | ||
"storage": "hot" | ||
} | ||
], | ||
"response_format": "scalar", | ||
"sort": { | ||
"count": 10, | ||
"order_by": [{ "type": "formula", "index": 0, "order": "desc" }] | ||
}, | ||
"formulas": [{ "cell_display_mode": "bar", "formula": "query1" }] | ||
} | ||
], | ||
"has_search_bar": "auto" | ||
}, | ||
"layout": { "x": 8, "y": 8, "width": 4, "height": 3 } | ||
}, | ||
{ | ||
"id": 924997396545434, | ||
"definition": { | ||
"type": "note", | ||
"content": "View by timestamp to identify temporal usage patterns.", | ||
"background_color": "green", | ||
"font_size": "14", | ||
"text_align": "left", | ||
"vertical_align": "center", | ||
"show_tick": true, | ||
"tick_pos": "50%", | ||
"tick_edge": "top", | ||
"has_padding": true | ||
}, | ||
"layout": { "x": 0, "y": 11, "width": 8, "height": 1 } | ||
}, | ||
{ | ||
"id": 8957740472282574, | ||
"definition": { | ||
"type": "note", | ||
"content": "View by user who completed the Doppler action.", | ||
"background_color": "green", | ||
"font_size": "14", | ||
"text_align": "left", | ||
"vertical_align": "center", | ||
"show_tick": true, | ||
"tick_pos": "50%", | ||
"tick_edge": "top", | ||
"has_padding": true | ||
}, | ||
"layout": { "x": 8, "y": 11, "width": 4, "height": 1 } | ||
} | ||
], | ||
"template_variables": [], | ||
"layout_type": "ordered", | ||
"notify_list": [], | ||
"reflow_type": "fixed" | ||
} |
Oops, something went wrong.