Tous les produits
Search
Centre de documentation

Function Compute:Journaux des métriques au niveau des requêtes

Dernière mise à jour :Aug 12, 2026

Les métriques au niveau des requêtes offrent une visibilité approfondie sur chaque invocation de fonction et vous aident à comprendre les performances de vos fonctions. Exploitez ces métriques pour détecter et localiser rapidement les problèmes, ainsi que pour analyser les goulots d'étranglement de vos applications. Activez les métriques au niveau des requêtes afin de mieux gérer et optimiser vos applications de fonctions.

Présentation des métriques au niveau des requêtes

Les métriques au niveau des requêtes résument l'état d'exécution de chaque requête de fonction. Une fois activées, le système collecte des métriques pour chaque exécution de fonction (performances, exceptions et traçage) et les transmet au Logstore sélectionné lors de la configuration des journaux.

  • Métriques de performance : utilisation de la mémoire, durée d'exécution de la fonction, temps d'initialisation, informations sur le démarrage à froid, etc.

  • Métriques d'exception : échec ou non de l'exécution et détails de l'erreur.

  • Métriques de traçage : durée d'exécution du chemin critique, activation ou non de l'échantillonnage du traçage distribué, et pour les fonctions HTTP, le chemin, le code de statut et l'adresse IP du client.

Après l'activation des métriques au niveau des requêtes, Function Compute transmet les métriques d'exécution de chaque requête à votre Logstore selon le format suivant.

activeInstances: 0
activeInstancesPerFunction: 0
durationMs: 1.56
functionName: sync-clone
hasFunctionError: false
hostname: sr-65a76c74-1224f354965f43a...
instanceID: c-65a77eb0-15416274-ff5addb...
invocationStartTimestamp: 1705476027407
invocationType: Sync
invokeFunctionLatencyMs: 2.92
invokeFunctionStartTimestamp: 1705476027406
ipAddress: 21.0
isColdStart: false
memoryMB: 512
memoryUsageMB: 8.99
operation: InvokeFunction
qualifier: LATEST
requestId: 1-65a77fbb-157f3f32-e1ee24b17e49
resourceMode: OnDemand

Cas d'usage

  • Consultez les détails d'exécution des fonctions, les métriques de performance et les informations d'erreur grâce aux métriques de requête.

    La console fournit une liste de requêtes basée sur les métriques au niveau des requêtes. Cette interface permet de consulter les informations détaillées de chaque requête, notamment l'état d'exécution, l'ID d'instance, la durée d'exécution, l'utilisation de la mémoire et les journaux de requête.

    Dans l'onglet Logs de la page de détails de la fonction, sélectionnez le sous-onglet Invocation Requests pour afficher la liste des requêtes. Les filtres situés au-dessus de la liste incluent Show logs only for the current version or alias, Show only function errors, Show only client errors et Show only cold start requests.

    Remarque

    Vous pouvez consulter la liste des requêtes sans activer les métriques au niveau des requêtes, mais elle peut s'avérer inexacte dans les scénarios suivants.

    • Lorsque plusieurs RequestIds identiques apparaissent de manière répétée (cas fréquent lors des tentatives de nouvelle invocation asynchrone), il est impossible de localiser les journaux d'une requête spécifique.

    • Dans les environnements d'exécution personnalisés ou d'image personnalisée, si votre code imprime à la fois FC Invoke Start RequestId: xxx et FC Invoke End RequestId: xxx, une seule invocation apparaît deux fois dans la liste des requêtes.

  • Exploitez les métriques de requête pour effectuer des recherches personnalisées et créer des tableaux de bord sur mesure.

    Les métriques de requête sont transmises à votre Logstore au format key:val. Créez des tableaux de bord personnalisés en fonction de vos besoins métier. Pour plus d'instructions, consultez Créer un tableau de bord.

Remarques

  • Périmètre

    Les journaux des métriques au niveau des requêtes constituent une configuration au niveau de la fonction. Une fois activés, ils s'appliquent à la fonction actuelle et chaque exécution génère une entrée de journal.

  • Coût

    La transmission des journaux vers Simple Log Service entraîne des frais de stockage. Pour plus de détails sur les tarifs, consultez Tarification.

Activer les métriques au niveau des requêtes

Activer les métriques au niveau des requêtes dans la console

Prérequis

