Notification

Duet AI s'appelle désormais Gemini pour Google Workspace. En savoir plus

Exemples de requêtes pour les journaux de données de rapports dans BigQuery

Éditions compatibles avec cette fonctionnalité: Frontline Standard; Enterprise Standard et Enterprise Plus; Education Standard et Education Plus; Enterprise Essentials Plus.  Comparer votre édition

Cet article contient des exemples de requêtes pour les rapports courants que vous pouvez obtenir dans BigQuery. Ces exemples de requêtes sont compatibles avec l'ancien SQL. Remplacez api_project_name.dataset_name par le nom de votre projet et celui de votre ensemble de données.

En savoir plus sur l'interrogation des données BigQuery

Pour connaître les champs des journaux Gmail et leur signification, consultez Schéma des journaux d'activité Gmail dans BigQuery.

Exemples de requêtes

Comptes

Nombre total de comptes administrateur et délégués, et nombre de comptes désactivés, bloqués et suspendus triés selon la date

SELECT date,
accounts.num_locked_users,
accounts.num_disabled_accounts,
accounts.num_delegated_admins,
accounts.num_super_admins,
accounts.num_suspended_users,
accounts.num_users
FROM api_project_name.dataset_name.usage
WHERE accounts.num_users IS NOT NULL
ORDER BY date ASC;

Administrateurs

Événements les plus fréquemment effectués par un administrateur

SELECT count(*) as admin_actions, event_name
FROM api_project_name.dataset_name.activity
WHERE email IN (
  SELECT user_email
  FROM api_project_name.dataset_name.usage
  WHERE accounts.is_super_admin = TRUE
)
GROUP BY 2
ORDER BY 1 DESC;

Rechercher le nombre de super-administrateurs dans un domaine donné

SELECT COUNT(DISTINCT user_email) as number_of_super_admins, date
FROM api_project_name.dataset_name.usage
WHERE accounts.is_super_admin = TRUE
GROUP BY 2
ORDER BY 2 DESC;

Agenda

SQL standard uniquement

Ratio entre le nombre d'utilisateurs actifs par jour et le nombre d'utilisateurs actifs sur 30 jours dans Google Agenda. Dans cet exemple, des requêtes sont effectuées dans différents tableaux.

Utilisateurs actifs par jour

SELECT date, calendar.num_1day_active_users
FROM api_project_name.dataset_name.usage
WHERE calendar.num_1day_active_users IS NOT NULL
ORDER BY date DESC

Utilisateurs actifs (30 jours)

SELECT date, calendar.num_30day_active_users
FROM api_project_name.dataset_name.usage
WHERE calendar.num_30day_active_users IS NOT NULL
ORDER BY date DESC;

Nombre d'événements d'agenda par type

SELECT COUNT(DISTINCT calendar.calendar_id) AS count, event_name
FROM api_project_name.dataset_name.activity
WHERE calendar.calendar_id IS NOT NULL
GROUP BY 2 ORDER BY 1 DESC;

Drive

Nombre d'éléments partagés dans Google Drive, regroupés par mode de partage

SELECT COUNT(DISTINCT drive.doc_id) AS count, drive.visibility
FROM api_project_name.dataset_name.activity
WHERE drive.doc_id IS NOT NULL
GROUP BY 2 ORDER BY 1 DESC;

ID de fichier, titre, propriétaire et type. Fichiers partagés en externe pendant le créneau sélectionné

SELECT TIMESTAMP_MICROS(time_usec) AS date, drive.doc_id, drive.doc_title,
drive.owner, drive.doc_type
FROM api_project_name.dataset_name.activity
WHERE drive.visibility = "shared_externally"
ORDER BY 1 DESC
LIMIT 100;

Partage des modifications d'autorisations et résultats. Ce partage vous permet de savoir quelles modifications d'autorisations ont changé la visibilité des fichiers

SELECT TIMESTAMP_MICROS(time_usec) AS date, drive.doc_title,
drive.visibility_change,drive.old_visibility, drive.visibility,
FROM api_project_name.dataset_name.activity
WHERE record_type = "drive"
AND drive.old_visibility IS NOT NULL
AND drive.old_visibility != "unknown";

Répartition des types d'événements par type de fichier. Utile pour trier des rapports d'adoption par type de fichier

SELECT drive.doc_type, event_type, count(*) 
FROM  api_project_name.dataset_name.activity
WHERE record_type = "DRIVE"
GROUP by 1,2 ORDER BY 3 desc;

