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

Monitoring des performances AWS Lambda sans serveur Java

Vous pouvez obtenir une visibilité sur vos fonctions Lambda Java pour comprendre ce qui se passe dans vos applications serverless.

Vous pouvez utiliser la variante de l'agent Java en couche allégée pour obtenir une visibilité sur vos fonctions Lambda Java.

Agent Java de New Relic

L'agent Java de New Relic prend en charge la fonction instrumentée AWS Lambda via un mode serverless dédié. Lors de l’exécution dans une fonction Lambda, l’agent détecte automatiquement l’environnement et passe dans ce mode, qui est optimisé pour la nature éphémère et pilotée par les événements des invocations Lambda.

Important

Le mode Serverless de l'agent Java nécessite Java 17 ou supérieur. Les runtimes Java 11 et antérieurs ne sont pas pris en charge en raison de temps de démarrage initiaux plus longs.

Comment ça marche

En mode serverless, l'agent remplace sa collecte périodique standard et son transport HTTP par un modèle par invocation :

  1. Lorsqu'une fonction Lambda est invoquée, l'agent intercepte le gestionnaire avant que votre code ne s'exécute.
  2. Une transaction est créée automatiquement pour l'invocation, capturant le contexte tel que l'ARN Lambda, l'ID de requête et s'il s'agit d'un démarrage à froid.
  3. Si la charge de l'événement est reconnue (par exemple, un événement API Gateway ou SQS), l'agent extrait les métadonnées de la source de l'événement, classe la transaction comme transaction web ou transaction non web, et ajoute les attributs pertinents.
  4. Lorsque la transaction se termine, l'agent collecte toute la télémétrie mise en mémoire tampon et l'écrit sous forme de charge compressée et encodée en base64 dans /tmp/newrelic-telemetry et sous forme de JSON brut sur stdout.
  5. L'extension New Relic Lambda (incluse dans la couche) lit le fichier de télémétrie et transfère les données vers New Relic après chaque invocation.

Couches Lambda

Deux variantes de couche Lambda sont publiées pour l'agent Java :

  • Couche complète de l'agent: tous les modules d'instrumentation sont activés. Fournit une visibilité maximale prête à l’emploi, mais entraîne une surcharge de démarrage à froid plus élevée en raison de l’ensemble complet d’auto-instrumentation.
  • Couche Slim (recommandée): désactive toute l'auto-instrumentation sauf les modules aws-lambda-java-core. Cela signifie que les gestionnaires Java Lambda qui implémentent RequestHandler ou RequestStreamHandler sont automatiquement instrumentés et commencent à émettre de la télémétrie immédiatement, tandis que toute autre instrumentation (appels au SDK AWS, clients HTTP, etc.) est désactivée sauf si vous l'activez explicitement. C'est le point de départ recommandé pour la plupart des clients.

ARN de couche

Les ARN suivants sont pour la région us-east-1. Remplacez us-east-1 par votre région AWS. La version de la couche commence à 1 et s'incrémente à chaque nouvelle sortie. Pour les dernières versions disponibles, consultez la liste des couches de New Relic.

Variante de couche

Architecture

ARN

Slim (recommandé)

x86_64

arn:aws:lambda:us-east-1:451483290750:layer:NewRelicAgentJava-slim:1

Slim (recommandé)

ARM64

arn:aws:lambda:us-east-1:451483290750:layer:NewRelicAgentJavaARM64-slim:1

Complet

x86_64

arn:aws:lambda:us-east-1:451483290750:layer:NewRelicAgentJava:1

Complet

ARM64

arn:aws:lambda:us-east-1:451483290750:layer:NewRelicAgentJavaARM64:1

Pour obtenir des instructions d’installation, consultez Instrumentation en couches.

Lorsque vous utilisez l'une ou l'autre couche, définissez le gestionnaire de votre fonction Lambda sur l'une des valeurs de wrapper suivantes afin que l'agent puisse intercepter l'invocation :

  • RequestHandler implémentation : com.newrelic.java.HandlerWrapper::handleRequest
  • RequestStreamHandler implémentation : com.newrelic.java.HandlerWrapper::handleStreamsRequest

Détection automatique

