Cette page : Foire aux questions sur le coût de la facturation du plan de consommation contient quelques détails sur les métriques concernées mais ne divulgue pas le calcul réel.
Une fois que vous prenez en compte que l'utilisation de la mémoire peut changer avec le temps, le calcul est mieux décrit comme l'intégrale de l'utilisation de la mémoire dans le temps. Le système effectue ce calcul en échantillonnant l'utilisation de la mémoire du processus (et des processus enfants) à intervalles réguliers. Comme mentionné sur la page de tarification, l'utilisation de la mémoire est arrondie à la plus proche tranche de 128 Mo (donc si votre processus utilise 160 Mo, vous êtes facturé pour 256 Mo). Ce processus de calcul de l'utilisation de la mémoire et d'arrondi prend en compte la concurrence (plusieurs exécutions de fonctions simultanées dans le même processus).
Ils recommandent d'utiliser des compteurs de performance sur le service d'application pour vos propres métriques, donc peut-être que cela est également utilisé pour la facturation ? Peut-être que Paul Batum peut partager quelques informations ?
Parce que les unités d'exécution de fonction sont une combinaison du temps d'exécution et de l'utilisation de la mémoire, elles ne sont pas une excellente métrique à utiliser lorsque vous essayez seulement de comprendre votre utilisation de la mémoire (et potentiellement optimiser votre application pour utiliser moins de mémoire). Pour cela, nous vous recommandons d'utiliser les données de compteur de performance collectées par App Insights lorsque vous l'activez pour Azure Functions. Vous pouvez ensuite accéder à ces données en utilisant le portail d'analyse App Insights en exécutant la requête suivante :
performanceCounters
| where name == "Private Bytes"
| project timestamp, name, value, cloud_RoleInstance
Apparemment, le compteur de performance est incorrect dans certains cas comme décrit dans ce problème GitHub.