dd-trace-java icon indicating copy to clipboard operation
dd-trace-java copied to clipboard

Adding datadog agent causes "java not found" error and fails to start

Open bruno-chavez opened this issue 1 year ago • 2 comments

Hi, Im trying to instrument a Spring Boot application deployed on AWS ECS Fargate with the agent. Running the container with ENTRYPOINT ["java", "-jar", "app.jar"] works, but the moment I try to add the agent, it fails to start with the following error: /bin/sh: 1: [java,: not found. Completely stuck at what could be causing the issue.

  • Agent version: latest
  • Spring Boot version: 3.1.2
  • JDK version: Eclipse Temurin 17
  • Dockerfile:
FROM eclipse-temurin:17-jdk-jammy as builder

COPY build.gradle settings.gradle gradlew ./
COPY gradle/ gradle/
RUN chmod +x ./gradlew

COPY . .

RUN ./gradlew assemble


FROM eclipse-temurin:17-jdk-jammy

WORKDIR /app

EXPOSE 3000

# DataDog agent setup
RUN apt-get update
RUN apt-get install wget -y
RUN wget -O dd-java-agent.jar 'https://dtdg.co/latest-java-tracer'

COPY --from=builder /app/build/libs/app.jar /app/app.jar

ENTRYPOINT ["java", "-javaagent:dd-java-agent.jar" "-jar", "app.jar"]
  • Task Definition (edited non-relevant sections): A very similar configuration for the datadog-agent and log-forwarder containers works for our Node applications, not sure if Java needs additional configuration.
{
  "family": "app",
  "memory": "2048",
  "cpu": "1024",
  "taskRoleArn": "arn:aws:iam::000000000000:role/ecs-service-app",
  "executionRoleArn": "arn:aws:iam::000000000000:role/ecs-task-execution",
  "networkMode": "awsvpc",
  "containerDefinitions": [
    {
      "name": "app",
      "image": "000000000000.dkr.ecr.us-east-1.amazonaws.com/app",
      "essential": true,
      "portMappings": [
        {
          "containerPort": "3000",
          "protocol": "tcp"
        }
      ],
      "logConfiguration": {
        "logDriver": "awsfirelens",
        "options": {
          "Name": "datadog",
          "dd_service": "app-api",
          "dd_source": "ecs-task",
          "TLS": "on",
          "provider": "ecs"
        },
        "secretOptions": [
          {
            "name": "apikey",
            "valueFrom": "arn:aws:ssm:us-east-1:000000000000:parameter/DD_API_KEY"
          }
        ]
      },
      "environment": [
        {
          "name": "DD_ENV",
          "value": "development"
        },
        {
          "name": "DD_APM_ENABLED",
          "value": "true"
        },
        {
          "name": "DD_SERVICE",
          "value": "app-api"
        },
        {
          "name": "SERVER_PORT",
          "value": "3000"
        },
        {
          "name": "LOG_LEVEL",
          "value": "ERROR"
        }
      ]
    },
    {
      "name": "datadog-agent",
      "image": "public.ecr.aws/datadog/agent:latest",
      "essential": true,
      "environment": [
        {
          "name": "ECS_FARGATE",
          "value": "true"
        }
      ],
      "secrets": [
        {
          "name": "DD_API_KEY",
          "valueFrom": "arn:aws:ssm:us-east-1:000000000000:parameter/shared/DD_API_KEY"
        }
      ]
    },
    {
      "name": "log-forwarder",
      "image": "amazon/aws-for-fluent-bit:stable",
      "essential": true,
      "firelensConfiguration": {
        "type": "fluentbit",
        "options": {
          "enable-ecs-log-metadata": "true"
        }
      }
    }
  ]
}

bruno-chavez avatar Feb 28 '24 21:02 bruno-chavez

Hi @bruno-chavez - you're missing a comma between the -javaagent option and the -jar option

i.e. it should be:

ENTRYPOINT ["java", "-javaagent:dd-java-agent.jar", "-jar", "app.jar"]

and not

ENTRYPOINT ["java", "-javaagent:dd-java-agent.jar" "-jar", "app.jar"]

mcculls avatar Feb 28 '24 21:02 mcculls

Oh man,so embarrassing, haha. Yea that was definitely it! Thanks for that, all containers are running now.

Unfortunately I´m not seeing the app getting registered in DataDog, also the API Key associated shows "No recent usage". Not sure if something is missing

bruno-chavez avatar Feb 28 '24 22:02 bruno-chavez

Nothing to report here, just some errors on the app side

bruno-chavez avatar Mar 21 '24 21:03 bruno-chavez