Giter VIP home page Giter VIP logo

dynatrace-appmon-docker's Introduction

Docker Logo

Dynatrace-AppMon-Docker for AppMon

The home of Dockerized components of the Dynatrace Application Monitoring enterprise solution. All components are available on the Docker Hub.

What is Dynatrace AppMon?

Dynatrace Application Monitoring, with its PurePath technology, 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.

If you are looking for monitoring containerized applications in dynamic Docker environments, please visit Dynatrace SaaS Docker monitoring.

How to install Dynatrace AppMon?

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.

Running Dynatrace Appmon services as root

If 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 with any of the provided docker-compose.yml files like so :

git clone https://github.com/Dynatrace/Dynatrace-AppMon-Docker.git
cd Dynatrace-AppMon-Docker
docker-compose up -d

This 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 (see Configuration part for further details). In order to browse logs produced by these services you can use:

docker-compose logs -f

Running Dynatrace Appmon services as non-root

For 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.

After you change user/group id variables, you may run Dynatrace Appmon in two ways:

  • 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

or

  • 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.

Configuration

Configuration 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.

Ports can be also configured in .env file. By default it uses values from Communication Connections Documentation.

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. If you are not familiar with Appmon Agents concept, please read: Agents Overview, Agents Installation, Agents Configuration

If 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.

Please see each component's README file for more specific details about configuration.

Licensing

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

Also, you can conveniently have a license provisioned at container runtime by specifying a URL to a Dynatrace License Key File 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 can conveniently serve it from your command line, exactly once, via nc -l 1337 < 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.

git clone https://github.com/Dynatrace/Dynatrace-Docker.git
cd Dynatrace-Docker
DT_SERVER_LICENSE_KEY_FILE_URL=http://$YOUR_IP:1337 docker-compose up

Obtaining a License

In 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. However, you don't need to have your license file hosted by a server: if you can run a console, Netcat can conveniently serve it for you on port 80 via sudo nc -l 80 < dtlicense.key.

How to Monitor your Dockerized Application?

Performance Clinic - Agents Performance Clinic - Collector

See the following integrations for more information:

Dockerized Application

How to Monitor your Docker Containers?

Want to see all your Docker Metrics in one place? See the Dynatrace Docker Monitor Plugin for more information.

Docker Monitor Plugin

Resource Requirements

When running Docker on Windows or a Mac via the Docker Toolbox, make sure your Docker Machine has sufficient resources available to run Dynatrace AppMon together with your Dockerized application:

  1. Stop the Docker Machine in VirtualBox

Power off Docker Machine

  1. Give your Docker Machine at least 2 CPUs

Configure Docker Machine CPUs

  1. Give your Docker Machine at least 4 GB of RAM

Configure Docker Machine RAM

  1. Finally, start your Docker Quickstart Terminal for the changes to take effect.

Problems? Questions? Suggestions?

This offering is Dynatrace Community Supported. Feel free to share any problems, questions and suggestions with your peers on the Dynatrace Community's Application Monitoring & UEM Forum.

License

Licensed under the MIT License. See the LICENSE file for details. analytics

dynatrace-appmon-docker's People

Contributors

blazejt avatar centic9 avatar marcinzejer avatar metmajer avatar olljanat avatar rafal-kaminski avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

dynatrace-appmon-docker's Issues

SSL Certificate Error on Container startup

Seeing the following errors while trying to spin up the containers. Is there a way to get rid of them ?

dtcollector | 2020-03-16 18:19:16 INFO [Collector] Collector started.
dtcollector | 2020-03-16 18:19:16 SEVERE [ImportCertificateStrategy] certificate is expired and not already accepted for [collector_client]: NotAfter: Thu Mar 07 10:37:35 GMT 2019
dtcollector | 2020-03-16 18:19:16 SEVERE [ImportCertificateStrategy] client did not accepted ssl client certificates. will not establish trust for [collector_client]: NotAfter: Thu Mar 07 10:37:35 GMT 2019
dtcollector | 2020-03-16 18:19:16 SEVERE [MessageBroker] Failed to send CLUSTER_TIME message (target-type=SERVER, target-id=0), uri=null - CommunicationException: javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateExpiredException: client did not accepted ssl client certificates. will not establish trust for [collector_client]

Getting "not found" after building for the two .sh scripts

Hi I am running Docker Beta for Windows.

I am able to build the Dynatrace Server without any errors except the security warning:

SECURITY WARNING: You are building a Docker image from Windows against a non-Windows Docker host. All files and directories added to build context will have '-rwxr-xr-x' permissions. It is recommended to double check and reset permissions for sensitive files and directories.

But when I try to run the image afterwards I get this:

/bin/sh: 1: /pull-license-key-file.sh: not found /bin/sh: 1: /run-process.sh: not found

Collector crashing in a loop

Hello everyone,

We recently tried to implement Dynatrace Collector in our Openshift cluster with the DockerImage provided in this repository.
We're actually testing a setup with only one collector and a server outside the Openshift cluster, running in a VM. Both collector and server are running on v7.0.
Network connectivity between the Collector container and the Server VM is established and working.
However, we have the following logs with the collector restarting because of its watchdog every few minutes:

Command used:
8 10036400 0:00 /opt/dynatrace/dtcollector -instance dtcollector -listen -server dtserver-tcp-router:6699 -group -Xms2G -Xmx2G -XX:PermSize=128m -XX:MaxPermSize=128m


2018-06-18 01:38:15 [5e316843] info    [native] Launcher configuration summary for Dynatrace Collector:
--
  | 2018-06-18 01:38:15 [5e316843] info    [native]   Launcher: /opt/dynatrace/dtcollector
  | 2018-06-18 01:38:15 [5e316843] info    [native]   Java VM:  /opt/dynatrace/jre/bin/java
  | 2018-06-18 01:38:15 [5e316843] info    [native]   Java version: 1.8.0_121 64-Bit
  | 2018-06-18 01:38:15 [5e316843] info    [native]   Startup jar: /opt/dynatrace/collector/plugins/org.eclipse.equinox.launcher_1.2.0.v20110502.jar
  | 2018-06-18 01:38:15 [5e316843] info    [native]   Working directory:  /opt/dynatrace/collector
  | 2018-06-18 01:38:15 [5e316843] info    [native]   Configuration file: /opt/dynatrace/dtcollector.ini
  | 2018-06-18 01:38:15 [5e316843] info    [native]   Native watchdog enabled, port: 50000, timeout: 180 sec (timeout for graceful shutdown: 300 sec)
  | 2018-06-18 01:38:15 [5e316843] info    [native] Process created successfully, pid: 30
  | 2018-06-18 01:38:15 [57ff8803] severe  [java  ] Java HotSpot(TM) 64-Bit Server VM warning: ignoring option PermSize=128m; support was removed in 8.0
  | 2018-06-18 01:38:15 [57ff8803] severe  [java  ] Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=128m; support was removed in 8.0
  | Dynatrace Collector
  | Version: 7.0.0.2469 - built 2017.05.30
  | Copyright (C) 2004-2017, Dynatrace
  |  
  | 2018-06-18 01:38:19 [Bootstrap] Using OSGI configuration location root path: '/opt/dynatrace/collector/.'
  | 2018-06-18 01:38:19 [Bootstrap] Starting bootstrap hooking, root path: '/opt/dynatrace/collector'; upgrades path: '/opt/dynatrace/collector/upgrades'; fixpack path: '/opt/dynatrace/collector/instances/dtcollector/updates'; .ini file: '/opt/dynatrace/dtcollector.ini'
  | 2018-06-18 01:38:31 [5ce2f803] info    [java  ]
  | 2018-06-18 01:41:15 [5d62e803] warning [native] Process 30 not responding within time limit - still waiting for process to connect...
  | 2018-06-18 01:44:15 [5d62e803] warning [native] Process 30 not responding, retrieving Java stack trace...
  | 2018-06-18 01:44:15 [5d62e803] warning [native] --- Java stack trace begin --------------------------------------------------------------------------
  | 2018-06-18 01:44:15 [5d62e803] info    [native] Signal 3 sent to process 30
  | 2018-06-18 01:44:15
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ] Full thread dump Java HotSpot(TM) 64-Bit Server VM (25.121-b13 mixed mode):
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ]
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ] "DestroyJavaVM" #24 prio=5 os_prio=0 tid=0x00007f924c385000 nid=0x21 waiting on condition [0x0000000000000000]
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ]    java.lang.Thread.State: RUNNABLE
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ]
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ] "pool-2-thread-2" #23 prio=5 os_prio=0 tid=0x00007f91c4411800 nid=0x41 waiting on condition [0x00007f92089f3000]
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ]    java.lang.Thread.State: WAITING (parking)
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ] 	at sun.misc.Unsafe.park(Native Method)
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ] 	- parking to wait for  <0x0000000086c58190> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ] 	at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ] 	at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ] 	at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1081)
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ] 	at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:809)
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ] 	at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1067)
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ] 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1127)
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ] 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ] 	at java.lang.Thread.run(Thread.java:745)
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ]
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ] "Bundle File Closer" #22 daemon prio=5 os_prio=0 tid=0x00007f91c4758000 nid=0x40 in Object.wait() [0x00007f92093da000]
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ]    java.lang.Thread.State: WAITING (on object monitor)
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ] 	at java.lang.Object.wait(Native Method)
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ] 	- waiting on <0x00000000871c56b0> (a org.eclipse.osgi.framework.eventmgr.EventManager$EventThread)
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ] 	at java.lang.Object.wait(Object.java:502)
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ] 	at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.getNextEvent(EventManager.java:400)
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ] 	- locked <0x00000000871c56b0> (a org.eclipse.osgi.framework.eventmgr.EventManager$EventThread)
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ] 	at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:336)
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ]
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ] "pool-2-thread-1" #21 prio=5 os_prio=0 tid=0x00007f91c46d4000 nid=0x3f waiting on condition [0x00007f920999c000]
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ]    java.lang.Thread.State: WAITING (parking)
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ] 	at sun.misc.Unsafe.park(Native Method)
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ] 	- parking to wait for  <0x0000000086c58190> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ] 	at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ] 	at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ] 	at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1088)
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ] 	at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:809)
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ] 	at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1067)
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ] 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1127)
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ] 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ] 	at java.lang.Thread.run(Thread.java:745)
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ]
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ] "Worker-JM" #20 prio=5 os_prio=0 tid=0x00007f91c43f5000 nid=0x3e in Object.wait() [0x00007f920a0e5000]
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ]    java.lang.Thread.State: WAITING (on object monitor)
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ] 	at java.lang.Object.wait(Native Method)
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ] 	- waiting on <0x00000000853851b0> (a java.util.ArrayList)
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ] 	at org.eclipse.core.internal.jobs.InternalWorker.run(InternalWorker.java:58)
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ] 	- locked <0x00000000853851b0> (a java.util.ArrayList)
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ]
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ] "Start Level Event Dispatcher" #16 daemon prio=5 os_prio=0 tid=0x00007f924c36f800 nid=0x3b in Object.wait() [0x00007f920a1e6000]
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ]    java.lang.Thread.State: WAITING (on object monitor)
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ] 	at java.lang.Object.wait(Native Method)
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ] 	at java.lang.Object.wait(Object.java:502)
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ] 	at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.getNextEvent(EventManager.java:400)
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ] 	- locked <0x0000000081c61178> (a org.eclipse.osgi.framework.eventmgr.EventManager$EventThread)
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ] 	at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:336)
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ]
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ] "Framework Event Dispatcher" #15 daemon prio=5 os_prio=0 tid=0x00007f924c36e000 nid=0x3a in Object.wait() [0x00007f920a2e7000]
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ]    java.lang.Thread.State: WAITING (on object monitor)
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ] 	at java.lang.Object.wait(Native Method)
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ] 	at java.lang.Object.wait(Object.java:502)
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ] 	at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.getNextEvent(EventManager.java:400)
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ] 	- locked <0x0000000081c578c8> (a org.eclipse.osgi.framework.eventmgr.EventManager$EventThread)
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ] 	at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:336)
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ]
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ] "Framework Active Thread" #12 prio=5 os_prio=0 tid=0x00007f924c337800 nid=0x38 in Object.wait() [0x00007f920a4e9000]
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ]    java.lang.Thread.State: TIMED_WAITING (on object monitor)
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ] 	at java.lang.Object.wait(Native Method)
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ] 	at org.eclipse.osgi.framework.internal.core.Framework.run(Framework.java:1817)
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ] 	- locked <0x0000000080a5db60> (a org.eclipse.osgi.framework.internal.core.Framework)
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ] 	at java.lang.Thread.run(Thread.java:745)
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ]
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ] "Service Thread" #10 daemon prio=9 os_prio=0 tid=0x00007f924c16f000 nid=0x36 runnable [0x0000000000000000]
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ]    java.lang.Thread.State: RUNNABLE
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ]
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ] "C1 CompilerThread3" #9 daemon prio=9 os_prio=0 tid=0x00007f924c15c000 nid=0x35 waiting on condition [0x0000000000000000]
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ]    java.lang.Thread.State: RUNNABLE
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ]
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ] "C2 CompilerThread2" #8 daemon prio=9 os_prio=0 tid=0x00007f924c159800 nid=0x34 waiting on condition [0x0000000000000000]
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ]    java.lang.Thread.State: RUNNABLE
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ]
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ] "C2 CompilerThread1" #7 daemon prio=9 os_prio=0 tid=0x00007f924c157800 nid=0x33 waiting on condition [0x0000000000000000]
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ]    java.lang.Thread.State: RUNNABLE
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ]
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ] "C2 CompilerThread0" #6 daemon prio=9 os_prio=0 tid=0x00007f924c155800 nid=0x32 waiting on condition [0x0000000000000000]
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ]    java.lang.Thread.State: RUNNABLE
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ]
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ] "Signal Dispatcher" #5 daemon prio=9 os_prio=0 tid=0x00007f924c153800 nid=0x31 waiting on condition [0x0000000000000000]
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ]    java.lang.Thread.State: RUNNABLE
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ]
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ] "Surrogate Locker Thread (Concurrent GC)" #4 daemon prio=9 os_prio=0 tid=0x00007f924c152000 nid=0x30 waiting on condition [0x0000000000000000]
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ]    java.lang.Thread.State: RUNNABLE
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ]
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ] "Finalizer" #3 daemon prio=8 os_prio=0 tid=0x00007f924c120000 nid=0x2f in Object.wait() [0x00007f920b423000]
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ]    java.lang.Thread.State: WAITING (on object monitor)
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ] 	at java.lang.Object.wait(Native Method)
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ] 	- waiting on <0x0000000080008ec8> (a java.lang.ref.ReferenceQueue$Lock)
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ] 	at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:143)
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ] 	- locked <0x0000000080008ec8> (a java.lang.ref.ReferenceQueue$Lock)
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ] 	at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:164)
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ] 	at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:209)
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ]
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ] "Reference Handler" #2 daemon prio=10 os_prio=0 tid=0x00007f924c11b800 nid=0x2e in Object.wait() [0x00007f920b524000]
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ]    java.lang.Thread.State: WAITING (on object monitor)
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ] 	at java.lang.Object.wait(Native Method)
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ] 	- waiting on <0x0000000080006b68> (a java.lang.ref.Reference$Lock)
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ] 	at java.lang.Object.wait(Object.java:502)
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ] 	at java.lang.ref.Reference.tryHandlePending(Reference.java:191)
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ] 	- locked <0x0000000080006b68> (a java.lang.ref.Reference$Lock)
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ] 	at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:153)
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ]
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ] "VM Thread" os_prio=0 tid=0x00007f924c114000 nid=0x2d runnable
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ]
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ] "Gang worker#0 (Parallel GC Threads)" os_prio=0 tid=0x00007f924c01c000 nid=0x22 runnable
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ]
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ] "Gang worker#1 (Parallel GC Threads)" os_prio=0 tid=0x00007f924c01e000 nid=0x23 runnable
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ]
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ] "Gang worker#2 (Parallel GC Threads)" os_prio=0 tid=0x00007f924c01f800 nid=0x24 runnable
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ]
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ] "Gang worker#3 (Parallel GC Threads)" os_prio=0 tid=0x00007f924c021800 nid=0x25 runnable
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ]
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ] "Gang worker#4 (Parallel GC Threads)" os_prio=0 tid=0x00007f924c023000 nid=0x26 runnable
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ]
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ] "Gang worker#5 (Parallel GC Threads)" os_prio=0 tid=0x00007f924c025000 nid=0x27 runnable
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ]
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ] "Gang worker#6 (Parallel GC Threads)" os_prio=0 tid=0x00007f924c026800 nid=0x28 runnable
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ]
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ] "Gang worker#7 (Parallel GC Threads)" os_prio=0 tid=0x00007f924c028800 nid=0x29 runnable
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ]
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ] "Concurrent Mark-Sweep GC Thread" os_prio=0 tid=0x00007f924c099800 nid=0x2c runnable
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ]
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ] "Gang worker#0 (Parallel CMS Threads)" os_prio=0 tid=0x00007f924c095800 nid=0x2a runnable
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ]
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ] "Gang worker#1 (Parallel CMS Threads)" os_prio=0 tid=0x00007f924c097800 nid=0x2b runnable
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ]
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ] "VM Periodic Task Thread" os_prio=0 tid=0x00007f924c172800 nid=0x37 waiting on condition
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ]
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ] JNI global references: 369
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ]
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ] Heap
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ]  par new generation   total 613440K, used 283617K [0x0000000080000000, 0x00000000a9990000, 0x00000000a9990000)
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ]   eden space 545344K,  52% used [0x0000000080000000, 0x00000000914f8470, 0x00000000a1490000)
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ]   from space 68096K,   0% used [0x00000000a1490000, 0x00000000a1490000, 0x00000000a5710000)
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ]   to   space 68096K,   0% used [0x00000000a5710000, 0x00000000a5710000, 0x00000000a9990000)
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ]  concurrent mark-sweep generation total 1415616K, used 0K [0x00000000a9990000, 0x0000000100000000, 0x0000000100000000)
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ]  Metaspace       used 19882K, capacity 21048K, committed 21248K, reserved 1067008K
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ]   class space    used 2349K, capacity 2710K, committed 2816K, reserved 1048576K
  | 2018-06-18 01:44:15 [5ce2f803] info    [java  ]
  | 2018-06-18 01:44:25 [5d62e803] warning [native] --- Java stack trace end ----------------------------------------------------------------------------
  | 2018-06-18 01:44:25 [5d62e803] severe  [native] Process 30 not responding within time limit - restarting process...
  | 2018-06-18 01:44:25 [5d62e803] info    [native] Signal 15 sent to process 30
  | 2018-06-18 01:44:25 [5d62e803] warning [native] Native launcher is waiting for process 30 to terminate. Process will be killed in 289 sec.
  | 2018-06-18 01:44:25 [5e316843] info    [native] Process 30 terminated, exitcode: 143 (signal: 15)
  | 2018-06-18 01:44:25 [5e316843] severe  [native] Process was terminated by native watchdog
  | 2018-06-18 01:44:25 [5e316843] info    [native] Restarting Dynatrace Collector...
  | 2018-06-18 01:44:25 [5e316843] info    [native] Launcher configuration summary for Dynatrace Collector:
  | 2018-06-18 01:44:25 [5e316843] info    [native]   Launcher: /opt/dynatrace/dtcollector
  | 2018-06-18 01:44:25 [5e316843] info    [native]   Java VM:  /opt/dynatrace/jre/bin/java
  | 2018-06-18 01:44:25 [5e316843] info    [native]   Java version: 1.8.0_121 64-Bit
  | 2018-06-18 01:44:25 [5e316843] info    [native]   Startup jar: /opt/dynatrace/collector/plugins/org.eclipse.equinox.launcher_1.2.0.v20110502.jar
  | 2018-06-18 01:44:25 [5e316843] info    [native]   Working directory:  /opt/dynatrace/collector
  | 2018-06-18 01:44:25 [5e316843] info    [native]   Configuration file: /opt/dynatrace/dtcollector.ini
  | 2018-06-18 01:44:25 [5e316843] info    [native]   Native watchdog enabled, port: 50000, timeout: 180 sec (timeout for graceful shutdown: 300 sec)
  | 2018-06-18 01:44:25 [5e316843] info    [native] Process created successfully, pid: 88
  | 2018-06-18 01:44:25 [5ce2f803] severe  [java  ] Java HotSpot(TM) 64-Bit Server VM warning: ignoring option PermSize=128m; support was removed in 8.0
  | 2018-06-18 01:44:25 [5ce2f803] severe  [java  ] Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=128m; support was removed in 8.0
  | 2018-06-18 01:44:29 [Bootstrap] Using OSGI configuration location root path: '/opt/dynatrace/collector/.'
  | 2018-06-18 01:44:29 [Bootstrap] Found a stale lockfile that was created by PID 30
  | 2018-06-18 01:44:29 [Bootstrap] Starting bootstrap hooking, root path: '/opt/dynatrace/collector'; upgrades path: '/opt/dynatrace/collector/upgrades'; fixpack path: '/opt/dynatrace/collector/instances/dtcollector/updates'; .ini file: '/opt/dynatrace/dtcollector.ini'
  | 2018-06-18 01:44:42 [57ff8803] info    [java  ]