Type et nom d'événement pour chaque Drive partagé

SELECT drive.shared_drive_id, event_type, event_name, record_type,
count(distinct drive.doc_id) AS count
FROM api_project_name.dataset_name.activity
WHERE record_type = "drive"
AND drive.shared_drive_id IS NOT NULL
GROUP BY 1,2,3,4 ORDER BY 5 DESC;

Informations sur les utilisateurs n'appartenant pas à votre domaine

SELECT email, event_name, count(*) AS count
FROM api_project_name.dataset_name.activity
WHERE email != ""
AND email NOT LIKE "%mydomain.com%"
GROUP BY 1,2 ORDER BY 3 DESC;

Quelles modifications d'autorisations ont été accordées aux utilisateurs externes, et quand

SELECT drive.target_user, event_name, count(*) AS count
FROM api_project_name.dataset_name.activity
WHERE drive.target_user IS NOT NULL
AND drive.target_user NOT LIKE "%mydomain.com%"
GROUP BY 1,2 ORDER BY 3 DESC;

Informations sur la surveillance du stockage

Utile pour créer des rapports sur les utilisateurs qui occupent plus de X d'espace de stockage Drive, avec un seuil défini (dans la clause AND accounts.drive_used_quota_in_mb > 0).

Cette requête peut être définie en tant que requête programmée ou, par exemple, être appelée périodiquement à l'aide de l'API.

SELECT date,
user_email,
accounts.drive_used_quota_in_mb,
FROM api_project_name.dataset_name.usage
WHERE accounts.drive_used_quota_in_mb IS NOT NULL
AND accounts.drive_used_quota_in_mb > 0
AND user_email != ""
AND date = CAST(DATE_SUB(CURRENT_DATE(), INTERVAL 7 DAY) AS STRING)
ORDER BY 3,1 DESC;

Remarques :

  • Cette valeur peut être modifiée pour correspondre au filtre défini par le client, Par exemple, plus de 15 Go : AND accounts.drive_used_quota_in_mb > 15000
  • La comparaison de dates avec CAST(DATE_SUB(CURRENT_DATE(), INTERVAL x DAY) AS STRING) permet d'effectuer une comparaison de dates avec le format de la valeur date.
  • Cette requête s'applique également à Gmail, où une valeur similaire est disponible : accounts.gmail_used_quota_in_mb.

Gmail

Bonnes pratiques à suivre pour utiliser Gmail avec BigQuery

  • Interrogez uniquement les données dont vous avez besoin. Ces exemples limitent les résultats à 1 000 correspondances, mais vous pouvez modifier cette limite.
  • Définissez un délai pour vos requêtes. Les délais d'un jour sont courants.

Correspondance d'objet
Vue récapitulative des messages limitée à 1 000 enregistrements correspondant à l'objet spécifié

SELECT TIMESTAMP_MICROS(gmail.event_info.timestamp_usec) as timestamp,
     gmail.message_info.subject,
     gmail.message_info.source.address,
     gmail.message_info.rfc2822_message_id
FROM your_dataset_id.activity
WHERE gmail.message_info.subject LIKE "%test%"
LIMIT 1000

Correspondance de destinataire
Nombre de messages distincts pour un destinataire donné

SELECT COUNT(DISTINCT gmail.message_info.rfc2822_message_id)
FROM your_dataset_id.activity d
WHERE
  EXISTS(
   SELECT 1 FROM d.gmail.message_info.destination WHERE destination.address = "recipient@example.com")

Correspondance de disposition et de destinataire

Affichage du résumé du message limité à 1 000 enregistrements correspondant à la fois à :

  • une disposition donnée (modification, rejet, mise en quarantaine) ;
  • un destinataire donné.

SELECT TIMESTAMP_MICROS(gmail.event_info.timestamp_usec) as timestamp,
     gmail.message_info.subject,
     gmail.message_info.source.address as source,
     destination.address as destination,
     gmail.message_info.rfc2822_message_id
FROM your_dataset_id.activity d, d.gmail.message_info.destination
WHERE
     destination.address = "recipient@example.com" AND
     EXISTS(SELECT 1 FROM d.gmail.message_info.triggered_rule_info ri, ri.consequence
          WHERE consequence.action = 17)
LIMIT 1000

