Skip to content

aws-ia/cloudformation-dynatrace-resource-providers

Repository files navigation

Dynatrace CloudFormation Resources

This collection of AWS CloudFormation resource types allow Dynatrace to be controlled using AWS CloudFormation.

See the end-user documentation including:

There is also developer documentation available if you are interested in building or contributing.

There is also developer documentation available if you are interested in building or contributing.

Resource Description Documentation
Dynatrace::Configuration::Dashboard This resource type manages a Dynatrace Dashboard /Dynatrace-Configuration-Dashboard
Dynatrace::Environment::Metric This resource type manages a Dynatrace Metric /Dynatrace-Environment-Metric
Dynatrace::Environment::ServiceLevelObjective This resource type manages a Dynatrace Service Level Objective /Dynatrace-Environment-ServiceLevelObjective
Dynatrace::Environment::SyntheticLocation This resource type manages a Dynatrace Synthetic Location /Dynatrace-Environment-SyntheticLocation
Dynatrace::Environment::SyntheticMonitor This resource type manages a Dynatrace Synthetic Monitor /Dynatrace-Environment-SyntheticMonitor

Prerequisites

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 "Dynatrace" prefix.

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

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

  2. On the Extension details page, specify:

  • Extension name
  • Execution role ARN
  • Automatic updates for minor version releases
  • Configuration
  1. In your terminal, specify the configuration data for the registered Dynatrace CloudFormation resource type, in the given account and region by using the SetTypeConfiguration operation:

For example:

