Utilisez la fonction de transformation de données e_to_metric pour convertir les champs de journal d'un Logstore en métriques dans un MetricStore, puis suivez l'évolution des métriques au fil du temps.
Contexte
Les données d'exécution des applications se répartissent en trois catégories : les journaux, les traces et les métriques. Les journaux enregistrent des événements discrets, les traces suivent les requêtes à travers un système et les métriques capturent des mesures numériques au fil du temps. Log Service propose deux types de stockage pour ces données :
-
Logstore
Un Logstore collecte, stocke et interroge les journaux dans Log Service. Logstore.
-
MetricStore
Un MetricStore collecte, stocke et interroge les métriques dans Log Service. Les MetricStores prennent en charge les requêtes PromQL et sont compatibles avec le protocole Prometheus. MetricStore.
Les données de journal sont généralement plus complètes que les données de métriques ; une métrique est essentiellement une entrée de journal structurée. Log Service prend en charge deux méthodes pour convertir les journaux en métriques :
Scheduled SQL : agrégation des journaux pour générer des métriques. Créer une tâche SQL planifiée pour importer des données d'un LogStore vers un MetricStore.
La fonction de transformation de données e_to_metric : conversion des champs de journal d'un Logstore en métriques de séries temporelles.
Scénario
Un Logstore nommé nginx-demo existe dans la région Chine (Hangzhou) et stocke les journaux d'accès NGINX.
Pour surveiller les tendances de request_time (durée de la requête) et de upstream_response_time (temps de réponse amont) par serveur backend, convertissez ces champs du Logstore en métriques avec un libellé basé sur le champ host.
body_bytes_sent:1750
host:www.example.com
http_referer:www.guide.example.com
http_user_agent:Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_6; it-it) AppleWebKit/533.20.25 (KHTML, like Gecko) Version/5.0.4 Safari/533.20.27
http_x_forwarded_for:203.0.113.10
remote_addr:203.0.113.10
remote_user:p288
request_length:13741
request_method:GET
request_time:71
request_uri:/request/path-1/file-1
status:200
time_local:11/Aug/2021:06:52:27
upstream_response_time:0.66
Prérequis
Les données de journal sont collectées. Collecte de données.
Étape 1 : Créer un MetricStore
Créez un MetricStore nommé service-metric pour stocker les métriques transformées.
Connectez-vous à la console Simple Log Service.
-
Dans la section Projects, cliquez sur le projet souhaité.

