Tous les produits
Search
Centre de documentation

Simple Log Service:Syntaxe de recherche et fonctions

Dernière mise à jour :Aug 10, 2026

Simple Log Service vous permet de filtrer les journaux à l'aide d'instructions de recherche. Utilisez les résultats tels quels ou comme entrée pour des instructions analytiques.

Prérequis

Pour interroger les journaux, vous devez créer un index.

Syntaxe de base

Remarque

Les instructions de recherche et les instructions analytiques sont séparées par | selon le format instruction de recherche|instruction analytique. Exemple :

* | SELECT status, count(*) AS PV GROUP BY status

Type d'instruction

Description

instruction de recherche

Spécifie les conditions de recherche : mots-clés, valeurs numériques, plages numériques, espaces ou astérisque (*).

Si vous spécifiez un espace ou un astérisque (*), aucun filtre n'est appliqué.

Important

Spécifiez au maximum 30 conditions dans une instruction de recherche.

instruction analytique

Important

Les instructions analytiques doivent suivre une instruction de recherche. Aucune clause FROM ou WHERE n'est nécessaire ; SLS analyse par défaut toutes les données du Logstore actuel. Elles ne sont pas sensibles à la casse, ne prennent pas en charge l'offset et ne nécessitent pas de point-virgule (;) final.

Effectue des calculs et des analyses statistiques sur les résultats de la recherche ou sur l'ensemble des données. Fonctions et syntaxe prises en charge :

Rédaction de requêtes de recherche

image

Pour rédiger une instruction de requête :

Étape 1 : Choisir le type de recherche

Important

Les résultats dépendent de votre configuration d'index. Si des index en texte intégral et des index par champ existent, les index par champ sont prioritaires.

Selon le type d'index, Simple Log Service prend en charge deux types de recherche pour un Logstore : la recherche en texte intégral et la recherche spécifique à un champ.

  • Si vous créez uniquement un index en texte intégral, vous devez utiliser la recherche en texte intégral.

  • Si vous créez des index par champ, suivez ces règles :

    • Pour les champs de type double ou long, vous devez utiliser la syntaxe de recherche spécifique à un champ.

    • Pour les champs de type text : si vous savez quel champ indexé contient le mot-clé, utilisez la syntaxe de recherche spécifique à un champ. Si vous ignorez quel champ contient le mot-clé, utilisez la syntaxe de recherche en texte intégral.

      • Si vous ne créez pas d'index en texte intégral, la syntaxe de recherche en texte intégral interroge uniquement les champs textuels indexés.

      • Si vous créez un index en texte intégral, la syntaxe de recherche en texte intégral recherche dans tous les champs textuels indexés.

Recherche en texte intégral

Une recherche en texte intégral ne cible pas un champ spécifique. Elle prend en charge les caractères génériques (* et ?) ainsi que les opérateurs logiques (and, or, not).

Syntaxe de recherche
 keywords1  [ and | or | not ] keywords2  ...

Exemples

  • Exemple 1

    Rechercher les journaux contenant le mot-clé GET. Syntaxe de recherche : GET.

  • Exemple 2

    Rechercher les journaux contenant le mot-clé GET ou POST. Syntaxe de recherche : GET or POST .

  • Exemple 3

    Rechercher les journaux dont les mots-clés commencent par Jo, tels que Joe et Jon. Syntaxe de recherche : Jo*.

Recherche spécifique à un champ

Une recherche spécifique à un champ cible un champ indexé particulier et prend en charge les comparaisons numériques ainsi que la correspondance par expression régulière.

Important
  • indexname1 représente le nom du champ à interroger. Si un nom de champ ou un autre identificateur contient des caractères spéciaux (tels que des espaces ou des caractères chinois) ou des mots-clés de recherche (tels que and ou or), vous devez l'encadrer de guillemets doubles (""). Comment utiliser les guillemets dans les instructions de recherche et d'analyse.

  • Pour les champs indexés en tant que long ou double, utilisez des opérateurs de comparaison tels que >, >=, <, <=, = et in.