Below is the unmodified dtcollector.ini file:

-basedir                                                                                                                                                                                                                         
collector                                                                                                                                                                                                                        
-restartonfailure                                                                                                                                                                                                                
-vmargs                                                                                                                                                                                                                          
-Xmx2G                                                                                                                                                                                                                           
-Xms2G                                                                                                                                                                                                                           
-XX:+UseConcMarkSweepGC                                                                                                                                                                                                          
-XX:+DisableExplicitGC                                                                                                                                                                                                           
-XX:CMSInitiatingOccupancyFraction=60                                                                                                                                                                                            
-XX:+UseCMSInitiatingOccupancyOnly                                                                                                                                                                                               
-XX:CMSIncrementalSafetyFactor=40                                                                                                                                                                                                
-XX:+CMSClassUnloadingEnabled                                                                                                                                                                                                    
-XX:-EliminateLocks                                                                                                                                                                                                              
-XX:-DoEscapeAnalysis                                                                                                                                                                                                            
-XX:-UseLoopPredicate                                                                                                                                                                                                            
-Dosgi.configuration.area=osgi                                                                                                                                                                                                   
-Dosgi.bundles=org.eclipse.equinox.common@2:start, org.eclipse.update.configurator@2:start, org.eclipse.equinox.event@3:start, com.dynatrace.diagnostics.collectorbootstrap@5:start                                              
-Declipse.ignoreApp=true                                                                                                                                                                                                         
-Dosgi.noShutdown=true                                                                                                                                                                                                           
-Djava.util.logging.manager=com.dynatrace.diagnostics.util.modern.logging.CollectorLogManager                                                                                                                                    
-Djava.awt.headless=true                                                                                                                                                                                                         
-Dorg.osgi.framework.language=en                                                                                                                                                                                                 
-Dosgi.framework.extensions=com.dynatrace.diagnostics.bootstrap.hook                                                                                                                                                             
-Dosgi.nl=en_US                                                                                                                                                                                                                  
-Dosgi.nl.user=en_US                                                                                                                                                                                                             
-Duser.country=US                                                                                                                                                                                                                
-Duser.language=en                                                                                                                                                                                                               
-server                                                                                                                                                                                                                          
-XX:+UseCompressedOops 

