Get started with Dynatrace configuration for Monaco

  • Latest Dynatrace
  • Getting started guide
  • 3-min read
  • Published Feb 24, 2026

This guide shows you how to create a Dynatrace configuration for Dynatrace Monaco. You'll create and deploy an SLO configuration for Monaco, add manifest files and SLO files, authenticate via platform token, and validate the configuration syntax with the monaco deploy --dry-run command.

What will you learn?

You'll learn how to create a Dynatrace configuration file.

In this tutorial, you'll also learn how to:

  • Set up manifest files.
  • Set environmental credentials.
  • Validate the syntax of your configuration.

Before you begin

Prerequisites

  • Install Monaco and make the executable available in your PATH. The correct permissions depend on which APIs you use. For more info, see the API documentation or IAM policy reference.
  • Dynatrace environment and permissions to create an authentication token/credentials. For more information on using a Dynatrace trial client, see Dynatrace trial.
  • Create an platform token with the following permissions:
    • slo:slos:read
    • slo:slos:write
    • slo:objective-templates:read

Get started with creating Dynatrace configuration for Monaco

To create a Dynatrace configuration, follow the steps below.

  1. Set up the project directory. Run the following commands.

    mkdir -p monaco-getting-started/project-example/slo
    cd monaco-getting-started/project-example/slo
  2. Create two files. Run the following commands.

    # Linux
    touch slo.json slo.yaml
    # Windows
    New-Item slo.json
    New-Item slo.yaml
  3. Populate slo.json. Open the JSON configuration file in your text editor and paste the contents of the code block below. Save the file.

    {
    "name": "{{ .name }}",
    "description": "Measures the proportion of successful service requests over time.",
    "tags": {{ .tags }},
    "criteria": [
    {
    "target": 95,
    "timeframeFrom": "now-7d",
    "timeframeTo": "now"
    }
    ],
    "customSli": {
    "filterSegments": [],
    "indicator": "timeseries { total=sum(dt.service.request.count) ,failures=sum(dt.service.request.failure_count) }\n , by: { dt.entity.service }\n | fieldsAdd sli=(((total[]-failures[])/total[])*(100))\n | fieldsRemove total, failures"
    }
    }

    The name and tags used in this configuration are specified as variables. Their values will be given in the YAML configuration.

  4. Populate slo.yaml. Open the YAML configuration file in your text editor and paste the contents of the code block below. Save the file.

    configs:
    - id: my-sample-slo
    config:
    name: mySampleSLO
    parameters:
    tags:
    type: list
    values: ["service:myService",
    "dt.owner:myTeam"]
    template: slo.json
    skip: false
    type: slo-v2

    The values of name and tags will be propagated to the related placeholders in the slo.json file.

  5. Create a deployment manifest in the configuration directory. Run the following commands.

    # Linux
    cd ../..
    touch manifest.yaml
    # Windows
    cd ../..
    New-Item manifest.yaml
  6. Populate manifest.yaml. Open the YAML configuration file in your text editor and paste the contents of the code block below. Save the file.

    manifestVersion: 1.0
    projects:
    - name: my-slo-project
    path: project-example
    environmentGroups:
    - name: development
    environments:
    - name: development-environment
    url:
    type: environment
    value: DT_ENV_URL
    auth:
    platformToken:
    type: environment
    name: PLATFORM_TOKEN
  7. Specify the following environment variables. Run the commands below.

    # Linux
    export DT_ENV_URL="https://<your-dynatrace-environment>.apps.dynatrace.com"
    export PLATFORM_TOKEN="YourPlatformTokenValue"
    # Windows
    $env:DT_ENV_URL="https://<your-dynatrace-environment>.apps.dynatrace.com"
    $env:PLATFORM_TOKEN="YourTokenValue"
  8. Run Monaco to check if the configuration is syntactically valid and consistent.

    monaco deploy --dry-run manifest.yaml

Expected result

A successful run returns output similar to that shown in the code block below.

time=2025-09-01T09:06:23.506+02:00 level=INFO msg="Monaco version 2.24.0"
time=2025-09-01T09:06:23.507+02:00 level=INFO msg="Loading manifest \"{your full path to the file}\manifest.yaml\". Restrictions: groups=[], environments=[]" manifestPath="{your full path to the file}\manifest.yaml"
time=2025-09-01T09:06:23.535+02:00 level=INFO msg="Projects to be deployed (1):"
time=2025-09-01T09:06:23.536+02:00 level=INFO msg=" - my-slo-project"
time=2025-09-01T09:06:23.536+02:00 level=INFO msg="Environments to deploy to (1):"
time=2025-09-01T09:06:23.537+02:00 level=INFO msg=" - development-environment"
time=2025-09-01T09:06:23.537+02:00 level=INFO msg="Deploying configurations to environment \"development-environment\"..." environment.name=default environment.group=group
time=2025-09-01T09:06:23.556+02:00 level=INFO msg="Deploying config" deploymentStatus=deploying environment.name=development-environment environment.group=group coordinate.reference=my-slo-project:slo-v2:my-sample-slo coordinate.project=my-slo-project coordinate.type=slo-v2 coordinate.configId=my-sample-slo gid=0
time=2025-09-01T09:06:23.557+02:00 level=INFO msg="Deployment successful" deploymentStatus=deployed environment.name=development-environment environment.group=group coordinate.reference=my-slo-project:slo-v2:my-sample-slo coordinate.project=my-slo-project coordinate.type=slo-v2 coordinate.configId=my-sample-slo gid=0
time=2025-09-01T09:06:23.557+02:00 level=INFO msg="Deployment successful for environment 'development-environment'" environment.group=group environment.name=development-environment environment.name=development-environment environment.group=group
time=2025-09-01T09:06:23.557+02:00 level=INFO msg="Validation finished without errors"

You have now created valid Dynatrace configuration files to be used with Dynatrace Monaco CLI.

Congratulations!

Well done, you have created a Dynatrace configuration.

Next step

You're ready to Get started with configuration deployment for Monaco.

Related tags
Software Delivery