Description de la règle déclenchée
Vue récapitulative des messages limitée à 1 000 enregistrements ayant déclenché la description de la règle spécifiée

SELECT TIMESTAMP_MICROS(gmail.event_info.timestamp_usec) as timestamp,
     gmail.message_info.subject,
     gmail.message_info.source.address as source,
     destination.address as destination,
     gmail.message_info.rfc2822_message_id
FROM your_dataset_id.activity d, d.gmail.message_info.destination
WHERE
    EXISTS(SELECT 1 FROM d.gmail.message_info.triggered_rule_info ri, ri.consequence
       WHERE consequence.reason LIKE '%description%')
LIMIT 1000

Marqué comme spam
Vue récapitulative des messages limitée à 1 000 enregistrements : 

  • Marqués comme spam
  • pour un destinataire donné ;
  • pour toutes les raisons.

SELECT TIMESTAMP_MICROS(gmail.event_info.timestamp_usec) as timestamp,
     gmail.message_info.subject,
     gmail.message_info.source.address as source,
     destination.address as destination,
     gmail.message_info.rfc2822_message_id
FROM your_dataset_id.activity d, d.gmail.message_info.destination
WHERE gmail.message_info.is_spam AND
          destination.address = "recipient@example.com"
LIMIT 1000

Protocole de chiffrement – non chiffré
Vue récapitulative des messages par protocole de chiffrement (non chiffrés)

SELECT TIMESTAMP_MICROS(gmail.event_info.timestamp_usec) as timestamp,
     gmail.message_info.subject,       
     gmail.message_info.source.address as source,
     destination.address as destination,
     gmail.message_info.rfc2822_message_id
FROM your_dataset_id.activity d, d.gmail.message_info.destination
WHERE gmail.message_info.connection_info.smtp_tls_state = 0
LIMIT 1000

Protocole de chiffrement – TLS uniquement
Vue récapitulative des messages par protocole de chiffrement (TLS uniquement)

SELECT TIMESTAMP_MICROS(gmail.event_info.timestamp_usec) as timestamp,
     gmail.message_info.subject,
     gmail.message_info.source.address as source,
     destination.address as destination,
     gmail.message_info.rfc2822_message_id
FROM your_dataset_id.activity d, d.gmail.message_info.destination
WHERE gmail.message_info.connection_info.smtp_tls_state = 1
LIMIT 1000

Correspondance de l'ID du message
Vue détaillée du message pour un ID de message donné (incluez "<>" autour de l'ID du message)

SELECT TIMESTAMP_MICROS(gmail.event_info.timestamp_usec) as timestamp,
     gmail.event_info.success,
     gmail.event_info.elapsed_time_usec,
     gmail.message_info.subject,
     gmail.message_info.source.address as source,
     gmail.message_info.source.service as source_service,
     gmail.message_info.source.selector as source_selector,
     destination.address as destination,
     destination.service,
     destination.selector as destination_selector,
     gmail.message_info.rfc2822_message_id,
     gmail.message_info.payload_size,
     gmail.message_info.num_message_attachments,
     gmail.message_info.connection_info.smtp_tls_state,
     gmail.message_info.description
FROM your_dataset_id.activity d, d.gmail.message_info.destination
WHERE gmail.message_info.rfc2822_message_id = ""
LIMIT 1000

Disposition – Rejeter le message
Rejeter le message :

  • Quel est le motif du rejet ?

SELECT TIMESTAMP_MICROS(gmail.event_info.timestamp_usec) as timestamp,
     gmail.message_info.subject,
     gmail.message_info.source.address as source,
     destination.address as destination,
     gmail.message_info.rfc2822_message_id,
     (SELECT ARRAY_AGG(consequence.reason)
     FROM d.gmail.message_info.triggered_rule_info ri, ri.consequence)
FROM your_dataset_id.activity d, d.gmail.message_info.destination
WHERE gmail.message_info.rfc2822_message_id = "<message id>" AND
     EXISTS(SELECT 1 FROM d.gmail.message_info.triggered_rule_info ri, ri.consequence
        WHERE consequence.action = 17)
LIMIT 1000

Disposition – Modifier le message
Modifier le message : 

  • Quelle règle a entraîné la modification ?
  • Quelle sous-catégorie est concernée (en-têtes, objet, par exemple) ?

SELECT TIMESTAMP_MICROS(gmail.event_info.timestamp_usec) as timestamp,
     gmail.message_info.subject,
     gmail.message_info.source.address as source,
     destination.address as destination,
     gmail.message_info.rfc2822_message_id,
     (SELECT ARRAY_AGG((consequence.action, consequence.reason))
     FROM d.gmail.message_info.triggered_rule_info ri, ri.consequence)
FROM your_dataset_id.activity d, d.gmail.message_info.destination
WHERE gmail.message_info.rfc2822_message_id = "<message id>" AND
   EXISTS(SELECT 1 FROM d.gmail.message_info.triggered_rule_info ri, ri.consequence
       WHERE consequence.action NOT IN (0, 17, 3))
LIMIT 1000

Mettre le message en quarantaine
Quelle règle a mis un message en quarantaine ?

SELECT TIMESTAMP_MICROS(gmail.event_info.timestamp_usec) as timestamp,
     gmail.message_info.subject,
     gmail.message_info.source.address as source,
     destination.address as destination,
     gmail.message_info.rfc2822_message_id,
     (SELECT ARRAY_AGG(consequence.reason)
     FROM d.gmail.message_info.triggered_rule_info ri, ri.consequence)
FROM your_dataset_id.activity d, d.gmail.message_info.destination
WHERE gmail.message_info.rfc2822_message_id = "<message id>" AND
     EXISTS(SELECT 1 FROM d.gmail.message_info.triggered_rule_info ri, ri.consequence
        WHERE consequence.action = 3)
LIMIT 1000

Requêtes composées
Total de tous les messages détectés par une règle spécifique (par description) au cours des 30 derniers jours :

SELECT
  COUNT(gmail.message_info.rfc2822_message_id) AS message_cnt
FROM
  `your_dataset_id.activity`,
UNNEST (gmail.message_info.triggered_rule_info) AS triggered_rule
WHERE
  _PARTITIONTIME >= TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 30 DAY)
  AND triggered_rule.rule_name LIKE "rule description"