Procédure

  1. Connectez-vous à la console Function Compute. Dans le volet de navigation de gauche, sélectionnez Function Management > Functions.

  2. Dans la barre de menu supérieure, sélectionnez une région. Sur la page Functions, cliquez sur la fonction cible.

  3. Sur la page de configuration de la fonction, sélectionnez l'onglet Configuration.

  4. Localisez Advanced Settings et cliquez sur Modify à droite. Dans le panneau Advanced Configuration, accédez à la section Logging, activez Instance-level Metrics, puis cliquez sur Deploy.

    Le tableau suivant décrit les éléments de configuration clés. Conservez les valeurs par défaut pour tous les autres paramètres.

    Élément de configuration

    Description

    Exemple de valeur

    Logging

    Indique si les journaux d'invocation de fonction doivent être stockés dans Simple Log ServiceSLS. Pour plus d'informations, consultez Configurer la journalisation.

    Enabled

    Log project

    Sélectionnez un projet de journal existant.

    aliyun-fc-hangzhou-2238f0df-a742-524f-9f90-976ba*******

    Logstore

    Sélectionnez un Logstore existant.

    function-log

    Log segmentation rule

    Indique si la segmentation des journaux doit être activée. Si cette option est activée, Function Compute divise les journaux en plusieurs segments selon la règle définie et écrit chaque segment dans SLS.

    Enabled

    Request-level metrics

    Indique si les métriques au niveau des requêtes doivent être collectées. Si cette option est activée, les métriques de chaque invocation de fonction sont collectées et transmises au Logstore spécifié dans la configuration des journaux.

    Enabled

    Instance-level metrics

    Indique si les métriques au niveau des instances doivent être activées. Si cette option est activée, les métriques d'instance sont transmises au Logstore spécifié dans la configuration des journaux.

    Enabled

Activer les métriques au niveau des requêtes avec Serverless Devs

Prérequis

Installer et configurer Serverless Devs

Procédure

  1. Créez un répertoire de code avec la structure suivante.

    .
    ├── code
    │   └── index.js
    └── s.yaml

    Dans cet exemple, le champ enableRequestMetrics configure les métriques au niveau des requêtes. Avant de l'activer, assurez-vous d'abord d'activer la journalisation et de définir logstore et project sur un Logstore et un projet de journal existants dans votre compte.

    edition: 3.0.0
    name: hello-world-app
    access: "default"
    vars: # Global variables
      region: "cn-hangzhou"
    resources:
      hello_world:
        component: fc3 # Component name
        props:
          region: ${vars.region}             
          functionName: "start-nodejs-****"
          description: 'hello world by serverless devs'
          runtime: "nodejs16"
          code: ./code
          handler: index.handler
          memorySize: 128
          timeout: 30
          logConfig: # Update logstore and project to match your setup. Alternatively, use logConfig:auto to auto-create them.
            enableInstanceMetrics: true 
            enableRequestMetrics:  true  # Enable request-level metrics to collect execution metrics for every invocation
            logBeginRule: DefaultRegex
            logstore: 'your-logstore'
            project: 'your-project'
  2. Exécutez la commande suivante pour déployer l'application.

    sudo s deploy -y

    Une fois le déploiement réussi, connectez-vous à la console Function Compute pour confirmer que les métriques au niveau des requêtes sont bien activées pour votre fonction déployée.

Interrogation des journaux

Format des journaux

Les journaux des métriques au niveau des requêtes utilisent le format de sujet : FCRequestMetrics:/functionName. Dans Simple Log Service, utilisez la condition de requête __topic__: "FCRequestMetrics:/functionName" pour filtrer tous les journaux des métriques au niveau des requêtes. Pour plus d'informations, consultez Guide rapide d'interrogation et d'analyse.

Champs de métriques

Les métriques au niveau des requêtes enregistrent les informations suivantes.

Nom de la métrique

Description

Exemple de valeur

Enregistré pour chaque invocation ?

functionName

Nom de la fonction.

my-function

Oui

versionId

Nom de la version.

12

Oui

qualifier

Alias du service. La valeur par défaut est LATEST.

prod

Oui

requestId

ID de la requête.

db72ce53-ccbe-4216-af55-642622e01494

Oui

operation

Nom de l'action.

InvokeFunction

Oui

invocationType

Deux types d'appels existent.

Sync : appel synchrone

Async : invocation asynchrone

Sync

Oui

memoryMB

Limite de mémoire de la fonction.

512

Oui

memoryUsageMB

Mémoire consommée lors de l'exécution de la fonction.

410

Oui

durationMs

Temps d'exécution de la requête.

20.20

Oui

isColdStart

Indique s'il s'agit d'un démarrage à froid.

Remarque

Un démarrage à froid se produit lorsque Function Compute reçoit une requête mais ne dispose d'aucune instance de fonction prête à la traiter. Le système doit alors créer une nouvelle instance, télécharger le code et initialiser l'environnement d'exécution.

Une requête de démarrage à froid est définie comme une requête qui suit l'intégralité du processus de création d'instance, de téléchargement du code et d'initialisation de l'environnement d'exécution.

Function Compute optimise les démarrages à froid en préchauffant les instances. Si une requête arrive pendant la création d'une instance et trouve une instance préchauffée disponible, elle n'est pas considérée comme un démarrage à froid.

false

Oui

instanceEvent

Événement d'instance. Actuellement limité à ColdStart, enregistré uniquement pour les requêtes de démarrage à froid.

ColdStart

Non

hasFunctionError

