DataDog / datadog-cloudformation-resources

Apache License 2.0
51 stars 35 forks source link

Datadog-AWS CloudFormation

AWS CloudFormation gives you templates to describe, configure, and provision all of the AWS resources in your environment at once. The Datadog-AWS CloudFormation Resources allow you to interact with the supported Datadog resources, send resources to any Datadog datacenter, and privately register an extension in any region with Datadog resources.

To access these resources, use the AWS Management Console (UI) or the AWS Command Line Interface (CLI).

AWS Management Console

To get started:

  1. Sign in to the AWS Management Console with your account and navigate to CloudFormation.

  2. Select "Public extensions" from the left hand pane and filter Publisher by "Third Party".

  3. Use the search bar to filter by the "Datadog" prefix.

    Note: All official Datadog resources begin with Datadog:: and specify that they are Published by Datadog.

  4. Select the desired resource name to view more information about its schema, and click Activate.

  5. On the Extension details page, specify:

    • Extension name
    • Execution role ARN
    • Automatic updates for minor version releases
    • Configuration
  6. For the resource configuration, it is strongly recommended to use AWS Secrets Manager or similar service for storing your Datadog API and Application keys instead of clear text.

    If using AWS Secrets Manager, you can dynamically reference your API and Application keys in the configuration. For more information, see the AWS documentation.

    For example:

    {
    "DatadogCredentials": {
        "ApiKey": "{{resolve:secretsmanager:MySecret:SecretString:SecretAPIKey}}",
        "ApplicationKey": "{{resolve:secretsmanager:MySecret:SecretString:SecretAppKey}}"
    }
    }

    Specify the ApiURL if you are using an account in a region other than US1. For example, use https://api.datadoghq.eu for an account in the EU region or https://api.us5.datadoghq.com/ for an account in the US5 region.

  7. After you have configured your resource, create your AWS stack that includes any of the activated Datadog resources.

For more information about available commands and workflows, see the official AWS documentation.

AWS Command Line Interface

To get started:

  1. Create an execution role for the CloudFormation resource based on the file <RESOURCE_DIR>/resource-role.yaml

  2. In your terminal, use the aws-cli tool to register a Datadog resource:

    aws cloudformation register-type \
        --region "<REGION>" \
        --type RESOURCE \
        --type-name "<DATADOG_RESOURCE_NAME>" \
        --schema-handler-package "<LINK_TO_S3>" \
        --execution-role-arn "<ROLE_ARN_FROM_STEP_1>"
  3. View the version of the newly registered resource by running the following in your terminal:

    aws cloudformation list-type-versions \
    --region "<REGION>" \
    --type RESOURCE \
    --type-name "<DATADOG_RESOURCE_NAME>"
  4. Set this newly registered version as the default by running the following in your terminal:

    aws cloudformation set-type-default-version \
        --region "<REGION>" \
        --type RESOURCE \
        --version-id <VERSION_ID> \
        --type-name "<DATADOG_RESOURCE_NAME>"

    With the following required placeholders:

    • <REGION>: Your AWS region.
    • <DATADOG_RESOURCE_NAME>: The name of the resource to register, refer to the table below to see the Datadog supported resources.
    • <LINK_TO_S3>: S3 link to the resource.
      • S3 link: s3://datadog-cloudformation-resources/<RESOURCE_FOLDER>/<RESOURCE_FOLDER>-<RESOURCE_VERSION>.zip
      • See the Resources Available section, which links to examples of the latest supported S3 links.
    • VERSION_ID: The underlying version of the resource as returned by the command in step 2.
  5. Set the newly registered resource configuration by running the following in your terminal:

    aws cloudformation set-type-configuration \
        --type-name "<DATADOG_RESOURCE_NAME>" \
        --type RESOURCE \
        --configuration '{"DatadogCredentials": {"ApiKey": "{{resolve:secretsmanager:MySecret:SecretString:SecretAPIKey}}", "ApplicationKey": "{{resolve:secretsmanager:MySecret:SecretString:SecretAppKey}}"}}'
  6. In your AWS account, create your AWS stack that includes any of the registered Datadog resources.

For more information about available commands and workflows, see the official AWS documentation.

Resources available

The following Datadog resources can be registered within your AWS account. Refer to their specific documentation to see how to configure them:

Resource Name Description Folder S3 Package Links
Dashboard Datadog::Dashboards::Dashboard Create, update, and delete Datadog dashboards datadog-dashboards-dashboard Schema Handler Versions
Datadog-AWS integration Datadog::Integrations::AWS Manage your Datadog-Amazon Web Service integration datadog-integrations-aws Schema Handler Versions
Monitor Datadog::Monitors::Monitor Create, update, and delete Datadog monitors datadog-monitors-monitor Schema Handler Versions
Downtime (Deprecated) Datadog::Monitors::Downtime Enable or disable downtimes for your monitors datadog-monitors-downtime Schema Handler Versions
Downtime Schedule Datadog::Monitors::DowntimeSchedule Schedule Datadog downtimes datadog-monitors-downtimeschedule Schema Handler Versions
User Datadog::IAM::User Create and manage Datadog users datadog-iam-user Schema Handler Versions
SLO Datadog::SLOs::SLO Create and manage Datadog SLOs datadog-slos-slo Schema Handler Versions

Supported regions

The Datadog-Amazon CloudFormation resources are available on the CloudFormation Public Registry in the following regions:

Code Name
us-east-1 US East (N. Virginia)
us-east-2 US East (Ohio)
us-west-1 US West (N. California)
us-west-2 US West (Oregon)
ap-south-1 Asia Pacific (Mumbai)
ap-northeast-1 Asia Pacific (Tokyo)
ap-northeast-2 Asia Pacific (Seoul)
ap-southeast-1 Asia Pacific (Singapore)
ap-southeast-2 Asia Pacific (Sydney)
ca-central-1 Canada (Central)
eu-central-1 Europe (Frankfurt)
eu-west-1 Europe (Ireland)
eu-west-2 Europe (London)
eu-west-3 Europe (Paris)
eu-north-1 Europe (Stockholm)
sa-east-1 South America (São Paulo)

Note: To privately register a resource in any other region, use the provided packages.

Troubleshooting

Need help? Contact Datadog support.