Liste de tous les messages reçus sans chiffrement TLS le jour précédent :

SELECT gmail.message_info.subject,
    gmail.message_info.rfc2822_message_id
FROM `your_dataset_id.activity`
WHERE
    _PARTITIONTIME >= TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 30 DAY) AND
    gmail.message_info.connection_info.smtp_tls_state = 0

Liste des 10 principaux domaines avec lesquels notre compte a échangé des messages au cours des 30 derniers jours :

SELECT
  COUNT(DISTINCT gmail.message_info.rfc2822_message_id) as message_cnt,
  IF(gmail.message_info.is_policy_check_for_sender, 
       REGEXP_EXTRACT(gmail.message_info.source.address , "(@.*)"),
       REGEXP_EXTRACT(destination.address , "(@.*)")) AS domain
FROM `your_dataset_id.activity` d, d.gmail.message_info.destination
WHERE 
    _PARTITIONTIME >= TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 30 DAY)
GROUP BY domain
ORDER BY message_cnt desc
LIMIT 10

Ratio entre le nombre d'utilisateurs actifs par jour et le nombre d'utilisateurs actifs sur 30 jours dans Gmail

Utilisateurs actifs par jour :

SELECT date,
gmail.num_1day_active_users
FROM api_project_name.dataset_name.usage
WHERE gmail.num_1day_active_users > 0
ORDER BY 1 DESC;

Utilisateurs actifs (7 jours) :

SELECT date,
gmail.num_7day_active_users
FROM api_project_name.dataset_name.usage
WHERE gmail.num_7day_active_users > 0
ORDER BY 1 DESC;

Utilisateurs actifs (30 jours) :

SELECT date,
gmail.num_30day_active_users
FROM api_project_name.dataset_name.usage
WHERE gmail.num_30day_active_users > 0
ORDER BY 1 DESC;

Groupes

Changements d'appartenance et comportement des utilisateurs dans Google Groupes

SELECT TIMESTAMP_MICROS(time_usec) AS date,
  event_name,
  admin.group_email,
  event_type,
  email,
  record_type,
  admin.user_email,
  admin.new_value,
  admin.old_value,
  admin.setting_name
FROM project_name.dataset_name.activity
WHERE `admin`.group_email IS NOT NULL
AND CONCAT(TIMESTAMP_MICROS(time_usec)) LIKE "%YYYY-MM-DD%"
ORDER BY 1 DESC
LIMIT
  1000