Syntaxe de recherche

indexname1 [ : | > | >= | < | <= | = | in ] keyword1 [ [ and | or | not ] indexname2 ... ]

Exemples

  • Exemple 1

    Rechercher les journaux où request_method est GET. Syntaxe de recherche : request_method: GET.

  • Exemple 2

    Rechercher les journaux où request_time_msec est supérieur à 50 (le champ doit être indexé en tant que double). Syntaxe de recherche : request_time_msec>50.

  • Exemple 3

    Rechercher les journaux où request_method est GET et request_time_msec est supérieur à 50. Syntaxe de recherche : request_method: GET and request_time_msec>50.

Étape 2 : Types de données des champs

Chaque type de données de champ prend en charge différents opérateurs.

Types de données des champs

Type

Description

Opérateurs pris en charge

text

Champ de chaîne. Avec l'indexation en texte intégral activée, tous les champs sont par défaut de type text, à l'exception de __time__.

and, or, not, (), :, "", \, * et ?.

long et double

Les requêtes de plage numérique nécessitent que le type de champ soit long ou double.

  • Si le type de champ n'est pas double ou long, ou si la syntaxe de plage est invalide, SLS revient à une recherche en texte intégral, ce qui peut renvoyer des résultats inattendus.

    Par exemple, si le champ owner_id n'est pas de type double ou long, l'instruction de recherche owner_id>100 renvoie les journaux contenant les trois termes suivants : owner_id, > (traité comme un terme, non comme un délimiteur) et 100.

  • Si vous modifiez le type de données d'un champ de text vers double ou long, seules les recherches d'égalité avec l'opérateur = sont prises en charge. Pour utiliser des opérateurs de plage tels que supérieur à (>) et inférieur à (<), vous devez réindexer.

and, or, not, (), >, >=, <, <=, = et in.

JSON

Définissez le type de données des champs JSON sur long, double ou text en fonction de leurs valeurs, et activez l'option Enable Analytics.

Utilisez des opérateurs basés sur le type de données des champs contenus dans l'objet JSON.

Opérateurs

Important
  • L'opérateur in doit être en minuscules. Les autres opérateurs ne sont pas sensibles à la casse.

  • SLS réserve les mots suivants pour une utilisation en tant qu'opérateurs. Pour les utiliser comme mots-clés de recherche, vous devez les encadrer de guillemets doubles ("") : sort, asc, desc, group by, avg, sum, min, max et limit.

  • Les opérateurs sont listés par ordre de priorité décroissante :

    1. Deux-points (:)

    2. Guillemets doubles ("")

    3. Parenthèses ()

    4. and, not

    5. or

Opérateur

Description

:

Recherche spécifique à un champ au format Clé:Valeur. Exemple : request_method:GET.

Si un nom de champ ou une valeur contient des caractères spéciaux tels que des espaces, des deux-points (:) ou des traits d'union (-), vous devez encadrer le nom ou la valeur de guillemets doubles (""). Exemple : "file info":apsara.

and

Opérateur and. Exemple : request_method:GET and status:200.

Si vous spécifiez plusieurs mots-clés sans opérateur logique, l'opérateur and est utilisé par défaut. Par exemple, GET 200 cn-shanghai équivaut à GET and 200 and cn-shanghai.

or

Opérateur or. Exemple : request_method:GET or status:200.

not

Opérateur not. Exemples : request_method:GET not status:200 et not status:200.

( )

Regroupe les conditions de recherche pour augmenter leur priorité. Exemple : (request_method:GET or request_method:POST) and status:200.

""