L'agent active automatiquement le mode serverless lorsque la variable d'environnement AWS_LAMBDA_FUNCTION_NAME est présente. Aucune configuration explicite n'est requise lors de l'utilisation de la couche Lambda. Le mode Serverless est toujours activé et ne peut pas être écrasé.

Configuration

Les variables d'environnement suivantes sont préconfigurées dans la couche Lambda :

Variable d'environnement

Couche par défaut

Description

NEW_RELIC_SERVERLESS_MODE_ENABLED

true

Active le mode serverless. Défini sur

true

par la couche s'il n'est pas déjà défini.

NEW_RELIC_LOG_FILE_PATH

/tmp/logs

Par défaut, cela définit le chemin du fichier de log de l'agent Java sur

/tmp/logs/newrelic_agent.log

NEW_RELIC_APP_NAME

lambda-function

Nom d'application par défaut utilisé par l'agent. Défini par la couche s'il n'est pas déjà défini. Cette valeur n'est pas utilisée dans l'UI de New Relic pour les fonctions Lambda.

NEW_RELIC_APPLICATION_LOGGING_FORWARDING_ENABLED

false

Désactive le transfert de logs dans l'agent. Défini par la couche s'il n'est pas déjà défini. Les logs sont capturés via CloudWatch ou l'extension Lambda à la place.

NEW_RELIC_ENABLE_AUTO_APP_NAMING

false

Toujours défini sur

false

par la couche. Empêche l'agent de remplacer le nom de l'application en fonction des données de transaction.

Les variables d'environnement suivantes sont requises et doivent être définies par vous :

Variable d'environnement

Valeur requise

Description

AWS_LAMBDA_EXEC_WRAPPER

/opt/newrelic-java-handler

Pointe AWS Lambda vers le wrapper de l'agent Java de New Relic. Ceci doit toujours être défini sur

/opt/newrelic-java-handler

lors de l'utilisation de la couche de l'agent Java.

NEW_RELIC_LICENSE_KEY

Votre clé de licence New Relic

Votre clé de licence d'ingestion New Relic, utilisée pour authentifier la télémétrie envoyée à New Relic.

NEW_RELIC_TRUSTED_ACCOUNT_KEY

Votre ID de compte New Relic

Requis par l'extension New Relic Lambda pour le tracing distribué. Définissez ceci sur votre ID de compte parent New Relic ou sur votre ID de compte s'il n'y a pas de compte parent.

Important

Par défaut, l'extension Lambda ou CloudWatch capture votre log. L'agent ne transmet pas les logs directement.

Cold starts

L'agent suit cold starts à l'aide d'un indicateur statique qui est défini lors de la première invocation. Lors des invocations cold start, l'attribut aws.lambda.coldStart=true est ajouté à la transaction. Cet attribut est omis lors des invocations à chaud. Il n'est pas défini sur false.

Important

Temps Cold start : l'ajout de l'agent Java augmente le temps cold start d'environ 4 000 à 6 200 ms par rapport à une fonction sans l'agent. Cela n'affecte que la première invocation. Les invocations à chaud ne sont pas affectées. La couche allégée réduit cela en chargeant moins de modules de monitoring au démarrage.

Pour améliorer les performances de cold start, augmentez le seuil de délai d'attente et l'allocation de mémoire, et utilisez la simultanéité provisionnée.

Télémétrie collectée

En mode serverless, l'agent Java collecte et met en mémoire tampon les types de télémétrie suivants lors de l'invocation :

  • Trace de transaction
  • Événements d'erreur et erreurs tracées (avec traces d’appels)
  • Span événement (pour le tracing distribué)
  • Événements de transaction (d'analyse)
  • Événements personnalisés
  • Événements de log (via CloudWatch par défaut)
  • Métriques de performance

Toutes les données collectées sont écrites sous la forme d'une seule charge NR_LAMBDA_MONITORING et transmises à New Relic une fois l'invocation terminée.

Limites

  • Java 17+ uniquement. Java 11 et les versions antérieures ne sont pas pris en charge.
  • Le profilage de threads n'est pas disponible en mode serverless.
  • Le monitoring JFR (Java Flight Recorder) est désactivé en mode serverless.
  • Le collecteur JAR (analyse des modules) est désactivé en mode serverless.
Droits d'auteur © 2026 New Relic Inc.

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