$ aws cloudformation set-type-configuration \z`
--region us-west-2 --type RESOURCE \
--type-name Dynatrace::Configuration::Dashboard \
--configuration-alias default \
--configuration "{ \"DynatraceAccess\":{\"Endpoint\":\"https://abc123.live.dynatrace.com\",\"Token\":\"YOURAPIKEY\"}}"
  1. After you have your resource configured, create your AWS stack that includes any of the activated Dynatrace resources.

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

Supported regions

The Dynatrace 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.

Examples

Dynatrace Dashboard creation example using the Cloudformation Dynatrace resource

---
AWSTemplateFormatVersion: '2010-09-09'
Description: Shows how to create a Dynatrace Dashboard
Resources:
    AcmeDashboard:
    Type: Dynatrace::Configuration::Dashboard
    Properties:
      DashboardMetadata:
        Name: Acme Dashboard
        Owner: CloudFormation
        Shared: false
        Tags:
          - CloudFormation
          - Dynatrace
      Tiles:
        - name: Sales failure
          tileType: SLO
          configured: true
          bounds:
            top: 0
            left: 0
            width: 304
            height: 152
          tileFilter:
            timeframe: -1w
          assignedEntities:
            - !Ref SaleFailureServiceLevelObjective
          metric: METRICS=true;LEGEND=true;PROBLEMS=true;decimals=10;customTitle=Overall sale failure;
        - name: Uptime
          tileType: SYNTHETIC_HTTP_MONITOR
          configured: true
          bounds:
            top: 0
            left: 304
            width: 304
            height: 304
          assignedEntities:
            - !Ref HealthMonitor
        - name: Completion time
          tileType: DATA_EXPLORER
          configured: true
          bounds:
            top: 152
            left: 0
            width: 304
            height: 304
          customName: Data explorer results
          queries:
            - id: A
              metric: ext:kpis.timeToCompletion
              timeAggregation: DEFAULT
              sortBy: DESC
              limit: 100
              enabled: true
          visualConfig:
            type: GRAPH_CHART
            global:
              hideLegend: false
            rules:
              - matcher: "A:"
                properties:
                  color: DEFAULT
            axes:
              xAxis:
                displayName: ""
                visible: true
              yAxes:
                - displayName: ""
                  visible: true
                  min: AUTO
                  max: AUTO
                  position: LEFT
                  queryIds:
                    - A
                  defaultAxis: true
            heatmapSettings:
              yAxis: VALUE
            thresholds:
              - axisTarget: LEFT
                rules:
                  - color: "#7dc540"
                  - color: "#f5d30f"
                  - color: "#dc172a"
                queryId: ""
                visible: true
            tableSettings:
              isThresholdBackgroundAppliedToCell: false
            graphChartSettings:
              connectNulls: false
            honeycombSettings:
              showHive: true
              showLegend: true
              showLabels: false

Shows how to create an Metric in Dynatrace

---
AWSTemplateFormatVersion: '2010-09-09'
Description: Shows how to create an Metric in Dynatrace
Resources:
  TimeToCompletionMetric:
    Type: Dynatrace::Environment::Metric
    Properties:
      Id: custom:kpis.timeToCompletion
      DisplayName: Average time for a customer to complete the sales process, from cart
      Unit: Second (s)
      Dimensions:
        - ACME
        - KPIS
      Types:
        - Web
  SuccessCountMetric:
    Type: Dynatrace::Environment::Metric
    Properties:
      Id: custom:kpis.successCount
      DisplayName: Number of people having something in their cart and completing the sale
      Unit: Count (count)
      Dimensions:
        - ACME
        - KPIS
      Types:
        - Web
  DropCountMetric:
    Type: Dynatrace::Environment::Metric
    Properties:
      Id: custom:kpis.dropCount
      DisplayName: Number of people having something in their cart, to failing to complete the sale
      Unit: Count (count)
      Dimensions:
        - ACME
        - KPIS
      Types:
        - Web

Shows how to create an Service Level Objective in Dynatrace

---
AWSTemplateFormatVersion: '2010-09-09'
Description: Shows how to create an Service Level Objective in Dynatrace
Resources:
  SaleFailureServiceLevelObjective:
    Type: Dynatrace::Environment::ServiceLevelObjective
    DependsOn:
      - SuccessCountMetric
      - DropCountMetric
    Properties:
      Name: Sale failure
      MetricExpression: "(100)*(ext:kpis.dropCount)/(ext:kpis.successCount)"
      EvaluationType: AGGREGATE
      Target: 1
      Warning: 3
      ErrorBudgetBurnRate:
        FastBurnThreshold: 10
        BurnRateVisualizationEnabled: true
      Timeframe: "-1w"

Shows how to create a Synthetic Location in Dynatrace

---
AWSTemplateFormatVersion: '2010-09-09'
Description: Shows how to create a Synthetic Location in Dynatrace
Resources:
  ActiveGateLocation:
    Type: Dynatrace::Environment::SyntheticLocation
    Properties:
      Type: PRIVATE
      Name: UK ActiveGate
      CountryCode: GB
      City: Edinburgh
      Latitude: 55.9533
      Longitude: 3.1883
      LocationNodeOutageDelayInMinutes: 3
      Nodes: !Ref NodeIds

Shows how to create a Synthetic Monitor in Dynatrace

---
AWSTemplateFormatVersion: '2010-09-09'
Description: Shows how to create a Synthetic Monitor in Dynatrace
Resources:
  HealthMonitor:
    Type: Dynatrace::Environment::SyntheticMonitor
    Properties:
      FrequencyMin: 5
      Name: ACME Health Monitor
      Enabled: true
      Type: HTTP
      AnomalyDetection:
        OutageHandling:
          GlobalOutage: true
          GlobalOutagePolicy:
            ConsecutiveRuns: 3
          LocalOutage: true
          LocalOutagePolicy:
            AffectedLocations: 1
            ConsecutiveRuns: 3
        LoadingTimeThresholds:
          Enabled: true
          Thresholds:
            - Type: TOTAL
              ValueMs: 100
      Script:
        version: 1.0
        requests:
          - url: https://aws.amazon.com
            method: GET
            description: HTTP request test
            validation:
              rules:
                - type: httpStatusesList
                  value: 500, 400
                  passIfFound: false
                - type: httpStatusesList
                  value: 200, 204, 302
                  passIfFound: true
      Locations:
        - !Ref ActiveGateLocation