Connectivity check with the server:

bash-4.3$ nc -z dtserver-tcp-router:6699 -v                                                                                                                                                                                      
dtserver-tcp-router:6699 (10.96.203.73:6699) open 

We had a Dynatrace professional to look at it but he redirected us to this repo to create an issue.

Note that we are running as non-root user, hence we gave the permission to the user to read/write all Dynatrace related folders.

Could you help us find out what is going wrong?

Thanks.

SIncerely,

Raphael

Error while trying to run Java example

Hi all,

I am following the instructions provided and while trying to start the java example seeing the following error 👎
Service "java" mounts volumes from "dtagent", which is not the name of a service or container.

Am i doing something wrong ?

Create an image for 7.0

Signing up for Dynatrace AppMon trial at date of posting this generates a license for v7.0
Could images be generated for v7 so that there is a docker alternative to the win/linux/mac install options?

Buildfile error

Hello,
on Redhat 7.2, i have this error during the build:

Step 22/30 : RUN apk update && apk add --no-cache ${DT_INSTALL_DEPS} ${DT_RUNTIME_DEPS} && mkdir -p ${DT_HOME} && /usr/bin/install-agent.sh ${AGENT_INSTALLER_URL} && /usr/bin/install-wsagent.sh ${WSAGENT_INSTALLER32_URL} && /usr/bin/install-wsagent.sh ${WSAGENT_INSTALLER64_URL} && /usr/bin/install-node-agent.sh ${NODE_AGENT_INSTALLER_URL} && mkdir -p ${DT_HOME}/log/agent && apk del ${DT_INSTALL_DEPS}
---> Running in 39f643abb838
fetch http://dl-cdn.alpinelinux.org/alpine/v3.5/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.5/community/x86_64/APKINDEX.tar.gz
v3.5.2-225-g4d15b3991f [http://dl-cdn.alpinelinux.org/alpine/v3.5/main]
v3.5.2-213-g0860a961bc [http://dl-cdn.alpinelinux.org/alpine/v3.5/community]
OK: 7964 distinct packages available
fetch http://dl-cdn.alpinelinux.org/alpine/v3.5/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.5/community/x86_64/APKINDEX.tar.gz
(1/31) Installing ncurses-terminfo-base (6.0_p20170701-r0)
(2/31) Installing ncurses-terminfo (6.0_p20170701-r0)
(3/31) Installing ncurses-libs (6.0_p20170701-r0)
(4/31) Installing readline (6.3.008-r4)
(5/31) Installing bash (4.3.46-r5)
Executing bash-4.3.46-r5.post-install
(6/31) Installing ca-certificates (20161130-r1)
(7/31) Installing libssh2 (1.7.0-r2)
(8/31) Installing libcurl (7.56.1-r0)
(9/31) Installing curl (7.56.1-r0)
(10/31) Installing openjdk8-jre-lib (8.121.13-r0)
(11/31) Installing java-common (0.1-r0)
(12/31) Installing libffi (3.2.1-r2)
(13/31) Installing libtasn1 (4.9-r2)
(14/31) Installing p11-kit (0.23.2-r1)
(15/31) Installing p11-kit-trust (0.23.2-r1)
(16/31) Installing java-cacerts (1.0-r0)
(17/31) Installing libjpeg-turbo (1.5.1-r0)
(18/31) Installing krb5-conf (1.0-r1)
(19/31) Installing libcom_err (1.43.3-r0)
(20/31) Installing keyutils-libs (1.5.9-r1)
(21/31) Installing libverto (0.2.5-r0)
(22/31) Installing krb5-libs (1.14.3-r1)
(23/31) Installing lcms2 (2.8-r1)
(24/31) Installing nspr (4.12-r0)
(25/31) Installing sqlite-libs (3.15.2-r1)
(26/31) Installing nss (3.28.4-r0)
(27/31) Installing pcsc-lite-libs (1.8.20-r0)
(28/31) Installing lksctp-tools (1.0.17-r0)
(29/31) Installing libgcc (6.2.1-r1)
(30/31) Installing libstdc++ (6.2.1-r1)
(31/31) Installing openjdk8-jre-base (8.121.13-r0)
Executing busybox-1.25.1-r0.trigger
Executing ca-certificates-20161130-r1.trigger
Executing java-common-0.1-r0.trigger
OK: 81 MiB in 42 packages
BusyBox v1.25.1 (2016-10-26 16:15:20 GMT) multi-call binary.

Usage: mkdir [OPTIONS] DIRECTORY...

Create DIRECTORY

    -m MODE Mode
    -p      No error if exists; make parent directories as needed

Removing intermediate container 39f643abb838

I don't really understand the reason of this error ... the syntax is correct.
I have bypassed it by putting env variable directly in the build but this is not a correct way.
cheers,

Not able to connect DT client to the running instance

Hi,
I have been struggling for long time to make appmon work for my containerized applications and so far i had no luck. In my latest attempt when i run the docker compose by providing the license , i can ps on the process and see collector ,server and agent running but i can not connect my DT client to it. My PS command returned the following :-

b7fc86a4e87a dynatrace/server:7.0 "sh -c '${DT_HOME}/p…" 10 minutes ago Up 10 minutes 0.0.0.0:2021->2021/tcp, 0.0.0.0:6699->6699/tcp, 0.0.0.0:8020-8021->8020-8021/tcp, 0.0.0.0:8023->8023/tcp, 0.0.0.0:8040-8041->8040-8041/tcp, 0.0.0.0:9911->9911/tcp dtserver
04301c8fb958 dynatrace/collector:7.0 "sh -c ${DT_HOME}/ru…" 10 minutes ago Up 10 minutes 0.0.0.0:8042-8043->8042-8043/tcp, 0.0.0.0:9998->9998/tcp dtcollector
manh@alvd-lcoaomni01:~$ docker ps|grep dynatrace
b7fc86a4e87a dynatrace/server:7.0 "sh -c '${DT_HOME}/p…" 10 minutes ago Up 10 minutes 0.0.0.0:2021->2021/tcp, 0.0.0.0:6699->6699/tcp, 0.0.0.0:8020-8021->8020-8021/tcp, 0.0.0.0:8023->8023/tcp, 0.0.0.0:8040-8041->8040-8041/tcp, 0.0.0.0:9911->9911/tcp dtserver
04301c8fb958 dynatrace/collector:7.0 "sh -c ${DT_HOME}/ru…" 10 minutes ago Up 10 minutes 0.0.0.0:8042-8043->8042-8043/tcp, 0.0.0.0:9998->9998/tcp dtcollector
4d51f1a264b3 dynatrace/agent:7.0

Also clinet keeps on throwing the error enable to connect the server on port 2021. Any idea what else i can be looking at ? Any guidance would be of great help

Dynatrace 7.1 Images

As Dynatrace AppMon 7.1 was released in April it would be nice to have a Docker image for the Dynatrace Collector (version 7.1).

Edit: Just realised this repository is for more than just the collector. It also applies to dynatrace/agent, dynatrace/server, etc.

CURL_INSECURE ignored if set in docker-compose build args

For some obscure reason, I have to set CURL_INSECURE in each Dockerfile as it is not taken into account when specified in docker-compose.yml
(tested by putting a RUN env in Dockerfile)
However, I can specify HTTP_PROXY and HTTPS_PROXY in docker-compose.yml and they're present at build time.

No Visible agent on Agent Breakdown dashboard (DT Client)

Hi All,

I am new to github and since i am familiar with DynaTrace i started exploring the option of deploying the APP Mon to monitor microservices running on my docker container.
I followed the instruction provided on readme however did not install any specific agent and installed the license via client.
Doing that i am not seeing any connected agent. I have a microservice container built on spring boot running on docker that i want to monitor. Can i please get some help with this ?

Use as non-privileged container

Hello,

Is it possible to use the dockerized Dynatrace server as a non-root user?
CaaS users cannot run privileged containers on the platform so that would mean we cannot use Dynatrace for containers at all.

When DT server is run in Openshift, it crashloops.

/opt/dynatrace/run-server-process.sh: line 2: /opt/dynatrace/dtfrontendserver: Permission denied
/opt/dynatrace/run-server-process.sh: line 3: /opt/dynatrace/dtserver: Permission denied

Cheers,

Lain92

Java agent configuration for Alpine 3.3 based OpenJDK image

Hi,

I'm trying to configure the DT agent for a Spring boot app running in a Alpine 3.3 based OpenJDK 7 image. I'm installing the required the glibc dependency in my image and mounting a volume which has the libdtagent.so. But I get the following error when running a container based of that image.

Error occurred during initialization of VM Could not find agent library /apps/Dynatrace/agent/lib64/libdtagent.so in absolute path, with error: Error relocating /apps/Dynatrace/agent/l ib64/libdtagent.so: __isnan: symbol not found

Here is how I'm installing the glibc deps.

 mkdir /tmp/apk \
    && curl -o /tmp/apk/glibc-2.21-r2.apk "https://<registry>/artifactory/apk-local/v3.2/custom/x86_64/glibc-2.21-r2.apk" \
    && curl -o /tmp/apk/glibc-bin-2.21-r2.apk "https://<registry>/artifactory/apk-local/v3.2/custom/x86_64/glibc-bin-2.21-r2.apk" \
    && apk add --no-cache libgcc \
    && apk add --allow-untrusted /tmp/apk/glibc-2.21-r2.apk \
    && apk add --allow-untrusted /tmp/apk/glibc-bin-2.21-r2.apk \
    && /usr/glibc/usr/bin/ldconfig /lib /usr/glibc/usr/lib \
    && echo 'hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4' >> /etc/nsswitch.conf \

Document resource requirements

I just ran docker compose-up on my machine, but the Docker Toolbox comes with 1 vcpu and 1024 mb ram default. This did not make Dynatrace happy.
Please advise to these recommendations in the documentation.

Alpine-Repo not reachable

The dtserver cannot be built at the moment.

...
fetch http://dl-cdn.alpinelinux.org/alpine/v3.5/main/x86_64/APKINDEX.tar.gz
ERROR: http://dl-cdn.alpinelinux.org/alpine/v3.5/main: temporary error (try again later)
WARNING: Ignoring APKINDEX.c51f8f92.tar.gz: No such file or directory
fetch http://dl-cdn.alpinelinux.org/alpine/v3.5/community/x86_64/APKINDEX.tar.gz
ERROR: http://dl-cdn.alpinelinux.org/alpine/v3.5/community: temporary error (try again later)
WARNING: Ignoring APKINDEX.d09172fd.tar.gz: No such file or directory
...
Service 'dtserver' failed to build: The command '/bin/sh -c apk update && apk add --no-cache ${DT_INSTALL_DEPS} ${DT_RUNTIME_DEPS} &&     curl ${CURL_INSECURE:+"--insecure"} -L -o /tmp/${INSTALLER_FILE_NAME} ${INSTALLER_URL} &&  java -jar /tmp/${INSTALLER_FILE_NAME} -b 64 -t ${DT_HOME} -y &&  apk del ${DT_INSTALL_DEPS} &&   rm -rf /tmp/*' returned a non-zero code: 2

Invalid or Corrupt jarfile

I am getting below message while execute 'docker-compose up'.

Error: Invalid or corrupt jarfile /tmp/dynatrace-server-7.0.0.2469-linux-x86.jar
ERROR: Service 'dtserver' failed to build: The command '/bin/sh -c apk update && apk add --no-cache ${DT_INSTALL_DEPS} ${DT_RUNTIME_DEPS} && curl --insecure -L -o /tmp/${INSTALLER_FILE_NAME} ${INSTALLER_URL} && java -jar /tmp/${INSTALLER_FILE_NAME} -b 64 -t ${DT_HOME} -y && apk del ${DT_INSTALL_DEPS} && rm -rf /tmp/*' returned a non-zero code: 1

openjdk8 is missing from Dynatrace-Agent image

I was planning to use "dynatrace/agent" image as a base image for my Java application expecting it contains a Java 8 distribution. However the "dynatrace/agent" (7.0, latest) image doesn't contain Java. Even though the Dockerfile has following

  • Line #23 defines "openjdk8-jre-base" as one of the dependencies to be deployed during image creation.
  • The Line #30 runs the "apk add" command that's supopsed to deploy it.

no "openjdk8-jre-base" is available in the image. Any attempts to execute "java" result in "java not found" error.

Older "dynatrace/agent:6.5" image has no such problem, but it's bundled with older "openjdk7".

Script templates should not use "curl --insecure" by default

This disables certificate validation, which makes the user vulnerable to MITM attacks injecting malicious code when downloading installer files.

Consider using one global configuration flag for this and have it set to a "secure" state, which the user can override at his own risk (note that risk in comments).

Also, the current certificate for files.dynatrace.com should be un-problematic and widely checkable as it's CA is available in all current JDKs, browser and OS cert stores.

Contact me if you think we can improve something on the files.dynatrace.com server / certificate side.

WebUI port not exposed?

It seems that the AppMon webUI port (9911, default) is not exposed and thus the webui is not reachable from the outside/host.
I suggest adding this additional port to the config.

Wrong file placed in public docker hub image

In the docker image called: dynatrace/agent there is a wrong file placed. Instead of the real file it has the github page saved when user BlazejT was logged in.
The file dtnginx_offsets.json.tar.gz is not a Tarball gzipped but a pure html page saved when user BlazejT was signed into Github in 2017. :-)

This file is not correct in the Docker image.
https://github.com/Dynatrace/Dynatrace-AppMon-Docker/blob/master/Dynatrace-Agent/build/bin/dtnginx_offsets.json.tar.gz

After docker image download:
$ file dtnginx_offsets.json.tar.gz
json.tar.gz: HTML document, UTF-8 Unicode text, with very long lines

Btw. The Dockerfile(s) looks ok so I guess when running docker build the file was wrong on the git folder.

License file doesn't install automatically in EAP 7

In the EAP 7 branch setting DT_SERVER_LICENSE_KEY_FILE_URL=<something> doesn't actually do anything. I had to apply the license via the thick client instead.

I don't see any references to any script actually calling https://github.com/Dynatrace/Dynatrace-Docker/blob/EAP_7.0.0.2346/Dynatrace-Server/build/scripts/pull-license-key-file.sh

I even tried running that script at boot, and it copied the license in place, but it didn't do anything.

Optional license pull script stores license under wrong name

The pull-license.sh script copies an arbitrary licnese file from an URL to the server directory, however this script doesn't work properly if the license is not called "dtlicense.key|lic"

The target file always has to be dtlicense.lic (7.0+) or dtlicense.key (<7.0).

so the script should always create these files.

Compose failure on win10

I'm trying to set this up under docker for windows on a win 10 machine and get an error:

Step 18/24 : COPY build/scripts/install-agent.sh /usr/bin
 ---> f58294c0e994
Step 19/24 : COPY build/scripts/install-node-agent.sh /usr/bin
 ---> c2919eba00f1
Step 20/24 : COPY build/scripts/install-wsagent.sh /usr/bin
 ---> 29e1230abd0b
Step 21/24 : RUN  apk update && apk add --no-cache ${DT_INSTALL_DEPS} ${DT_RUNTIME_DEPS} &&      mkdir -p ${DT_HOME} &&      /usr/bin/install-agent.sh ${AGENT_INSTALLER_URL} &&      /usr/bin/install-wsagent.sh ${WSAGENT_INSTALLER32_URL} &&
      /usr/bin/install-wsagent.sh ${WSAGENT_INSTALLER64_URL} &&      /usr/bin/install-node-agent.sh ${NODE_AGENT_INSTALLER_URL} &&       apk del ${DT_INSTALL_DEPS}
 ---> Running in 1f3892f7c310
fetch http://dl-cdn.alpinelinux.org/alpine/v3.5/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.5/community/x86_64/APKINDEX.tar.gz
v3.5.2-345-g2a95067e41 [http://dl-cdn.alpinelinux.org/alpine/v3.5/main]
v3.5.2-337-g4634d1b283 [http://dl-cdn.alpinelinux.org/alpine/v3.5/community]
OK: 7963 distinct packages available
fetch http://dl-cdn.alpinelinux.org/alpine/v3.5/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.5/community/x86_64/APKINDEX.tar.gz
(1/31) Installing ncurses-terminfo-base (6.0_p20171125-r0)
(2/31) Installing ncurses-terminfo (6.0_p20171125-r0)
...
(31/31) Installing openjdk8-jre-base (8.171.11-r0)
Executing busybox-1.25.1-r2.trigger
Executing ca-certificates-20161130-r1.trigger
Executing java-common-0.1-r0.trigger
OK: 81 MiB in 42 packages
/bin/sh: /usr/bin/install-agent.sh: not found
ERROR: Service 'dtagent' failed to build: The command '/bin/sh -c apk update && apk add --no-cache ${DT_INSTALL_DEPS} ${DT_RUNTIME_DEPS} &&      mkdir -p ${DT_HOME} &&      /usr/bin/install-agent.sh ${AGENT_INSTALLER_URL} &&      /usr/bin/install-wsagent.sh ${WSAGENT_INSTALLER32_URL} &&      /usr/bin/install-wsagent.sh ${WSAGENT_INSTALLER64_URL} &&      /usr/bin/install-node-agent.sh ${NODE_AGENT_INSTALLER_URL} &&       apk del ${DT_INSTALL_DEPS}' returned a non-zero code: 127

Given the script it reports as not found has been copied earlier, I'm assuming something later is removing this, but am struggling to find what.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.