Encadrez un mot-clé de syntaxe avec "" (guillemets doubles) pour le traiter comme un littéral. Dans une requête par champ, tous les mots entre "" sont traités comme une seule phrase.

  • Si un nom de champ ou une valeur contient des caractères spéciaux (tels que des espaces, des caractères chinois, : ou -) ou des mots-clés de syntaxe (tels que and ou or), vous devez l'encadrer de "". Par exemple, une recherche pour "and" trouve les journaux contenant le mot « and », qui n'est pas traité comme un opérateur.

  • SLS réserve les mots suivants pour une utilisation en tant qu'opérateurs. Pour les utiliser comme mots-clés de recherche, vous devez les encadrer de "" : sort, asc, desc, group by, avg, sum, min, max et limit.

  • Lorsque les journaux sont traités par une transformation de données ou un plug-in Logtail, la clé de tag est convertie en une clé standard. Pour interroger cette clé, vous devez encadrer le nom du champ de "". Exemple : "__tag__:__client_ip__":192.0.2.1. Le champ __tag__:__client_ip__ est un champ réservé qui stocke l'adresse IP de l'hôte de collecte des journaux.

\

Caractère d'échappement. Échappe un guillemet double ("") afin que vous puissiez le rechercher en tant que littéral. Par exemple, si un journal contient instance_id:nginx"01", vous pouvez le rechercher à l'aide de l'instruction instance_id:nginx\"01\".

*

Correspondance générique de zéro caractère ou plus. Exemple : host:www*com.

Remarque

SLS trouve jusqu'à 100 termes correspondants dans vos journaux, puis renvoie tous les journaux contenant ces termes et répondant aux conditions de recherche.

?

Correspondance générique d'exactement un caractère. Exemple : host:aliyund?c.

>

Valeur de champ supérieure à un nombre. Exemple : request_time>100.

>=

Valeur de champ supérieure ou égale à un nombre. Exemple : request_time>=100.

<

Valeur de champ inférieure à un nombre. Exemple : request_time<100.

<=

Valeur de champ inférieure ou égale à un nombre. Exemple : request_time<=100.

=

Recherche les journaux où la valeur d'un champ est égale à un nombre. Pour les champs de type double ou long, les opérateurs = et : sont équivalents. Par exemple, request_time=100 équivaut à request_time:100.

in

Recherche les journaux où la valeur d'un champ se situe dans une plage numérique. Les crochets [] indiquent un intervalle fermé (inclusif) et les parenthèses () indiquent un intervalle ouvert (exclusif). Utilisez un espace pour séparer les deux nombres de la plage. Exemples : request_time in [100 200] ou request_time in (100 200].

Important

L'opérateur in doit être en minuscules.

__source__

Recherche les journaux provenant d'une source spécifique. Les caractères génériques sont pris en charge. Exemple : __source__:192.0.2.*.

Important

Dans Log Service, __source__ est un champ réservé qui peut être abrégé en source. Si vous définissez un champ personnalisé nommé source, il entre en conflit avec le champ réservé source. Dans ce cas, vous devez utiliser une casse différente, telle que Source ou SOURCE, pour interroger votre champ personnalisé.

__tag__

Recherche les journaux par métadonnées. Exemple : __tag__:__receive_time__:1609837139.

__topic__

Recherche les journaux par sujet (topic). Exemple : __topic__:nginx_access_log.

Étape 3 : Sélectionner un mode de correspondance

SLS prend en charge la recherche exacte et la recherche floue.

Type de recherche

Description

Exemple

Recherche exacte

Trouve les journaux correspondant à des mots entiers.

SLS utilise la segmentation des mots, donc une requête multi-mots peut ne pas renvoyer une correspondance exacte. Une requête pour abc def renvoie les journaux contenant à la fois abc et def, mais pas nécessairement sous forme de phrase contiguë. Pour faire correspondre la phrase exacte abc def, utilisez une recherche de phrase ou une clause LIKE. Comment interroger les journaux à l'aide d'une correspondance exacte ?

  • host:example.com : Trouve les journaux où le champ host contient example.com.

  • PUT and cn-shanghai : Trouve les journaux contenant à la fois les mots-clés PUT et cn-shanghai.

  • | Select where http_user_agent like '%like Gecko%' : Trouve les journaux où la valeur du champ http_user_agent contient la phrase like Gecko.

  • #"redo_index/1" : Trouve les journaux contenant la phrase redo_index/1.

Recherche floue