Indique si l'exécution de la fonction a rencontré une erreur.

false

Oui

errorType

Les erreurs de fonction se classent en trois types :

  • FunctionOOMError : mémoire insuffisante

  • FunctionTimeoutError : délai d'exécution dépassé

  • FunctionUnhandledError : exception non gérée

FunctionUnhandledError

Non. Enregistré uniquement lorsque hasFunctionError:true.

invokeFunctionLatencyMs

Temps d'exécution de la fonction.

99.00

Oui. Enregistré pour chaque invocation.

traceContext

Contexte de traçage distribué.

371d3ff242fcee9:371d3ff242fcee9:0:1

Non. Enregistré uniquement lorsque le traçage distribué est configuré.

isSampled

Indique si la requête a été échantillonnée pour le traçage distribué.

true

Non. Enregistré uniquement lorsque le traçage distribué est configuré.

resourceMode

Type d'instance utilisé pour la requête :

  • OnDemand : instance à la demande

  • Provision : instance provisionnée

OnDemand

Oui

instanceID

ID de l'instance.

c-65603d8c-37e1bf7123054a77****

Oui

hostname

Nom d'hôte de l'instance.

c-65603d8c-37e1bf7123054a77****

Oui

ipAddress

Adresse IP de l'instance.

Remarque : Il s'agit de l'adresse IP interne utilisée pour distinguer les instances, et non de l'adresse IP publique.

21.0.XX.XX

Oui

activeInstances

Nombre d'instances actives.

1

Oui

activeInstancesPerFunction

Nombre d'instances actives pour cette fonction.

1

Oui

scheduleLatencyMs

Latence de planification. Plus élevée lors des démarrages à froid.

10.07

Oui

coldStartStartTimestamp

Horodatage de début du démarrage à froid.

1700806029167

Non. Enregistré uniquement lors des démarrages à froid.

coldStartLatencyMs

Durée du démarrage à froid.

487.65

Non. Enregistré uniquement lors des démarrages à froid.

prepareCodeStartTimestamp

Horodatage de début du téléchargement du code. Horodatage UNIX à 13 chiffres, précision en millisecondes.

1700806029167

Non. Enregistré uniquement lors des démarrages à froid.

prepareCodeLatencyMs

Durée du téléchargement du code.

0.18

Non. Enregistré uniquement lors des démarrages à froid.

runtimeInitializationStartTimestamp

Horodatage de début de l'initialisation de l'environnement d'exécution.

1700806029168

Non. Enregistré uniquement lors des démarrages à froid.

runtimeInitializationMs

Durée de l'initialisation de l'environnement d'exécution.

487.37

Non. Enregistré uniquement lors des démarrages à froid.

asyncAttemptStartTimestamp

Pour les invocations asynchrones, les exécutions ayant échoué font l'objet de 3 tentatives par défaut.

Ce paramètre correspond à l'horodatage de début de la ${retryCount}-ième tentative.

1700806028084

Non. Enregistré uniquement pour les invocations asynchrones.

asyncAttemptLatencyMs

Pour les invocations asynchrones, les exécutions ayant échoué font l'objet de 3 tentatives par défaut.

Ce paramètre correspond à la durée de la ${retryCount}-ième tentative.

1688.74

Non. Enregistré uniquement pour les invocations asynchrones.

asyncMode

Mode d'invocation asynchrone :

  • Stateless : invocation asynchrone sans état

  • Stateful : invocation asynchrone avec état

Stateful

Non. Enregistré uniquement pour les invocations asynchrones.

retryCount

Nombre de tentatives.

0

Non. Enregistré uniquement pour les invocations asynchrones.

Récupérer les journaux

La récupération des journaux nécessite des index. La console Function Compute configure automatiquement ces index pour vous. Une fois l'indexation terminée, utilisez des instructions SQL dans la console Simple Log Service pour rechercher et filtrer les requêtes dans votre Logstore. Spécifiez le sujet pour limiter les résultats aux journaux des métriques au niveau des requêtes.

Par exemple, pour trouver les requêtes dont le temps d'exécution dépasse 1 seconde, utilisez cette instruction SQL.

__topic__: "FCRequestMetrics:/f1" AND qualifier: q1 and operation: InvokeFunction and durationMs>1000

Pour plus d'informations sur la syntaxe de requête avancée, consultez Guide rapide d'interrogation et d'analyse.

Créer un tableau de bord personnalisé

Pour créer un graphique avec le temps (t) sur l'axe des abscisses et les valeurs de métriques sur l'axe des ordonnées, utilisez une instruction SQL similaire à celle-ci.

__topic__: "FCRequestMetrics:/f1" AND qualifier: q1 and operation: InvokeFunction | select __time__ - __time__ % 60 as t, count(*) as invocations, avg(durationMs) as avgDurationMs group by t order by t 

Pour plus d'informations sur la création de tableaux de bord personnalisés, consultez Créer un tableau de bord.