{"id":20317652,"url":"https://github.com/dynatrace/dynatrace-appmon-docker","last_synced_at":"2025-04-11T17:56:46.750Z","repository":{"id":26779711,"uuid":"30237880","full_name":"Dynatrace/Dynatrace-AppMon-Docker","owner":"Dynatrace","description":"The home of Dockerized components of the Dynatrace Application Monitoring enterprise solution.","archived":false,"fork":false,"pushed_at":"2019-10-02T12:49:57.000Z","size":8261,"stargazers_count":64,"open_issues_count":8,"forks_count":36,"subscribers_count":53,"default_branch":"master","last_synced_at":"2025-03-25T13:51:13.666Z","etag":null,"topics":["appmon","deployment"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Dynatrace.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-02-03T10:40:41.000Z","updated_at":"2025-03-23T18:17:33.000Z","dependencies_parsed_at":"2022-07-30T19:18:00.806Z","dependency_job_id":null,"html_url":"https://github.com/Dynatrace/Dynatrace-AppMon-Docker","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dynatrace%2FDynatrace-AppMon-Docker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dynatrace%2FDynatrace-AppMon-Docker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dynatrace%2FDynatrace-AppMon-Docker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Dynatrace%2FDynatrace-AppMon-Docker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Dynatrace","download_url":"https://codeload.github.com/Dynatrace/Dynatrace-AppMon-Docker/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248456301,"owners_count":21106601,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["appmon","deployment"],"created_at":"2024-11-14T18:34:41.201Z","updated_at":"2025-04-11T17:56:46.741Z","avatar_url":"https://github.com/Dynatrace.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"![Docker Logo](https://github.com/Dynatrace/Dynatrace-AppMon-Docker/blob/images/docker-logo.png)\n\n# Dynatrace-AppMon-Docker for AppMon\n\nThe home of Dockerized components of the [Dynatrace Application Monitoring](http://www.dynatrace.com/en/products/application-monitoring.html) enterprise solution. All components are available on the [Docker Hub](https://hub.docker.com/u/dynatrace/).\n\n## What is Dynatrace AppMon?\n\n[Dynatrace Application Monitoring](http://www.dynatrace.com/en/products/application-monitoring.html), with its [PurePath technology](http://www.dynatrace.com/en_us/application-performance-management/products/purepath-technology.html), is the world's leading application monitoring solution - trusted by more than 7500 customers around the globe. It supports all your major technology stacks and integrates into your Continuous Delivery pipelines to allow you to build world-class, high-quality software.\n\nIf you are looking for monitoring containerized applications in dynamic Docker environments, please visit [Dynatrace SaaS Docker monitoring](https://www.dynatrace.com/technologies/cloud-and-microservices/docker-monitoring).\n\n## How to install Dynatrace AppMon?\n\n*By default, we use root user for running containers. It is a bad practice so, if you can, you should run them as non-root. Go to the `Running Dynatrace Appmon containers as non-root` paragraph for running and configuration instructions.*\n\n### Running Dynatrace Appmon services as root\n\nIf you don't need to use a non-root or dedicated user to run Dynatrace Appmon docker containers, you can quickly bring up an entire Dockerized Dynatrace AppMon environment by using [Docker Compose](https://docs.docker.com/compose/) with any of the provided `docker-compose.yml` files  like so :\n\n```\ngit clone https://github.com/Dynatrace/Dynatrace-AppMon-Docker.git\ncd Dynatrace-AppMon-Docker\ndocker-compose up -d\n```\nThis will install and run all Appmon services like Server, Collector and Master Agent in daemon mode in single containers joined the same subnetwork. Then, you can install your [Agents](https://github.com/Dynatrace/Dynatrace-AppMon-Docker/tree/master/Dynatrace-Agent-Examples) (see Configuration part for further details).\nIn order to browse logs produced by these services you can use:\n```\ndocker-compose logs -f\n```\n\n### Running Dynatrace Appmon services as non-root\n\nFor the security reasons, as Docker co-uses the host kernel, all Dynatrace Appmon services are recommended to be run as non-root user. Therefore, you should operate on dedicated user on your host machine and **set `CUID` (User ID) and `CGID` (Group ID) variables in `.env` file for your user**. By default it uses root. During image builds, user with the same ids will be created and used for running containers. \n\nAfter you change user/group id variables, you may run Dynatrace Appmon in two ways:\n* executing `run-as-nonroot.sh` script as dedicated user. This user should be able to run docker services (he should be added to the docker group). Example: `./run-as-nonroot.sh -f docker-compose-debian.yml -b`, where `-b` states for docker-compose's `--build` \n\n\n\n\nor\n* running `docker-compose up` **after** making sure that host directories for `DT_SERVER_LOG_PATH_ON_HOST`, `DT_COLLECTOR_LOG_PATH_ON_HOST` and `DT_AGENT_LOG_PATH_ON_HOST` are created and ownerships are set to your dedicated user. Otherwise logs will not be available for you on host machine and/or some service might not run due to permission denied error. \n  \n#### Configuration\n\nConfiguration relies on supplying `docker-compose` with environment variables defined in `.env` file. Some .env files variables need to be passed to `Dockerfile` via `ARG` for correct building component images, that's way it is recommended to change variables only from `.env` file.\n\n**Ports** can be also configured in .env file. By default it uses values from [Communication Connections Documentation](https://www.dynatrace.com/support/doc/appmon/installation/set-up-communication-connections/).\n\n**Master Agent** (`dtagent`) service only prepares required libraries and installation scripts for triggering agents. Running and configuring agents is manual action done by the user. Examples are [here](https://github.com/Dynatrace/Dynatrace-AppMon-Docker/tree/master/Dynatrace-Agent-Examples).\nIf you are not familiar with Appmon Agents concept, please read: [Agents Overview](https://www.dynatrace.com/support/doc/appmon/application-monitoring/agents/), [Agents Installation](https://www.dynatrace.com/support/doc/appmon/installation/install-agents/), [Agents Configuration](https://www.dynatrace.com/support/doc/appmon/installation/set-up-agents/)\n\nIf you *don't* want to validate CA certificate for curl commands, you may want to initialize `CURL_INSECURE` variable to any value for image build.\n\nPlease see each component's README file for more specific details about configuration.\n \n### Licensing\n\nThe example above leaves your Dynatrace AppMon environment without a proper license. However, you can add your license by editing .env file and put it as value for DT_SERVER_LICENSE_KEY_FILE_URL variable.\n\nAlso, you can conveniently have a license provisioned at container runtime by specifying a URL to a [Dynatrace License Key File](http://bit.ly/dttrial-docker-github) in the `DT_SERVER_LICENSE_KEY_FILE_URL` environment variable. If you don't happen to have a web server available to serve the license file to you, [Netcat](https://en.wikipedia.org/wiki/Netcat) can conveniently serve it from your command line, exactly once, via `nc -l 1337 \u003c dtlicense.key`, where `1337` is an available port on your local machine. A `sudo` may be required depending on which port you eventually decide to choose.\n\n```\ngit clone https://github.com/Dynatrace/Dynatrace-Docker.git\ncd Dynatrace-Docker\nDT_SERVER_LICENSE_KEY_FILE_URL=http://$YOUR_IP:1337 docker-compose up\n```\n\n### Obtaining a License\n\nIn the example above, you have to let `DT_SERVER_LICENSE_KEY_FILE_URL` point to a valid Dynatrace AppMon License Key file. If you don't have a license yet, you can [obtain a Dynatrace AppMon Free Trial License here](http://bit.ly/dttrial-docker-github). However, you don't need to have your license file hosted by a server: if you can run a console, [Netcat](https://en.wikipedia.org/wiki/Netcat) can conveniently serve it for you on port `80` via `sudo nc -l 80 \u003c dtlicense.key`.\n\n## How to Monitor your Dockerized Application?\n[Performance Clinic - Agents](https://www.youtube.com/watch?v=B_oWkBjH-Uk\u0026list=PLqt2rd0eew1bmDn54E2_M2uvbhm_WxY_6\u0026index=37)\n[Performance Clinic - Collector](https://www.youtube.com/watch?v=UyRCJ-Xi3a4\u0026list=PLqt2rd0eew1bmDn54E2_M2uvbhm_WxY_6\u0026index=74)\n\nSee the following integrations for more information:\n\n- [Dockerized AppMon Agent: Examples](https://github.com/Dynatrace/Dynatrace-AppMon-Docker/tree/master/Dynatrace-Agent-Examples)\n- [Dockerized easyTravel Application](https://github.com/Dynatrace-Innovationlab/easyTravel-Docker)\n\n![Dockerized Application](https://github.com/Dynatrace/Dynatrace-Docker/blob/images/dockerized-application.png)\n\n## How to Monitor your Docker Containers?\n\nWant to see all your Docker Metrics in one place? See the [Dynatrace Docker Monitor Plugin](https://community.dynatrace.com/community/display/DL/Docker+Monitor+Plugin) for more information.\n\n![Docker Monitor Plugin](https://github.com/Dynatrace/Dynatrace-Docker/blob/images/docker-monitor-plugin.png)\n\n## Resource Requirements\n\nWhen running Docker on Windows or a Mac via the [Docker Toolbox](https://www.docker.com/products/docker-toolbox), make sure your [Docker Machine](https://docs.docker.com/machine/overview/) has sufficient resources available to run Dynatrace AppMon together with your Dockerized application:\n\n1) Stop the Docker Machine in VirtualBox\n\n![Power off Docker Machine](https://github.com/Dynatrace/Dynatrace-Docker/blob/images/docker-machine-power-off.png)\n\n2) Give your Docker Machine at least 2 CPUs\n\n![Configure Docker Machine CPUs](https://github.com/Dynatrace/Dynatrace-Docker/blob/images/docker-machine-cpu-settings.png)\n\n3) Give your Docker Machine at least 4 GB of RAM\n\n![Configure Docker Machine RAM](https://github.com/Dynatrace/Dynatrace-Docker/blob/images/docker-machine-mem-settings.png)\n\n4) Finally, start your Docker Quickstart Terminal for the changes to take effect.\n\n## Problems? Questions? Suggestions?\n\nThis offering is [Dynatrace Community Supported](https://community.dynatrace.com/community/display/DL/Support+Levels#SupportLevels-Communitysupported/NotSupportedbyDynatrace(providedbyacommunitymember)). Feel free to share any problems, questions and suggestions with your peers on the Dynatrace Community's [Application Monitoring \u0026 UEM Forum](https://answers.dynatrace.com/spaces/146/index.html).\n\n## License\n\nLicensed under the MIT License. See the [LICENSE](https://github.com/Dynatrace/Dynatrace-Docker/blob/master/LICENSE) file for details.\n[![analytics](https://www.google-analytics.com/collect?v=1\u0026t=pageview\u0026_s=1\u0026dl=https%3A%2F%2Fgithub.com%2FdynaTrace\u0026dp=%2FDynatrace-Docker\u0026dt=Dynatrace-Docker\u0026_u=Dynatrace~\u0026cid=github.com%2FdynaTrace\u0026tid=UA-54510554-5\u0026aip=1)]()\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdynatrace%2Fdynatrace-appmon-docker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdynatrace%2Fdynatrace-appmon-docker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdynatrace%2Fdynatrace-appmon-docker/lists"}