Si vous souhaitez utiliser l'horodatage AAAA-MM-JJ, le premier élément de l'instruction SELECT peut être remplacé par :
EXTRACT(DATE FROM TIMESTAMP_MICROS(time_usec)) AS date,

Vous pouvez filtrer les dates dans la clause WHERE de l'une des manières suivantes :

SELECT TIMESTAMP_MICROS(time_usec) AS date,
  event_name,
  admin.group_email,
  event_type,
  email,
  record_type,
  admin.user_email,
  admin.new_value,
  admin.old_value,
  admin.setting_name
FROM project_name.dataset_name.activity
WHERE `admin`.group_email IS NOT NULL
AND EXTRACT(DATE FROM TIMESTAMP_MICROS(time_usec)) > "2020-06-30"
AND EXTRACT(DATE FROM TIMESTAMP_MICROS(time_usec)) < "2020-08-31"
ORDER BY 1 DESC
LIMIT
  1000

SELECT TIMESTAMP_MICROS(time_usec) AS date,
  event_name,
  admin.group_email,
  event_type,
  email,
  record_type,
  admin.user_email,
  admin.new_value,
  admin.old_value,
  admin.setting_name
FROM project_name.dataset_name.activity
WHERE `admin`.group_email IS NOT NULL
AND TIMESTAMP_MICROS(time_usec) > TIMESTAMP("2020-07-21")
AND TIMESTAMP_MICROS(time_usec) < TIMESTAMP("2020-07-23")
ORDER BY 1 DESC
LIMIT
  1000

Google Meet

Nombre d'appels vidéo et nombre total de minutes d'appel par date

SELECT date, meet.num_calls, meet.total_call_minutes
FROM `api_project_name.dataset_name.usage`
WHERE meet.num_calls IS NOT NULL
ORDER BY date ASC

Utilisateurs actifs par jour

SELECT date, meet.num_1day_active_users
FROM `api_project_name.dataset_name.usage`
WHERE meet.num_1day_active_users IS NOT NULL
ORDER BY date DESC

Utilisateurs actifs (30 jours)

SELECT date, meet.num_30day_active_users
FROM `api_project_name.dataset_name.usage`
WHERE meet.num_30day_active_users IS NOT NULL
ORDER BY date DESC

Règles

Règles de protection contre la perte de données déclenchées, triées par nom, application associée et actions

SELECT TIMESTAMP_MICROS(time_usec) AS date, rules.rule_name, rules.application,
rules.resource_title, rules.actions, rules.resource_owner_email,
rules.data_source, rules.matched_trigger
FROM api_project_name.dataset_name.activity
WHERE rules.rule_name IS NOT NULL
ORDER BY 1 DESC LIMIT 1000;

Jetons

Nombre d'accès autorisés à Google Drive par une application tierce

SELECT token.client_id, scope, token.app_name, count(*) AS count
FROM api_project_name.dataset_name.activity
LEFT JOIN UNNEST(token.scope) AS scope
WHERE scope LIKE "%drive%"
GROUP BY 1,2,3 ORDER BY 4 DESC;

Tentatives de connexion à la console d'administration

Informations détaillées sur les échecs de connexion à la console d'administration Google

SELECT TIMESTAMP_MICROS(time_usec) AS date, email, ip_address,
event_name, login.login_type, login.login_failure_type
FROM api_project_name.dataset_name.activity
WHERE login.login_type IS NOT NULL
AND login.login_failure_type IS NOT NULL
AND event_type = "login"
ORDER BY date DESC;

Schéma à utiliser pour les tableaux de statistiques d'utilisation

Le schéma est sujet à des modifications. Vous pouvez consulter la liste complète et à jour des paramètres et des champs dans la documentation sur l'API Reports.

Filtrer par date

Lorsque vous lancez une requête concernant les tableaux de statistiques d'activité ou d'utilisation, vous pouvez filtrer les données par date. Les deux tableaux présentent des formats distincts de présentation des dates :

  • Le tableau des statistiques d'activité présente les horodatages en microsecondes Unix, qui correspondent à une valeur entière (nombre) pouvant être convertie en date à l'aide de la fonction TIMESTAMP_MICROS().
  • Les valeurs de date sont affichées dans un format de date dans le tableau des statistiques d'utilisation. La conversion n'est donc pas nécessaire.

Vous pouvez choisir de filtrer les données de ces tableaux par date (ou période) à l'aide de l'une des méthodes ci-dessous.