Sous l'onglet , cliquez sur l'icône +.
-
Dans le panneau Create Metricstore, configurez les paramètres suivants et cliquez sur OK.
Paramètre
Description
Metricstore Name
Nom du metricstore. Doit être unique au sein du projet. Ne peut pas être modifié après la création.
Data Retention Period
Durée de conservation des métriques dans le metricstore.
-
Specified Days : conserve les métriques pendant 1 à 3000 jours.
Avertissement-
Les métriques expirées sont automatiquement supprimées.
-
Si vous réduisez la période de rétention, SLS supprime les métriques expirées dans l'heure. La section Usage Details de la page d'accueil de la console SLS est mise à jour le lendemain. Par exemple, si vous passez la période de rétention de 5 à 1 jour, les métriques des quatre jours précédents sont supprimées dans l'heure.
-
-
Permanent Storage : conserve les métriques indéfiniment.
RemarqueUne période de rétention de 3650 renvoyée par le SDK indique un stockage permanent.
Shards
Nombre de shards. Chaque shard prend en charge 5 Mo/s et 500 écritures/s en écriture, et 10 Mo/s et 100 lectures/s en lecture. Maximum : 10 shards par metricstore, 200 par projet. Pour plus d'informations, consultez la rubrique Shard.
Automatic Sharding
Si vous activez l'option Automatic Sharding, SLS augmente le nombre de shards lorsque la capacité d'écriture est insuffisante. Pour plus d'informations, consultez la rubrique Gérer les shards.
Maximum Shards
Requis lorsque l'option Automatic Sharding est activée. Nombre maximal de shards en lecture/écriture. Valeur maximale : 256.
-
Étape 2 : Créer une tâche de transformation de données
Utilisez la fonction e_to_metric pour créer une tâche de transformation de données qui envoie les résultats vers le MetricStore créé à l'étape 1.
Dans le coin supérieur droit, sélectionnez une plage horaire afin que les journaux cibles apparaissent sous l'onglet Raw Logs.
-
Saisissez l'instruction de transformation de données suivante pour convertir
request_timeetupstream_response_timeen métriques, en renommanthostenhostnamecomme libellé.e_to_metric( names=[("request_time", "RequestTime"), ("upstream_response_time", "ResponseTime")], labels=[("host", "hostname")], ) -
Cliquez sur Preview Data et vérifiez l'onglet Transformation Results.
L'onglet affiche deux points de données de métriques :
__name__=RequestTimeavec__value__=71.0, et__name__=ResponseTimeavec__value__=0.66. Les deux possèdent__labels__=hostname#$#www.example.comet__time_nano__=1716172083000000000. -
Créez la tâche de transformation de données.
Cliquez sur Save as Transformation Job.
-
Dans le panneau Create Data Transformation Job, configurez les paramètres suivants et cliquez sur OK. Pour plus de détails sur les paramètres, consultez la rubrique Créer une tâche de transformation de données.
Paramètre
Description
Job name, Display name
Le nom de la tâche doit être unique. Le nom d'affichage est défini par l'utilisateur, par exemple log2metric.
Authorization method
Sélectionnez Default Role pour accorder des autorisations de lecture sur le Logstore source.
Destination
Destination name
Nom de la destination, par exemple log2metric.
Destination region
Région du projet de destination, par exemple Chine (Hangzhou).
Destination Project
Projet de destination qui stocke les résultats de la transformation.
Destination store
MetricStore de destination, par exemple service-metric.
Authorization method
Sélectionnez Default Role pour accorder des autorisations d'écriture sur le MetricStore de destination service-metric.
Processing scope
Time range
Sélectionnez All.
-
Vérifiez l'état de la tâche de transformation de données.
Dans le volet de navigation de gauche, cliquez sur l'icône Logstore, développez le Logstore cible, choisissez Data Processing > Data Transformation, puis cliquez sur la tâche cible pour afficher sa progression.
Étape 3 : Interroger les données de séries temporelles
Dans le volet de navigation de gauche, choisissez , puis sélectionnez le MetricStore cible.
-
Dans le coin supérieur droit, cliquez sur Last 15 Minutes (Relative) pour définir la plage horaire de la requête.
RemarqueLes résultats de requête et d'analyse peuvent présenter une latence allant jusqu'à une minute.
-
Cliquez sur Preview Raw Data. Dans le panneau qui s'affiche, sélectionnez une plage horaire pour vérifier que les métriques ont bien été écrites.
L'aperçu affiche deux métriques de
service-metric:__name__:RequestTime __value__:71.0et__name__:ResponseTime __value__:0.66. -
Saisissez une instruction de requête en utilisant l'une des méthodes suivantes. Pour obtenir des instructions détaillées, consultez la rubrique Interroger et analyser les données de séries temporelles.
-
Saisissez une instruction PromQL et cliquez sur Execute Now.
Vous pouvez ajouter plusieurs requêtes. Les résultats sont superposés dans le même graphique de séries temporelles.
-
Dans le volet Metrics Explore, cliquez sur l'icône
située à côté d'une métrique pour générer automatiquement une instruction de requête.Vous pouvez également cliquer sur Continue to Explore pour une métrique dans le volet Metrics Explore afin de définir les valeurs des libellés et de générer automatiquement une requête. Exploration des métriques.
Tendance de RequestTime pour chaque hôte

Tendance de ResponseTime pour chaque hôte

-