Ajoutez un caractère générique (* ou ?) au milieu ou à la fin d'un terme (limite de 64 caractères). SLS fait correspondre jusqu'à 100 termes et renvoie tous les journaux les contenant. Des termes plus spécifiques donnent de meilleurs résultats.

Important
  • N'utilisez pas de caractères génériques, tels que l'astérisque (*) ou le point d'interrogation (?), au début d'un terme de recherche.

  • Les recherches floues utilisant des caractères génériques (* ou ?) ne sont pas prises en charge sur les champs de types de données long ou double. À la place, vous pouvez rechercher une plage de valeurs, telle que status in [200 299].

La recherche floue est une requête basée sur un échantillonnage :

  • Avec l'indexation par champ activée, SLS effectue un échantillonnage à partir de l'index de ce champ plutôt que d'effectuer une analyse complète, renvoyant ainsi un sous-ensemble représentatif des résultats.

  • Avec l'indexation en texte intégral et sans champ spécifié, SLS effectue un échantillonnage à partir de l'index en texte intégral, renvoyant un sous-ensemble représentatif.

  • request_time>60 and request_method:Ge* : Trouve les journaux où la valeur du champ request_time est supérieure à 60 et où la valeur du champ request_method commence par Ge.

  • addr* : Trouve les journaux contenant l'un des 100 termes maximum commençant par addr.

  • host:www.yl* : Trouve les journaux où le champ host commence par www.yl, avec une correspondance sur un maximum de 100 termes.

Comment effectuer une requête floue sur les journaux ?

Exemples d'instructions de recherche

Les résultats de recherche dépendent du contenu des journaux et de la configuration des index. Les exemples ci-dessous s'appuient sur le journal d'exemple et la configuration d'index suivants.

Types text, double et long

Journal d'exemple

Les exemples suivants utilisent un journal d'accès NGINX.

Sample log

Configuration des index

Créer des index avant d'interroger les journaux. Pour vérifier votre configuration d'index :

  1. Sur la page query and analysis du Logstore, sélectionnez Index Attributes > Attributes.image

  2. Dans le panneau qui s'affiche, vérifiez si les index de champ sont configurés.Index configuration

Recherche courante

Objectif

Instruction de recherche

Débogage

