• /
  • EnglishEspañolFrançais日本語한국어Português
  • Se connecterDémarrer

Cette traduction automatique est fournie pour votre commodité.

En cas d'incohérence entre la version anglaise et la version traduite, la version anglaise prévaudra. Veuillez visiter cette page pour plus d'informations.

Créer un problème

Ajouter des extensions Java à Kubernetes APM auto-attach

Lors de l'utilisation de Kubernetes APM auto-attach, vous pouvez ajouter des modules d'extension Java pour améliorer les capacités monitoring d'une bibliothèque ou d'un framework spécifique non couvert par l'agent d'instrumentation Java par défaut.

Ce guide vous montre comment créer une image Docker personnalisée avec des extensions Java et l'intégrer à la fonction de Kubernetes APM auto-attach.

Avant de commencer

Avant d'ajouter des extensions Java, assurez-vous d'avoir :

  • Kubernetes APM auto-attach installé et configuré
  • Docker installé pour la création d'images personnalisées
  • Accès à un registre de conteneurs (Docker Hub, ECR, GCR, etc.)
  • Autorisation d'envoyer des images au registre
  • Connaissance des modules d'extension Java dont vous avez besoin

Présentation

Le processus comporte trois étapes principales :

  1. Créez une image Docker personnalisée basée sur newrelic/newrelic-java-init:latest avec les extensions souhaitées.
  2. Créez et envoyez l'image vers votre registre de conteneurs.
  3. Mettez à jour votre instrumentation Kubernetes pour utiliser la nouvelle image.

Créer une image Docker personnalisée avec des extensions

Créer un Dockerfile

Créez un nouveau Dockerfile qui étend l'image d'initialisation Java New Relic d'origine et ajoute les extensions souhaitées. Voici un exemple utilisant l'extension Kotlin coroutines :

# 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

Conseil

Remplacez l'exemple de coroutines Kotlin par les extensions spécifiques dont vous avez besoin. Vous trouverez les extensions disponibles dans la documentation des modules d'extension Java.

Construire l'image Docker

Créez votre image personnalisée localement :

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

Remplacez your-registry/{Your-Image-Name} par le chemin d'accès réel de votre registre de conteneurs et le nom de votre image, par exemple, mycompany/newrelic-java-init-custom.

Envoyer au registre de conteneurs

Envoyez l'image vers votre registre de conteneurs :

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

Mise à jour de l'instrumentation Kubernetes

Modifier la ressource d'instrumentation

Mettez à jour votre ressource personnalisée (CR) d'instrumentation existante pour utiliser la nouvelle image. Voici un exemple 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}

Appliquer l'instrumentation mise à jour

Appliquez l'instrumentation mise à jour à votre cluster :

bash
$
kubectl apply -f instrumentation-java.yaml

Redémarrage de la charge de travail affectée

Redémarrez vos applications Java pour qu'elles prennent en compte le nouveau conteneur d'initialisation avec les extensions :

  • Pour redémarrer un déploiement spécifique :

    bash
    $
    # Restart a specific deployment
    $
    kubectl rollout restart deployment/my-java-deployment
  • Pour redémarrer tout déploiement dans un espace de nommage :

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

Dépannage

Extensions non chargées

Si les extensions ne se chargent pas :

  1. Vérifiez que le répertoire des extensions existe dans votre image personnalisée :

    bash
    $
    docker run --rm your-registry/{Your-Image-Name} ls -la /extensions
  2. Vérifiez les permissions des fichiers et assurez-vous que les fichiers JAR avec l'extension appropriée sont lisibles.

  3. Consultez les logs du conteneur d'initialisation pour tout message d'erreur survenu lors de l'initialisation de l'agent.

Ressources supplémentaires

Droits d'auteur © 2025 New Relic Inc.

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