Sign inSign up

dynatraceace/merlin

By dynatraceace

Updated over 3 years ago

Creates and executes templates based on project Monaco. https://bit.ly/3R2LQeX

Image
0

1.5K

dynatraceace/merlin repository overview

Dynatrace merlin

Contains the UI and backend project of Dynatrace Merlin, a tool to create and consume templates based on project Monaco. https://github.com/dynatrace-oss/dynatrace-monitoring-as-code

Pre-requisites:

  1. Docker installed on you machine (tested with version 20.10.7). Please refer to the official Docker docs for installation instructions for your OS.
  2. Create environment variables file with the name .env that will hold the application configurations.

Copy the following into the .env file

GIT_URL=*
LOG_LEVEL=DEBUG
CONFIG_DIR="./tmp2"
TEMP_DIR="./tmp"
TEMPLATE_VERSION=0.0.1
REACT_APP_BACKEND_URL=http://127.0.0.1:4000
SERVER_CORS_URL=http://127.0.0.1:3000
JWT_KEY=q3t6w9z$B&E)H@Mc
MONACO_DEBUG=true
MONACO_API_URL=http://localhost:3010
MONACO_LEGACY=false

By default, the Merlin UI is served at http://127.0.0.1:3000 on your localhost. To pull the image use

docker pull dynatraceace/merlin:release

In your project root folder, use docker run to start the application:

docker run -p 4000:3040 -p 3000:80 -p 3010:3010 --name merlin -d --env-file=".env" dynatraceace/merlin:release

Please update --env-file=".env" with a valid path to your .env values file.

The containers can be stopped and removed by running:

docker stop merlin
docker rm merlin

Using the app

Navigate to http://127.0.0.1:3000 or the defined value in your .env file as SERVER_CORS_URL

When opening the Merlin UI in your Browser you will be prompted to provide Git credentials. Merlin stores templates, as well as configuration versions in git. By providing credentials, Merlin can create a link from your Browser to your preferred Git provider (tested with Github, Bitbucket).

You will need to provide:

  • git repository URL: include the .git ending
  • username: your git username
  • password: A token to access git and commit changes to the repository.

After the initial setup, go to the left menu and add your first Dynatrace environment. (You will need a Dynatrace URL and token with permissions to read/write configurations (api v1)).

After adding the initial environment, select a template a complete the form to create a new instance of the configuration. You can try a simple template like a management zone to check how it works.

Advanced configuration

If you want to change any of the settings in the .env file.

REACT_APP_BACKEND_URL: This tells the UI where the backend is running. Replace it with your server IP (internal or external) if you want to expose this to end users. If you are running this locally, you can use the default value http://127.0.0.1:4000.

SERVER_CORS_URL: This tells the server which URLs are allow to send requests. Replace it with your server IP (internal or external) if you want to expose this to end users. By default is http://127.0.0.1:3000.


GIT_URL: Restricts the access to a single repository. Leave it with * to allow any git repository url.

LOG_LEVEL: TRACE, DEBUG and INFO are available as options for log level. Use TRACE if you need to troubleshoot an issue.

CONFIG_DIR: Stores the configurations locally in the docker container by default is set to "./tmp2"

TEMP_DIR: Stores the templates locally in the docker container. By default is set to "./tmp"

TEMPLATE_VERSION: It's always 0.0.1. In the future will allow to track the version of the templates that the system will generate.

JWT_KEY: Allows to encrypt the tokens and signs the JWT tokens. You can change the key if you want to secure your tokens. It requires a 18bit key.

MONACO_DEBUG: Enables debug information when running the template execution. Default is true

MONACO_API_URL: This tells the Monaco server which URLs are allow to send monaco requests. Replace it with your server IP (internal or external) if you want to expose this to end users. By default is http://127.0.0.1:3010. MONACO_LEGACY: This enables the custom version of monaco for special purposes. By default it should be false.

Private SSL/TLS Certificates

If you have a Managed Dynatrace environment that has private SSL/TLS certificate or Self-Signed certificate, you would want to use them to securely connect to the environment via Monaco. For that case, you can attach your server certificates into the Merlin container via a mounted volume.

Below is the command to run the merlin docker container with a mounted volume:

Note: Change the <path/to/local/directory> with your local folder name to add the server certificates. Do not change the destination path - "/usr/local/share/ca-certificates" as it is a specified path for Debian based systems certifications trusted store.

For details: https://manpages.debian.org/buster/ca-certificates/update-ca-certificates.8.en.html

docker run -p 4000:3040 -p 3000:80 --name merlin -d --env-file=".env" -v <path/to/local/directory>:/usr/local/share/ca-certificates  dynatraceace/merlin:release
How to get the private SSL/TLS Certificates of a Managed Dynatrace Environment
  1. Open a terminal window on your local environment within the same network of the Managed DT environment. Make sure that you can be able to connect to your Dynatrace environment.
  2. Execute the below command to save the complete certificate chain of Managed Dynatrace environment.

    Note: Update with your environment endpoint.

openssl s_client -showcerts -connect <Your Managed Dynatrace Environment URL>:443  </dev/null | sed -n -e '/-.BEGIN/,/-.END/ p' > dt-managed-cacerts.pem
  1. Copy "dt-managed-cacerts.pem" file into a folder (i.e. <path/to/local/directory> from docker run command above) that you want to mount with the Merlin docker container.

Tag summary

Content type

Image

Digest

sha256:679fdd51b

Size

38.4 MB

Last updated

over 3 years ago

docker pull dynatraceace/merlin