Tableau des statistiques d'activité

Pour filtrer les données en fonction d'une date spécifique avec la structure de microsecondes Unix (tableau des statistiques d'activité), vous pouvez définir l'expression WHERE et la fonction TIMESTAMP() pour effectuer une comparaison simple avec les opérateurs supérieur à (>) et inférieur à (<) :

SELECT TIMESTAMP_MICROS(time_usec) as date, record_type
FROM api_project_name.dataset_name.activity
WHERE TIMESTAMP_MICROS(time_usec) > TIMESTAMP("2020-07-01")
AND TIMESTAMP_MICROS(time_usec) < TIMESTAMP("2020-07-07")
ORDER BY 1 DESC LIMIT 1000

Ici, le concept consiste à placer des limites dans la valeur time_usec d'entrée en comparant sa valeur renvoyée à partir de la fonction TIMESTAMP_MICROS() avec la valeur renvoyée de la fonction TIMESTAMP(), avec une date ajoutée en tant que paramètre de type chaîne. Ce concept respecte les normes sur les fonctions d'horodatage en langage SQL standard et utilise des opérateurs de comparaison simples (>) et (<), ainsi que l'extension AND dans la clause WHERE pour fermer une fenêtre de temps.

Tableau des statistiques d'utilisation

SELECT date, meet.num_calls,
FROM api_project_name.dataset_name.usage
WHERE meet.num_calls IS NOT NULL
AND TIMESTAMP(date) > TIMESTAMP("2020-07-01")
AND TIMESTAMP(date) < TIMESTAMP("2020-07-07")
ORDER BY date DESC;

La valeur date de type chaîne présente dans le tableau peut être transférée dans la fonction TIMESTAMP(), et les opérateurs de comparaison (>) et (<) peuvent être employés de la même manière que dans le premier exemple.

 

Filtrer par alias de domaine et sous-domaine : exclure et inclure

Pour exclure ou inclure certains domaines des résultats de votre requête, appliquez un filtre pour l'adresse e-mail à la clause WHERE à l'aide des caractères génériques (%) pour filtrer les domaines.

La façon dont vous utilisez les opérateurs AND ou OR varie selon que vous filtrez les données (exclusion) ou que vous incluez seulement certains résultats.

Exclure certains domaines des résultats

WHERE email NOT LIKE ("%@sub.%")
AND email NOT LIKE ("%@test.%")

Inclure uniquement certains domaines dans les résultats

WHERE email LIKE ("%@sub.%")
OR email LIKE ("%@test.%")

Journaux d'audit des règles

Effectuer le suivi des tentatives de partage de données sensibles par les utilisateurs à l'aide de cette requête

SELECT TIMESTAMP_MICROS(time_usec) AS Date,
rules.resource_owner_email AS User,
rules.rule_name AS ruleName,
rules.rule_type AS ruleType,
rules.rule_resource_name AS ruleResourceName,
rules.resource_id AS resourceId,
rules.resource_title AS resourceTitle,
rules.resource_type AS resourceType,
rules.resource_owner_email AS resourceOwner,
CAST(recipients AS STRING) AS Recipients,
rules.data_source AS dataSource,
rules.actor_ip_address AS actorIpAddress,
rules.severity AS severity,
rules.scan_type AS scanType,
rules.matched_trigger AS matchedTriggers,
detect.display_name AS matchedDetectorsName,
detect.detector_id AS matchedDetectorsId,
detect.detector_type AS matchedDetectorsType,
triggers.action_type AS triggeredActions,
suppressors.action_type AS suppressedActions,
FROM api_project_name.dataset_name.activity
LEFT JOIN UNNEST(rules.resource_recipients) as recipients
LEFT JOIN UNNEST(rules.matched_detectors) as detect
LEFT JOIN UNNEST(rules.triggered_actions) as triggers
LEFT JOIN UNNEST(rules.suppressed_actions) as suppressors
WHERE rules.rule_name IS NOT NULL
AND triggers.action_type != "ALERT"
ORDER BY 1 DESC
LIMIT 1000;

Article associé

Ces informations vous-ont elles été utiles ?

Comment pouvons-nous l'améliorer ?
Recherche
Effacer la recherche
Fermer le champ de recherche
Menu principal
9073471789511804817
true
Rechercher dans le centre d'aide
true
true
true
true
true
73010
false
false