L’action Azure Monitor Query Logs exécute une requête KQL (Kusto Query Language) sur un espace de travail Azure Monitor Log Analytics et renvoie le tableau de résultats à votre workflow.
Requête de logs Azure Monitor
Utilisez cette action pour effectuer une requête sur les données de log (par exemple, les requests d'application, les échecs ou les log personnalisés), puis bifurquer ou notifier en fonction des résultats.
Important
Le principal de service Azure AD que vous utilisez doit avoir le rôle Lecteur Log Analytics sur l’espace de travail cible.
Les entrées suivantes sont disponibles pour cette action :
Saisir | Type | Description |
|---|---|---|
| Chaîne | Obligatoire. Un clientId de principal de service Azure (format UUID). Passer en tant que secret. Voir comment |
| Chaîne | Obligatoire. Un clientSecret de principal de service Azure. Transmettez en tant que secret. Voir comment |
| Chaîne | Obligatoire. L’identifiant de locataire Azure (format UUID). Peut être transmis en tant que secret. |
| Chaîne | Obligatoire. L'ID de l'espace de travail log Analytics (GUID). Par exemple,
. |
| Chaîne | Obligatoire. La requête KQL à exécuter sur l'espace de travail. Par exemple,
. Maximum 8000 caractères. |
| Chaîne | Facultatif. Une durée ISO-8601 qui délimite la plage de temps de la requête. Par exemple,
(7 jours) ou
(1 heure). En cas d’omission, la requête s’exécute sans contrainte de temps. |
| List | Facultatif. Une liste de sélecteurs utilisés pour extraire ou renommer des valeurs spécifiques de la réponse. Par exemple,
. |
Les sorties suivantes sont disponibles pour cette action :
Sortir | Type | Description |
|---|---|---|
| Booléen | Statut du résultat de la requête.
lorsque l'appel a réussi (HTTP 2xx).
sinon. |
| Chaîne | Motif de l'échec. L'action définit ce champ lorsque
est
. |
| Objet | La réponse complète de Log Analytics. Les lignes de résultat sont à
. Les définitions de colonnes sont à
. Pour plus d’informations, consultez la référence de l’API Azure Monitor Log Analytics . |
L'exemple suivant effectue une requête sur la table AppRequests pour les 25 derniers jours et envoie un résumé à un canal Slack.
name: query-azure-monitor-logs
steps: - name: query_app_requests type: action action: azure.monitor.queryLogs version: 1 inputs: clientId: ${{ :secrets:azure-client-id }} clientSecret: ${{ :secrets:azure-client-secret }} tenantId: ${{ :secrets:azure-tenant-id }} workspaceId: "78460d46-1c7c-494b-90b4-e21288a074d4" query: |- AppRequests | take 10 timespan: P25D selectors: - name: records expression: ".response.tables[0] as $t | ($t.columns | map(.name)) as $cols | $t.rows | map(. as $row | reduce range(0; ($cols | length)) as $i ({}; . + {($cols[$i]): $row[$i]}))" - name: send_slack_notification type: action action: newrelic.notification.sendSlack version: 1 inputs: destinationId: ${{ :secrets:slack-destination-id }} channel: ops-alerts text: ${{ "*AppRequests* (" + (.steps.query_app_requests.outputs.records | length | tostring) + " rows)\n\n" + (.steps.query_app_requests.outputs.records | map([(.OperationName // ""), (.ResultCode // ""), (.Url // ""), ((.DurationMs // 0) | tostring) + "ms"] | join(" | ")) | join("\n")) + "\n```" }} next: end