Rechercher les requêtes GET réussies (code d'état 200–299).

request_method:GET and status in [200 299]

Débogage

Rechercher les requêtes GET provenant de l'extérieur de la région Chine (Hangzhou).

request_method:GET not region:cn-hangzhou

Aucun

Rechercher les requêtes GET ou POST.

request_method:GET or request_method:POST

Débogage

Rechercher les requêtes autres que GET.

not request_method:GET

Débogage

Rechercher les requêtes GET ou POST réussies.

(request_method:GET or request_method:POST) and status in [200 299]

Débogage

Rechercher les requêtes GET ou POST ayant échoué.

(request_method:GET or request_method:POST) not status in [200 299]

Débogage

Rechercher les requêtes GET réussies (code d'état 200–299) dont le temps de requête est inférieur à 60 secondes.

request_method:GET and status in [200 299] not request_time>=60

Débogage

Rechercher les journaux dont le temps de requête est de 60 secondes.

request_time:60

Débogage

request_time=60

Débogage

Rechercher les journaux dont le temps de requête est supérieur ou égal à 60 secondes et inférieur à 200 secondes.

request_time>=60 and request_time<200

Débogage

request_time in [60 200)

Débogage

Rechercher les journaux pour lesquels le champ request_time existe.

request_time:*

Débogage

Rechercher les journaux pour lesquels le champ request_time est vide ou contient un nombre non valide.

(request_time:"") or (not request_time > -10000000000)

Débogage

Rechercher les journaux contenant le champ request_time avec une valeur numérique.

request_time > -1000000000

Débogage

Rechercher les journaux contenant and.

"and"
Remarque

Le mot and est traité comme une chaîne littérale, et non comme un opérateur.

Débogage

Rechercher les journaux pour lesquels la valeur du champ request method est PUT.

"request method":PUT
Important

Le nom de champ request method contient un espace. Vous devez l'encadrer de guillemets doubles ("").

Aucun

Rechercher les journaux dont le topic est HTTPS ou HTTP.

__topic__:HTTPS or __topic__:HTTP

Aucun

Rechercher les journaux provenant de l'hôte 192.0.2.1.

__tag__:__client_ip__:192.0.2.1

Le champ __tag__:__client_ip__ est un champ réservé qui stocke l'adresse IP de l'hôte de collecte des journaux.

Important

Si un journal est traité à l'aide d'une transformation de données ou d'un plug-in Logtail, la clé dans le tag est convertie en clé standard. Pour interroger le journal, vous devez encadrer le nom du champ de guillemets doubles (""). Exemple : "__tag__:__client_ip__":192.0.2.1.

Aucun

Rechercher les journaux contenant 192.168.XX.XX.

* | select * from log where key like '192.168.%.%'

Utiliser la clause SQL LIKE pour des requêtes floues précises.

Aucun

Rechercher les journaux pour lesquels la valeur du champ remote_user n'est pas vide.

not remote_user:""

Débogage

Rechercher les journaux pour lesquels la valeur du champ remote_user est vide.

remote_user:""

Débogage

Rechercher les journaux pour lesquels la valeur du champ remote_user n'est pas null.

not remote_user:"null"

Débogage

Rechercher les journaux ne contenant pas le champ remote_user.

not remote_user:*

Débogage

Rechercher les journaux contenant le champ remote_user.

remote_user:*

Débogage

Rechercher les journaux pour lesquels la valeur du champ city n'est pas Shanghai.

not city:Shanghai
Remarque

Pour interroger des chaînes chinoises, activez include Chinese lors de la configuration des index.

Aucun

Recherche floue

Objectif

Instruction de recherche

Débogage

Rechercher les journaux contenant des mots commençant par cn.

cn*

Débogage

Rechercher les journaux pour lesquels la valeur du champ region commence par cn.

region:cn*

Aucun

Rechercher les journaux pour lesquels la valeur du champ region contient cn*.

region:"cn*"
Remarque

Dans cette instruction de recherche, cn* est traité comme une chaîne littérale. Par exemple :

  • Si un journal contient region:cn,en et que le délimiteur est une virgule (,), le contenu est divisé en region, cn et en. Ce journal peut être trouvé à l'aide de l'instruction de recherche.

  • Si un journal contient region:cnhangzhou, cnhangzhou est traité comme un seul terme. Vous ne pouvez pas trouver ce journal à l'aide de l'instruction de recherche.

Aucun

Rechercher les journaux contenant un mot qui commence par « mozi », se termine par « la » et comporte un seul caractère entre les deux.

mozi?la

Débogage

Rechercher les journaux contenant un mot qui commence par « mo », se termine par « la » et comporte zéro ou plusieurs caractères entre les deux.

mo*la

Débogage

Rechercher les journaux contenant des mots commençant par « moz » et des mots commençant par « sa ».

moz* and sa*

Débogage

Rechercher les journaux pour lesquels la valeur du champ region se termine par « hai ».

Les instructions de recherche ne permettent pas de trouver ces journaux. Utilisez plutôt la clause SQL LIKE.

*| select * from log where region like '%hai'

Aucun

Rechercher les journaux pour lesquels la valeur du champ message commence par "get_time: 0..

Utilisez la clause like dans l'analyse SQL.

*| select message where message like '"get_time: 0.%'

Vous pouvez également utiliser l'instruction where dans le langage Structured Process Language (SPL) pour filtrer les journaux.

*| where message like '"get_time: 0.%'

Aucun

Recherche par délimiteur

SLS divise le contenu des journaux en mots à l'aide des délimiteurs configurés. Les valeurs par défaut sont , '";=()[]{}?@&<>/:\n\t\r. Si vous laissez Delimiter vide, la valeur du champ est traitée comme un seul terme et ne peut être trouvée que par une recherche exacte ou floue sur la chaîne entière. Créer des index.

Par exemple, la valeur du champ http_user_agent est Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.2 (KHTML, like Gecko) Chrome/192.0.2.0 Safari/537.2.

  • Si vous définissez delimiter sur une valeur vide, la valeur du champ est traitée comme un seul jeton. Par conséquent, vous ne pouvez pas trouver le journal à l'aide de l'instruction de requête http_user_agent:Chrome.

  • Si vous définissez Delimiter sur , '";=()[]{}?@&<>/:\n\t\r, la valeur du champ est divisée en termes Mozilla, 5.0, Windows, NT, 6.1, AppleWebKit, 537.2, KHTML, like, Gecko, Chrome, 192.0.2.0, Safari et 537.2. Vous pouvez trouver le journal à l'aide d'instructions de recherche telles que http_user_agent:Chrome.

Important

Si un mot-clé de recherche contient un délimiteur, vous devez utiliser une recherche par expression ou une clause LIKE. Par exemple :

Objectif

Instruction de recherche

Débogage

Rechercher les journaux pour lesquels la valeur du champ http_user_agent contient Chrome.

http_user_agent:Chrome

Débogage

Rechercher les journaux pour lesquels la valeur du champ http_user_agent contient Linux et Chrome.

http_user_agent:Linux and http_user_agent:Chrome

Débogage

http_user_agent:"Linux Chrome"

Débogage

Rechercher les journaux pour lesquels la valeur du champ http_user_agent contient Firefox ou Chrome.

http_user_agent:Firefox or http_user_agent:Chrome

Débogage

Rechercher les journaux pour lesquels la valeur du champ request_uri contient /request/path-2.

request_uri:/request/path-2

Débogage

Rechercher les journaux pour lesquels la valeur du champ request_uri commence par /request mais ne contient pas /file-0.

request_uri:/request* not request_uri:/file-0

Débogage

Trouver une correspondance exacte pour les journaux contenant l'expression redo_index/1.

  • #"redo_index/1"

  • | select from log where key like 'redo_index/1'

Remarque

Une recherche par expression ou une clause LIKE permet d'obtenir une correspondance exacte pour une expression. Une recherche exacte standard fait correspondre des termes individuels tels que redo_index et 1.

Aucun

Échappement des mots-clés

  • Dans les instructions de recherche

    Encadrez un mot-clé de syntaxe de "" (guillemets doubles) pour le traiter comme un littéral. Dans une requête par champ, tous les mots entre "" sont traités comme une seule expression.

    • Si un nom de champ ou une valeur contient des caractères spéciaux (tels que des espaces, des caractères chinois, : ou -) ou des mots-clés de syntaxe (tels que and ou or), vous devez l'encadrer de "". Par exemple, une recherche pour "and" trouve les journaux contenant le mot « and », qui n'est pas traité comme un opérateur.

    • SLS réserve les mots suivants pour une utilisation en tant qu'opérateurs. Pour les utiliser comme mots-clés de recherche, vous devez les encadrer de "" : sort, asc, desc, group by, avg, sum, min, max et limit.

    • Lorsque les journaux sont traités par une transformation de données ou un plug-in Logtail, la clé du tag est convertie en clé standard. Pour interroger cette clé, vous devez encadrer le nom du champ de "". Exemple : "__tag__:__client_ip__":192.0.2.1. Le champ __tag__:__client_ip__ est un champ réservé qui stocke l'adresse IP de l'hôte de collecte des journaux.

    Objectif

    Instruction de recherche

    Rechercher les journaux pour lesquels la valeur du champ request method est PUT. Le nom du champ request method contient un espace et doit être encadré de guillemets doubles ("").

    "request method":PUT

    Rechercher les journaux pour lesquels la valeur du champ system error description contient DB. Le nom du champ system error description contient des espaces.

    "system error description":DB*

    Cette requête trouve les journaux pour lesquels la valeur du champ region contient cn. Ici, cn est une chaîne. Si le contenu du journal est region:cn,en et que le délimiteur est une virgule (,), le contenu du journal est divisé en region, cn et en. Vous pouvez ensuite utiliser l'instruction à droite pour trouver ce journal.

    region:"cn*"

    Rechercher les journaux pour lesquels la valeur du champ remote_user est vide.

    remote_user:""

    Rechercher les journaux pour lesquels la valeur du champ Authorization est Bearer 12345. La valeur du champ Bearer 12345 contient un espace.

    "Authorization": "Bearer 12345"

    Analyser les journaux pour lesquels la valeur du champ errorContent contient The body is not valid json string. La valeur du champ contient des espaces.

    * | select * where errorContent like '%The body is not valid json string%'

    Rechercher les journaux collectés depuis l'hôte 192.0.2.1.

    "__tag__:__client_ip__":192.0.2.1
  • Dans les instructions d'analyse

    • Si un nom propre, tel qu'un nom de champ ou de table, contient des caractères spéciaux (tels que des espaces, des caractères chinois, : ou -) ou des mots-clés de syntaxe (tels que and ou or), vous devez l'encadrer de guillemets doubles ("").

    • Les caractères représentant une chaîne doivent être encadrés de guillemets simples (''). Les caractères non encadrés de guillemets ou encadrés de guillemets doubles ("") représentent un nom de champ ou de colonne. Par exemple, 'status' représente la chaîne « status », tandis que status ou "status" représente le champ de journal status.

    Objectif

    Instruction d'analyse

    Rechercher les journaux contenant 192.168.XX.XX.

    * | select * from log where key like '192.168.%.%'

    Calculer les 10 meilleurs temps de requête.

    Le nom de colonne top 10 contient un espace et doit être encadré de guillemets doubles ("").

    * | SELECT max(request_time,10) AS "top 10"

    Compter le nombre de journaux pour chaque statut de requête.

    Le champ content est indexé au format JSON. Comment interroger et analyser un champ JSON indexé.

    * | SELECT "content.status", COUNT(*) AS PV GROUP BY "content.status"

Type Json

Journal d'exemple

{
  "timestamp": "2025-03-21T14:35:18Z",
  "level": "ERROR",
  "service": {
    "name": "payment-processor",
    "version": "v2.8.1",
    "environment": "production"
  },
  "error": {
    "code": 5031,
    "message": "Failed to connect to third-party API",
    "details": {
      "endpoint": "https://api.paymentgateway.com/v3/verify",
      "attempts": 3,
      "last_response": {
        "status_code": 504,
        "headers": {
          "Content-Type": "application/json",
          "X-RateLimit-Limit": "100"
        }
      }
    }
  },
  "user": {
    "id": "usr-9a2b3c4d",
    "session": {
      "id": "sess-zxy987",
      "device": {
        "type": "mobile",
        "os": "Android 14",
        "network": "4G"
      }
    }
  },
  "trace": {
    "correlation_id": "corr-6f5e4d3c",
    "span_id": "span-00a1b2"
  }
}

Configuration des index

Créer des index avant d'interroger les journaux. Pour vérifier la configuration de vos index :

  1. Sur la page query and analysis du Logstore, sélectionnez Index Attributes > Attributes.image

  2. Dans le panneau qui s'affiche, vérifiez si les index de champ sont configurés.

    image

Exemples

Objectif

Instruction de recherche

Rechercher les journaux enregistrant des erreurs de requête.

level:error

Rechercher toutes les requêtes provenant de l'utilisateur dont l'ID est usr-9a2b3c4d.

user.id:usr-9a2b3c4d

Rechercher les journaux de l'utilisateur usr-9a2b3c4d avec un code d'état d'erreur 504.

user.id:usr-9a2b3c4d and error.details.last_response.status_code :504

FAQ

La requête ne renvoie aucun journal

Que faire si une requête ne renvoie aucun journal

Problèmes liés aux journaux JSON

FAQ sur l'interrogation et l'analyse des journaux JSON

Dépannage des erreurs de requête

Rubriques connexes