alibabacloud-sls-query est une compétence Agent qui permet d'interroger et d'analyser les données de journal du Simple Log Service (SLS) en langage naturel au sein d'un Agent IA. Une fois installée, la compétence convertit votre intention de requête en instructions SLS, les exécute et renvoie des résultats structurés.
Scénarios
|
Scénario |
Description |
Exemple d'invite |
|
Récupération de journaux |
Interrogez les détails des journaux en fonction de conditions telles que des mots-clés, des champs, des codes d'état, des ID de trace ou des ID utilisateur. |
Interrogez les détails des journaux d'accès NGINX dont le statut est supérieur ou égal à 500 au cours des 10 dernières minutes. |
|
Analyse statistique SQL |
Agrégez, regroupez, triez, effectuez des analyses Top-N, des analyses de tendances ou des projections de champs sur les journaux. |
Trouvez les 10 API présentant le plus d'erreurs 5xx au cours de la dernière heure. |
|
Génération d'instructions de requête |
Convertissez les demandes en langage naturel en instructions de requête d'index SLS, en instructions SQL ou en instructions Structured Process Language (SPL). |
Générez une instruction de requête pour calculer la latence moyenne et la latence P95 par minute. |
|
Optimisation des requêtes |
Optimisez les requêtes existantes en fonction des configurations d'index et des types de champs afin de réduire les analyses de données inutiles. |
Optimisez l'instruction de requête existante pour privilégier l'utilisation des index de champ et réduire les analyses de données inutiles. |
Prérequis
Un projet Simple Log Service et un Logstore sont créés, et les données de journal sont collectées.
Un index est créé pour le Logstore cible. Les requêtes SLS, l'analyse SQL et les requêtes SPL ne peuvent pas s'exécuter sans index.
-
Les identifiants du compte Alibaba Cloud requis pour accéder au projet et au Logstore de destination sont obtenus.
AvertissementPour éviter toute fuite d'identifiants, ne collez pas votre AccessKey ID ou votre AccessKey secret dans la conversation de l'Agent. Gérez les identifiants à l'aide de variables d'environnement ou d'un fichier de configuration Alibaba Cloud CLI.
Installer la compétence
alibabacloud-sls-query est disponible sur Alibaba Cloud Skill et ClawHub. Vous pouvez l'installer en utilisant l'une des méthodes suivantes.
Méthode 1 (recommandée) : Installer à l'aide de la commande npx
La commande npx est incluse avec Node.js. Avant d'installer la compétence, exécutez les commandes suivantes pour vérifier que votre environnement local est prêt :
node -v
npx -v
Si le terminal indique que node ou npx est introuvable, accédez au site Web officiel de Node.js pour le télécharger et l'installer.
Exécutez la commande suivante pour installer la compétence alibabacloud-sls-query :
npx skills add aliyun/alibabacloud-aiops-skills --skill alibabacloud-sls-query --full-depth
Une fois l'installation terminée, vérifiez que le dossier alibabacloud-sls-query existe dans le dossier des compétences, puis redémarrez l'Agent pour que la compétence prenne effet.
Méthode 2 : Télécharger et installer manuellement
Téléchargez le package d'installation alibabacloud-sls-query depuis GitHub Releases, décompressez le package et copiez les fichiers dans le dossier d'installation des compétences de l'Agent.
Après la copie, assurez-vous que le dossier alibabacloud-sls-query existe dans le dossier des compétences, puis redémarrez l'Agent pour charger la compétence.
Les dossiers d'installation des compétences pour les Agents courants sont les suivants :
|
Agent |
Dossier d'installation au niveau du projet |
Dossier d'installation au niveau de l'utilisateur |
|
Claude Code |
|
|
|
Codex |
|
|
|
Qoder |
|
|
|
QwenCode |
|
|
|
OpenClaw |
|
|
Interroger et analyser les journaux
Après l'installation, déclenchez la compétence en décrivant votre demande d'interrogation ou d'analyse SLS dans l'Agent. L'Agent effectue automatiquement les étapes suivantes :
Vérifie l'environnement d'exécution, y compris l'Alibaba Cloud CLI et le plugin SLS.
Lit la configuration de l'index du Logstore de destination.
Génère une instruction de requête (requête d'index, SQL ou SPL) en fonction de votre demande.
Exécute la requête à l'aide de l'Alibaba Cloud CLI.
Renvoie des résultats formatés et structurés.
Lorsque vous exécutez une requête pour la première fois, l'Agent vous guide pour installer l'Alibaba Cloud CLI et configurer les identifiants. Suivez les invites pour accorder les autorisations d'exécution et terminer la configuration.
Bonnes pratiques pour les invites
La qualité de l'invite affecte directement la précision des résultats de la requête. Une bonne invite inclut les informations suivantes :
Le nom du projet et le nom du Logstore.
Une intention claire de requête ou d'analyse. Par exemple, « Analysez la variation de la latence des requêtes d'une période à l'autre et calculez la latence moyenne par minute ».
La plage de temps de la requête. Par exemple, « les 15 dernières minutes » ou « de 10 h 00 à 11 h 00 le 24 avril 2026, UTC+8 ».
Le format de sortie souhaité. Par exemple, « renvoyer les journaux bruts », « calculer les 10 premiers », « afficher la tendance par minute » ou « renvoyer uniquement ces champs ».
Pour améliorer l'efficacité des requêtes et réduire les coûts :
Réduisez autant que possible la plage de temps pour éviter les analyses complètes.
Spécifiez les noms de champs exacts, tels que
statusetrequest_uri, au lieu d'utiliser des descriptions vagues.Si vous avez besoin des résultats Top-N, spécifiez le nombre dans l'invite, par exemple « Top 10 ».
Les projets, Logstores, noms de champs et résultats de requête dans les exemples suivants sont fournis à titre de démonstration uniquement. Remplacez-les par vos noms de ressources réels et vos champs de journal.
Scénario 1 : Interroger les journaux d'erreur 5xx des 15 dernières minutes
Invite
Query SLS Logstore where Project=prod-web and Logstore=nginx-access for requests with status >= 500 in the last 15 minutes, sorted in descending order by time.
Exemple de sortie de l'Agent
Query mode: Index query.
Reason: The user requested raw logs based on a condition, which does not involve aggregation, sorting, analysis, or field projection. The status field is configured with a numeric type index, so a range query can be used directly.
Command executed:
aliyun sls get-logs-v2 \
--project prod-web \
--logstore nginx-access \
--from 1777016700 \
--to 1777017600 \
--query 'status>=500' \
--line 100 \
--offset 0 \
--reverse true
Query result:
| Time | status | request_uri | upstream_status | request_time | message |
| --- | ---: | --- | ---: | ---: | --- |
| 2026-04-24 15:59:31 | 502 | /api/order/create | 502 | 1.238 | upstream connect timeout |
| 2026-04-24 15:58:44 | 500 | /api/pay/notify | 500 | 0.412 | internal server error |
| 2026-04-24 15:57:09 | 502 | /api/order/create | 502 | 1.104 | bad gateway |
Conclusion: The 5xx raw logs from the last 15 minutes have been returned in descending order by time. The most recent errors are concentrated in /api/order/create.
Scénario 2 : Trouver les 10 premières API avec des erreurs 5xx
Invite
Find the top 10 APIs with the most 5xx errors in the last hour in the SLS Logstore prod-web/nginx-access.
Exemple de sortie de l'Agent
Query mode: Index query + SQL.
Reason: To find the top 10 APIs with the most 5xx errors, an index query is first used to filter for status codes from 500 to 599. Then, SQL is used to group by request_uri, count the errors, and sort the results.
Command executed:
aliyun sls get-logs-v2 \
--project prod-web \
--logstore nginx-access \
--from 1777014000 \
--to 1777017600 \
--query 'status in [500 599] | SELECT request_uri, count(*) AS errors FROM log GROUP BY request_uri ORDER BY errors DESC LIMIT 10'
Query result:
| Rank | request_uri | errors |
| --- | --- | ---: |
| 1 | /api/order/create | 186 |
| 2 | /api/pay/notify | 73 |
.....
| 10 | /api/user/login | 1 |
Conclusion: The API with the highest number of 5xx errors in the last hour is /api/order/create. Its error count is significantly higher than other APIs. Investigate this API and its backend dependencies first.
Scénario 3 : Comparer la tendance de latence de la dernière heure avec la même période de la veille
Invite
In the SLS Logstore prod-web/nginx-access, analyze the change in average latency over the last hour compared to the same period yesterday. Calculate the average value per minute and determine if there are any significant latency anomalies.
Exemple de sortie de l'Agent
Query mode: Index query + SQL
Reason: The request requires aggregating the average latency by minute for both the last hour and the same period yesterday. The results are then aligned by minute to calculate the change and the rate of change.
Command executed (for the last hour):
aliyun sls get-logs-v2 \
--project prod-web \
--logstore nginx-access \
--from 1777014000 \
--to 1777017600 \
--query "* | SELECT date_trunc('minute', __time__) AS minute, avg(request_time) AS avg_latency FROM log GROUP BY minute ORDER BY minute LIMIT 60"
Command executed (for the same period yesterday):
aliyun sls get-logs-v2 \
--project prod-web \
--logstore nginx-access \
--from 1776927600 \
--to 1776931200 \
--query "* | SELECT date_trunc('minute', __time__) AS minute, avg(request_time) AS avg_latency FROM log GROUP BY minute ORDER BY minute LIMIT 60"
Query result:
| Minute | Current average latency | Average latency (yesterday) | Change | Change rate |
| --- | ---: | ---: | ---: | ---: |
| 2026-04-24 15:00 | 0.132s | 0.118s | +14ms | +11.9% |
| 2026-04-24 15:01 | 0.141s | 0.116s | +25ms | +21.6% |
| 2026-04-24 15:02 | 0.338s | 0.129s | +209ms | +162.0% |
| 2026-04-24 15:03 | 0.351s | 0.131s | +220ms | +167.9% |
Conclusion: The overall average latency in the last hour is higher than the same period yesterday. The most significant increase occurred between 15:02 and 15:03, where the average latency increased by over 160%. Drill down by the request_uri, upstream_addr, or service dimension to identify the source of the increased latency.
Scénario 4 : Poser des questions de suivi basées sur les résultats de la requête
Le SLS Query Skill prend en charge les conversations multi-tours. Posez des questions de suivi basées sur les résultats précédents pour affiner progressivement votre investigation.
Première invite
Trouvez les 5 premières API avec le plus d'erreurs 5xx au cours de la dernière heure dans le SLS Logstore prod-web/nginx-access.
Deuxième invite (suivi basé sur le premier résultat)
Pour l'API /api/order/create, affichez la tendance du nombre d'erreurs par minute pour voir si les erreurs se sont produites de manière soudaine ou étaient uniformément réparties.
Troisième invite (approfondissement supplémentaire)
Affichez les journaux bruts 5xx pour /api/order/create entre 15 h 02 et 15 h 05, et renvoyez les champs upstream_addr et message.
En posant des questions de suivi, vous pouvez passer de statistiques de haut niveau aux journaux bruts pour une période spécifique et identifier rapidement la cause racine d'une défaillance.
Sécurité et confidentialité des données
Le SLS Query Skill exécute les requêtes à l'aide de l'Alibaba Cloud CLI. Le processus de requête suit ces principes de sécurité :
Les demandes de requête sont chiffrées et transmises via HTTPS. Les données de journal ne transitent par aucun service tiers.
L'Agent génère et exécute les commandes de requête localement. Les données de journal ne sont pas transmises au fournisseur du modèle IA.
Les informations d'identification (AccessKey) sont gérées à l'aide du fichier de configuration Alibaba Cloud CLI ou des variables d'environnement et n'apparaissent pas dans l'historique de conversation de l'Agent.
Ne collez pas votre AccessKey ID ou votre AccessKey secret directement dans la conversation de l'Agent. Pour configurer les identifiants, exécutez la commande aliyun configure.
Limites
|
Limites |
Description |
|
Configuration de l'index |
Un index doit être créé pour le Logstore de destination. Si aucun index n'est configuré, aucun type de requête ne peut être exécuté. |
|
Délai d'expiration de la requête |
Le délai d'expiration par défaut pour une seule requête est de 60 secondes. Si une requête expire, essayez de réduire la plage de temps ou de simplifier les conditions de requête. |
|
Volume d'analyse des données |
Les coûts de requête dépendent du volume de données analysé. Réduisez la plage de temps et utilisez les index de champ pour limiter les analyses complètes inutiles. |
|
Environnement d'exécution |
Nécessite l'environnement d'exécution Node.js (pour installer la compétence) et l'Alibaba Cloud CLI (pour exécuter les requêtes). |
FAQ
Dois-je installer manuellement l'Alibaba Cloud CLI et le plugin SLS ?
Dans la plupart des cas, l'installation manuelle n'est pas nécessaire. Lorsque vous soumettez une demande de requête, l'Agent vérifie automatiquement l'environnement (aliyun version), active le mode IA, définit le User-Agent et met à jour le plugin.
Si l'Alibaba Cloud CLI n'est pas installé ou si la version est obsolète, l'Agent fournit des instructions d'installation ou de mise à niveau. Exécutez les commandes fournies par l'Agent dans votre environnement local pour terminer la configuration.
Comment configurer les identifiants de mon compte Alibaba Cloud ?
Suivez les invites de l'Agent pour configurer les identifiants de votre compte, ou exécutez manuellement la commande aliyun configure. Plusieurs méthodes de configuration des identifiants sont prises en charge, telles que AK, StsToken, OAuth et RamRole. Pour plus d'informations, consultez Configurer et gérer les identifiants.
Les endpoints internes de même région, les endpoints d'accélération et les domaines personnalisés sont-ils pris en charge ?
Oui. Dans votre invite, vous pouvez demander à l'Agent d'utiliser un endpoint spécifique en incluant le paramètre --endpoint <domain_name>.
Que faire si les résultats de la requête sont inexacts ?
Vérifiez et optimisez les éléments suivants :
Confirmez que l'index est correctement configuré pour le champ de destination et que le type de champ correspond à la condition de requête. Par exemple, le champ
statusdoit être de type long, et non de type texte.Spécifiez des noms de champs clairs, des plages horaires et des formats souhaités dans votre invite pour éviter toute ambiguïté.
Examinez l'instruction de requête renvoyée par l'Agent pour vérifier si la logique est correcte. Utilisez des questions de suivi pour affiner les conditions de requête.
Dépannage
Erreur IndexConfigNotExist
Cette erreur indique que le Logstore de destination ne possède aucune configuration d'index ou que l'index est vide.
Solution : Dans la console Simple Log Service, créez un index pour le Logstore de destination. Une fois l'index créé, attendez que les nouvelles données soient indexées avant d'effectuer à nouveau une requête.
Erreur Unauthorized
Cette erreur indique que le compte actuel ou l'utilisateur RAM ne dispose pas des autorisations nécessaires.
Solution : Accordez les autorisations suivantes au compte actuel :
|
Nom de l'API |
Action |
Ressource |
|
GetLogsV2 |
|
|
|
GetIndex |
|
|
Erreur ProjectNotExist
Cette erreur se produit généralement si le nom du projet est incorrect, si la région est erronée ou si vous accédez au mauvais endpoint.
Solution : Confirmez les informations suivantes :
Vérifiez que le nom du projet est correct.
Vérifiez que la région correspond à la région du projet.
Vérifiez si votre environnement réseau nécessite un endpoint interne de même région.