• /
  • EnglishEspañolFrançais日本語한국어Português
  • Inicia sesiónComenzar ahora

Te ofrecemos esta traducción automática para facilitar la lectura.

En caso de que haya discrepancias entre la versión en inglés y la versión traducida, se entiende que prevalece la versión en inglés. Visita esta página para obtener más información.

Crea una propuesta

Agregue extensiones Java a la función de Kubernetes APM auto-attach

Al usar Kubernetes APM auto-attach, es posible que desee agregar plug-ins Java para mejorar las capacidades de monitoreo de bibliotecas o marcos específicos que no estén cubiertos por la instrumentación del agente Java predeterminada.

Esta guía le muestra cómo crear una imagen Docker personalizada con extensiones Java e integrarla con la función de Kubernetes APM auto-attach.

Antes de que empieces

Antes de agregar extensiones de Java, cerciorar de tener lo siguiente:

  • Kubernetes APM auto-attach instalado y configurado
  • Docker instalado para crear imágenes personalizadas
  • Acceso a un registro de contenedores (Docker Hub, ECR, GCR, etc.)
  • Licencia para enviar imágenes al registro
  • Conocimiento de qué plug-ins de Java necesitas

Descripción general

El proceso consta de tres pasos principales:

  1. Crea una imagen Docker personalizada basada en newrelic/newrelic-java-init:latest con las extensiones que desees.
  2. Crea y sube la imagen a tu registro de contenedores.
  3. Actualiza tu instrumentación de Kubernetes para usar la nueva imagen.

Crea una imagen Docker personalizada con extensiones.

Crea un Dockerfile

Crea un nuevo Dockerfile que extienda la imagen de inicialización Java original de New Relic y agregue las extensiones deseadas. Aquí tenéis un ejemplo empleando la extensión de corrutinas de Kotlin:

# Start from the original New Relic Java init image
FROM newrelic/newrelic-java-init:latest
# Create the extensions directory in the root
RUN mkdir -p /extensions
# Example: Add Kotlin coroutines instrumentation
# Download the latest version and extract to extensions directory
RUN VERSION=$(wget -q -O - https://api.github.com/repos/newrelic/newrelic-java-kotlin-coroutines/releases/latest | \
awk '/tag_name/{gsub(/,|"/,"",$2);print$2}') && \
wget -qO /tmp/kotlin-coroutines-instrumentation.zip \
"https://github.com/newrelic/newrelic-java-kotlin-coroutines/releases/download/$VERSION/kotlin-coroutines-instrumentation-$VERSION.zip" && \
unzip -j /tmp/kotlin-coroutines-instrumentation.zip "*.jar" -d /extensions && \
rm /tmp/kotlin-coroutines-instrumentation.zip

Sugerencia

Reemplace el ejemplo de corrutinas de Kotlin con las extensiones específicas que necesite. Puedes encontrar las extensiones disponibles en la documentación de los plug-ins de Java.

Crea la imagen de Docker

Crea tu imagen personalizada localmente:

bash
$
docker build -t your-registry/{Your-Image-Name}

Reemplace your-registry/{Your-Image-Name} con la ruta de registro y el nombre de imagen reales de su contenedor, por ejemplo, mycompany/newrelic-java-init-custom.

Enviar al registro de contenedores

Sube la imagen al registro de tu contenedor:

bash
$
docker push your-registry/{Your-Image-Name}

Actualizar la instrumentación de Kubernetes

Modificar el recurso de instrumentación

Actualice su recurso personalizado (CR) de instrumentación existente para usar la nueva imagen. Aquí tienes un ejemplo instrumentation-java.yaml:

apiVersion: newrelic.com/v1beta2
kind: Instrumentation
metadata:
name: newrelic-instrumentation-java
namespace: newrelic
spec:
agent:
language: java
image: your-registry/{Your-Image-Name}

Aplique la instrumentación actualizada.

Aplique la instrumentación actualizada a su clúster:

bash
$
kubectl apply -f instrumentation-java.yaml

Resetear carga de trabajo afectada

Resetear tu aplicación Java para que emplee el nuevo contenedor de inicialización con extensiones:

  • Para resetear un despliegue específico:

    bash
    $
    # Restart a specific deployment
    $
    kubectl rollout restart deployment/my-java-deployment
  • Para resetear todo el despliegue en un namespace:

    bash
    $
    # Or restart all deployments in a namespace
    $
    kubectl rollout restart deployments -n my-namespace

Resolución de problemas

Las extensiones no se cargan

Si las extensiones no se cargan:

  1. Verifique que el directorio de extensiones exista en su imagen personalizada:

    bash
    $
    docker run --rm your-registry/{Your-Image-Name} ls -la /extensions
  2. Compruebe las licencias de los archivos para cerciorar de que los archivos con extensión JAR sean legibles.

  3. Revise los logs del contenedor de inicialización para detectar cualquier mensaje de error durante la inicialización del agente.

Recursos adicionales

Copyright © 2025 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.