Manage a Monaco project

  • Explanation
  • 3-min read

A project is a folder containing specially named sub-folders representing APIs. The API folders contain another layer of folders defining configurations. The configuration folders contain YAML files specifying what gets deployed.

APIs

To list all supported APIs and folder names, see Configuration types and access permissions.

Configurations

A configuration consists of two parts:

  • YAML file defining parameters, dependencies, name, and template
  • JSON template file

Configuration YAML file

The configuration YAML file contains basic information about the configuration to deploy. This includes the name of the configuration, the location of the template file, and the parameters usable in the template file. Parameters can be overwritten based on what group or environment is currently deployed.

JSON template file

The JSON template contains the payload that will be uploaded to the Dynatrace API endpoints. It allows you to reference all defined parameters of the configuration via {{ .PARAMETER_NAME }} syntax. For example:

template.json:

{
"name": "{{ .name }}",
"type": "{{ .type }}",
"value": {{ .numericValue }}
}

config.yaml:

configs:
- id: sample
config:
name: "Sample"
parameters:
type: "simple"
numericValue: 42
[...]

As you can see, it's also possible to reference the name of a configuration.

The Dynatrace Monaco CLI uses Go templates, which, in theory, allow you to define more complex templates, but we highly recommend that you keep templates as simple as possible. Referencing variables via {{ .PARAMETER_NAME }} should be sufficient.

For more on advanced templating use cases, see Advanced use cases with Go templating.

Related tags
Software Delivery