Notre APINerdGraph vous permet d'automatiser la création, la mise à jour ou la suppression de votre moniteur Synthétique, site privé, identifiants sécurisés et temps d'arrêt du moniteur.
Exigences
Les exigences comprennent :
- Exigences générales de NerdGraph
- Autorisations d'utilisateur pertinentes : les mêmes autorisations monitoring Synthétique qui s'appliquent à l'utilisation de l'UI Synthetics s'appliquent à l'utilisation de NerdGraph
Comprendre les champs dans l'explorateur NerdGraph
Vous pouvez afficher les définitions de champs dans l'explorateur NerdGraph, mais cela peut aider à mieux comprendre les champs LOCATION
, PERIOD
, TAGS
et autres.
Configurez un navigateur simple, un navigateur scripté et un moniteur d'étapes pour utiliser un ou plusieurs types de navigateur. N'incluez pas cet attribut lorsque vous utilisez Chrome l'environnement legacy d'exécution 72. Exemples :
[CHROME]
pour utiliser uniquement Chrome[FIREFOX]
utiliser uniquement Firefox[CHROME, FIREFOX]
utiliser Chrome et Firefox
Configurez un navigateur simple, un navigateur scripté et un moniteur d'étapes pour utiliser un ou plusieurs types d'appareils émulés. N'incluez pas cet attribut lorsque vous utilisez Chrome l'environnement legacy d'exécution 72. Exemples :
[DESKTOP]
[MOBILE_LANDSCAPE]
[MOBILE_PORTRAIT]
[TABLET_LANDSCAPE]
[TABLET_PORTRAIT]
Plusieurs configurations de périphériques émulés peuvent être utilisées par un seul moniteur :
[DESKTOP, MOBILE_PORTRAIT, TABLET_LANDSCAPE]
Pour identifier un site privé dans votre script, utilisez le GUID de l'entité du site privé. Si le site privé est configuré pour utiliser l'exécution script vérifiée, incluez également l'attribut vsePassword
. Par exemple:
locations: { private: { guid: LOCATION_ENTITY_GUID, vsePassword: YOUR_VSE_PASSWORD }}
emplacement public utilisez l'identifiant d'emplacement sans le préfixe AWS , par exemple :
locations: { public: ["US_EAST_2", "US_WEST_1"]}
L'attribut PERIOD
définit un intervalle de temps pendant lequel votre moniteur doit s'exécuter. Pour définir l'intervalle, utilisez ces formes :
EVERY_MINUTE
pour chaque minute.EVERY_N_MINUTES
, où « N » représente les minutes. Les valeurs prises en charge incluentEVERY_5_MINUTES
,EVERY_10_MINUTES
,EVERY_15_MINUTES
etEVERY_30_MINUTES
.EVERY_HOUR
pour chaque heure.EVERY_N_HOURS
, où « N » représente les heures. Les valeurs prises en charge incluentEVERY_6_HOURS
etEVERY_12_HOURS
.EVERY_DAY
une fois par jour.
Les balises sont facultatives. Vous pouvez ajouter une balise lors de la création du moniteur ou ultérieurement à l'aide d'appels de balise dans NerdGraph ou l'UI. Plusieurs balises peuvent être ajoutées dans un seul appel de mutation à l'aide d'un éventail contenant des clés et des valeurs.
Certains champs sont destinés à une configuration plus avancée. Ceux-ci sont facultatifs.
Pour le moniteur de ping, ceux-ci incluent :
HEADER_NAME
: Vos noms d’en-tête personnalisés qui apparaissent sur la demande.HEADER_VALUE
: La valeur d'en-tête personnalisée sur la demande.REDIRECT_IS_FAILURE
:Votre moniteur signale un échec s'il est redirigé.VALIDATION_TEXT
:Si ce texte n'est pas inclus dans la réponse de votre moniteur, il renvoie un échec.TLS_VALIDATION
: Vérifie la validité du certificat SSL chaîne.BYPASS_HEAD_REQUEST
: Contourne la requête HEAD initiale et effectue à la place une requête GET.RUNTIME_TYPE
: Le type d’exécution utilisé par votre moniteur. « CHROME_BROWSER » est la seule valeur acceptée.RUNTIME_TYPE_VERSION
: La version du type d'exécution utilisée par votre moniteur. « 100 » est la seule valeur acceptée.SCRIPT_LANGUAGE
:La langue utilisée dans votre moniteur. « JAVASCRIPT » est la seule valeur acceptée.Pour le moniteur API scripté:
SCRIPT_CONTENT
:Le contenu réel du script. Ceci ne doit pas être codé en base64.RUNTIME_TYPE
: Le type d’exécution utilisé par votre moniteur. « NODE_API » est la seule valeur acceptée.RUNTIME_TYPE_VERSION
: La version du type d'exécution utilisée par votre moniteur. La seule valeur acceptée est16.10
.SCRIPT_LANGUAGE
:La langue utilisée dans votre moniteur. « JAVASCRIPT » est la seule valeur acceptée.SCRIPT_CONTENT
:Le contenu réel du script. Ceci ne doit pas être codé en base64.RUNTIME_TYPE
: Le type d’exécution utilisé par votre moniteur. « CHROME_BROWSER » est la seule valeur acceptée.RUNTIME_TYPE_VERSION
: La version du type d'exécution utilisée par votre moniteur. « 100 » est la seule valeur acceptée.SCRIPT_LANGUAGE
:La langue utilisée dans votre moniteur. « JAVASCRIPT » est la seule valeur acceptée.Pour le moniteur de pas:
RUNTIME_TYPE
: Le type d’exécution utilisé par votre moniteur. « CHROME_BROWSER » est la seule valeur acceptée.RUNTIME_TYPE_VERSION
: La version du type d'exécution utilisée par votre moniteur. « 100 » est la seule valeur acceptée.SCRIPT_LANGUAGE
:La langue utilisée dans votre moniteur. « JAVASCRIPT » est la seule valeur acceptée.DAYS_UNTIL_EXPIRATION
: Vous avertit lorsque vous devez mettre à jour votre certificat. Par exemple, si vous souhaitez recevoir une notification 30 jours avant l’expiration du certificat, vous devez saisir 30.RUNTIME_TYPE
: Le type d’exécution utilisé par votre moniteur. « NODE_API » est la seule valeur acceptée.RUNTIME_TYPE_VERSION
: La version du type d'exécution utilisée par votre moniteur. La seule valeur acceptée est16.10
.SCRIPT_LANGUAGE
:La langue utilisée dans votre moniteur. « JAVASCRIPT » est la seule valeur acceptée.RUNTIME_TYPE
: Le type d’exécution utilisé par votre moniteur. « NODE_API » est la seule valeur acceptée.RUNTIME_TYPE_VERSION
: La version du type d'exécution utilisée par votre moniteur. La seule valeur acceptée est16.10
.SCRIPT_LANGUAGE
:La langue utilisée dans votre moniteur. « JAVASCRIPT » est la seule valeur acceptée.Pour tous les moniteurs :
APDEX_TARGET
:La cible Apdex du moniteur utilisée pour renseigner les rapports SLA . La valeur par défaut est de 7 secondes (7 000 ms).
Utiliser une requête pour récupérer des données
Qequête faire requests pour récupérer des données. Pour découvrir les fonctionnalités de requête supplémentaires disponibles pour votre entité Synthétique, consultez le didacticiel API de l'entité NerdGraph.
Vous pouvez interroger votre moniteur Synthétique pour obtenir des informations sur l'état actuel de vos données ou des détails sur la configuration du moniteur. De nombreuses configurations de moniteur sont affichées sous forme de balise.
{ actor { entitySearch(query: "domain = 'SYNTH' AND type = 'MONITOR'") { results { entities { ... on SyntheticMonitorEntityOutline { guid name accountId monitorType tags { key values } } } } } }}
Vous pouvez requêter votre site privé :
{ actor { entitySearch(query: "domain = 'SYNTH' AND type = 'PRIVATE_LOCATION'") { results { entities { accountId guid name tags { key values } } } } }}
Qequête existante moniteur temps d'arrêt. les détails de configuration sont stockés dans la balise.
{ actor { entitySearch(query: "domain = 'SYNTH' AND type = 'MONITOR_DOWNTIME'") { results { entities { accountId guid name tags { key values } } } } }}
L'interrogation des informations d'identification sécurisées vous permet de récupérer uniquement les métadonnées, mais pas les valeurs d'informations d'identification elles-mêmes :
{ actor { entitySearch(query: "domain = 'SYNTH' AND type = 'SECURE_CRED'") { results { entities { ... on SecureCredentialEntityOutline { accountId guid name tags { key values } updatedAt } } } } }}
Récupérer le script utilisé dans une API scriptée ou un moniteur de navigateur scripté. D’autres types de moniteurs renverront une erreur.
{ actor { account(id: ACCOUNT_ID) { synthetics { script(monitorGuid: "ENTITY_GUID") { text } } } }}
Récupérer les étapes configurées pour un moniteur d'étapes. D’autres types de moniteurs renverront une erreur.
{ actor { account(id: ACCOUNT_ID) { synthetics { steps(monitorGuid: "ENTITY_GUID") { ordinal type values } } } }}
Récupérez le GUID d’entité pour un moniteur Synthétique à l’aide de l’ID du moniteur.
{ actor { entitySearch(query: "(domainId = 'MONITOR_ID')") { results { entities { ... on SyntheticMonitorEntityOutline { guid name monitorId } } } } }}
Récupérez l'état de tous les tests de mise à niveau d'exécution pour le moniteur d'exécution legacy . Ces tests renseignent l'UI des mises à niveau d'exécution. Le résultat du test est stocké dans la tag validationStatus
. Si le test de mise à niveau a échoué, le message d'erreur est disponible dans la tag validationError
.
{ actor { entitySearch(query: "domain = 'SYNTH' AND type = 'RUNTIME_VALIDATION'") { results { entities { accountId guid name tags { key values } } } } }}
Récupérer l’état d’un test de mise à niveau d’exécution pour un seul moniteur d’exécution legacy . Ces résultats de test renseignent l’UI des mises à niveau d’exécution. Le résultat du test est stocké dans la tag validationStatus
. Si le test de mise à niveau a échoué, le message d'erreur est disponible dans la tag validationError
.
{ actor { entitySearch( query: "domain = 'SYNTH' AND type = 'RUNTIME_VALIDATION' AND domainId = 'MONITOR_ID'" ) { results { entities { accountId guid name tags { key values } } } } }}
Créez votre moniteur Synthétique
Vous trouverez ci-dessous quelques exemples de requests pour automatiser la création de votre moniteur Synthétique.
Conseil
Incluez l’objet d’exécution qui inclut runtimeType
, runtimeTypeVersion
et scriptLanguage
pour utiliser un environnement d’exécution plus récent. N'incluez pas l'objet d'exécution et ces attributs pour continuer à utiliser un environnement d'exécution legacy .
Important
À compter du 26 août 2024, vous ne pouvez plus créer de nouveaux moniteurs à l'aide legacy runtimes sur des sites publics ou privés. Le 22 octobre 2024, nous mettrons fin à la vie des versions conteneurisées subordonnées privées (appels par minute) et legacy versions synthétiques du runtime.
- Pour un emplacement public, utilisez l'UI de mise à niveau de l'environnement d'exécution pour mettre à jour votre moniteur avec les environnements d'exécution les plus récents.
- Pour les sites privés, veuillez consulter nos étapes de migration recommandées pour éviter la dégradation du moniteur.
Le moniteur Ping vérifie que votre application est en cours d'exécution. Voici un exemple de création d'un dans NerdGraph :
mutation { syntheticsCreateSimpleMonitor( accountId: ACCOUNT_ID monitor: { locations: { public: ["LOCATION_1", "LOCATION_2"] } name: "YOUR_MONITOR_NAME" period: PERIOD status: STATUS uri: "MONITORED_URI" advancedOptions: { customHeaders: { name: "HEADER_NAME", value: "HEADER_VALUE" } redirectIsFailure: REDIRECT_IS_FAILURE responseValidationText: "VALIDATION_TEXT" shouldBypassHeadRequest: BYPASS_HEAD_REQUEST useTlsValidation: TLS_VALIDATION } apdexTarget: APDEX_TARGET } ) { errors { description type } }}
Un simple moniteur de navigateur utilise l'instance Chrome pour imiter les visites des clients. Voici un exemple de création d'un dans NerdGraph :
mutation { syntheticsCreateSimpleBrowserMonitor( accountId: ACCOUNT_ID monitor: { browsers: [BROWSERS] devices: [DEVICES] locations: { public: ["LOCATION_1", "LOCATION_2"] } name: "YOUR_MONITOR_NAME" period: PERIOD runtime: { runtimeType: "RUNTIME_TYPE" runtimeTypeVersion: "RUNTIME_TYPE_VERSION" scriptLanguage: "SCRIPT_LANGUAGE" } status: STATUS uri: "MONITORED_URI" advancedOptions: { customHeaders: { name: "HEADER_NAME", value: "HEADER_VALUE" } enableScreenshotOnFailureAndScript: ENABLE_SCREENSHOT responseValidationText: "VALIDATION_TEXT" useTlsValidation: TLS_VALIDATION } apdexTarget: APDEX_TARGET } ) { errors { description type } }}
moniteur de navigateur scripté sont des interactions plus complexes avec vos pages et votre application. Voici un exemple de création d'un dans NerdGraph :
mutation { syntheticsCreateScriptBrowserMonitor( accountId: ACCOUNT_ID monitor: { browsers: [BROWSERS] devices: [DEVICES] locations: { public: ["LOCATION_1", "LOCATION_2"] } name: "MONITOR_NAME" period: PERIOD runtime: { runtimeType: "RUNTIME_TYPE" runtimeTypeVersion: "RUNTIME_TYPE_VERSION" scriptLanguage: "SCRIPT_LANGUAGE" } script: "SCRIPT_CONTENT" status: STATUS advancedOptions: { enableScreenshotOnFailureAndScript: ENABLE_SCREENSHOT } apdexTarget: APDEX_TARGET } ) { errors { description type } }}
Le moniteur API scripté vérifie vos points de terminaison d'API. Voici un exemple de création d'un dans NerdGraph :
mutation { syntheticsCreateScriptApiMonitor( accountId: ACCOUNT_ID monitor: { locations: { public: ["LOCATION_1", "LOCATION_2"] } name: "YOUR_MONITOR_NAME" period: PERIOD runtime: { runtimeType: "RUNTIME_TYPE" runtimeTypeVersion: "RUNTIME_TYPE_VERSION" scriptLanguage: "SCRIPT_LANGUAGE" } script: "SCRIPT_CONTENT" status: STATUS apdexTarget: APDEX_TARGET } ) { errors { description type } }}
Step Monitorer fournit un moniteur sans code basé sur un navigateur multi-étapes. Voici un exemple de création d'un dans NerdGraph :
mutation { syntheticsCreateStepMonitor( accountId: ACCOUNT_ID monitor: { browsers: [BROWSERS] devices: [DEVICES] locations: { public: ["LOCATION_1", "LOCATION_2"] } name: "MONITOR_NAME" period: PERIOD runtime: { runtimeType: "RUNTIME_TYPE" runtimeTypeVersion: "RUNTIME_TYPE_VERSION" scriptLanguage: "SCRIPT_LANGUAGE" } status: STATUS steps: [ { ordinal: 0, type: NAVIGATE, values: ["MONITORED_URI", "USER_AGENT"] } { ordinal: STEP_NUMBER type: STEP_TYPE values: ["CONDITIONAL_TYPE", "VALUE"] } ] advancedOptions: { enableScreenshotOnFailureAndScript: ENABLE_SCREENSHOT } apdexTarget: APDEX_TARGET } ) { errors { description type } }}
Configurez le moniteur pour vous avertir lorsque vos certificats SSL sont sur le point d'expirer. Voici un exemple de création d'un dans NerdGraph :
mutation { syntheticsCreateCertCheckMonitor( accountId: ACCOUNT_ID monitor: { domain: "DOMAIN" locations: { public: ["LOCATION_1", "LOCATION_2"] } name: "YOUR_MONITOR_NAME" numberDaysToFailBeforeCertExpires: DAYS_UNTIL_EXPIRATION period: PERIOD status: STATUS apdexTarget: APDEX_TARGET } ) { errors { description type } }}
Le moniteur de liens brisés vérifie les liens sur une page Web pour détecter les échecs. Voici un exemple de création d'un dans NerdGraph :
mutation { syntheticsCreateBrokenLinksMonitor( accountId: ACCOUNT_ID monitor: { locations: { public: ["LOCATION_1", "LOCATION_2"] } name: "YOUR_MONITOR_NAME" period: PERIOD status: STATUS apdexTarget: APDEX_TARGET uri: "MONITOR_URI" tags: { key: "YOUR_TAG_NAME", values: "TAG_VALUE" } } ) { errors { description type } }}
Mettez à jour votre moniteur Synthétique
Bien que vous ne puissiez pas modifier le type de moniteur après l'avoir créé, vous pouvez mettre à jour ses paramètres. Seuls le GUID et les paramètres qui doivent être mis à jour sont requis dans le cadre de la demande.
Conseil
Incluez l’objet d’exécution qui inclut runtimeType, runtimeTypeVersion et scriptLanguage pour mettre à niveau un moniteur afin d’utiliser un runtime plus récent. Incluez cet objet et définissez ces attributs sur une chaîne vide pour rétrograder vers un environnement d'exécution legacy . N'incluez pas cet objet et ces attributs pour continuer à utiliser un environnement d'exécution legacy .
Utilisez ceci pour mettre à jour votre moniteur de ping :
mutation { syntheticsUpdateSimpleMonitor( guid: "ENTITY_GUID" monitor: { locations: { public: ["LOCATION_1", "LOCATION_2"] } name: "YOUR_MONITOR_NAME" period: PERIOD status: STATUS uri: "MONITORED_URI" advancedOptions: { customHeaders: { name: "HEADER_NAME", value: "HEADER_VALUE" } redirectIsFailure: REDIRECT_IS_FAILURE responseValidationText: "VALIDATION_TEXT" shouldBypassHeadRequest: BYPASS_HEAD_REQUEST useTlsValidation: TLS_VALIDATION } apdexTarget: APDEX_TARGET } ) { errors { description type } }}
Pour mettre à jour un simple outil de monitoring de navigateur (y compris la possibilité de mettre à niveau la version d'exécution), utilisez ceci :
mutation { syntheticsUpdateSimpleBrowserMonitor( guid: ENTITY_GUID monitor: { browsers: [BROWSERS] devices: [DEVICES] locations: { public: ["LOCATION_1", "LOCATION_2"] } name: "YOUR_MONITOR_NAME" period: PERIOD runtime: { runtimeType: "RUNTIME_TYPE" runtimeTypeVersion: "RUNTIME_TYPE_VERSION" scriptLanguage: "SCRIPT_LANGUAGE" } status: STATUS uri: "MONITORED_URI" advancedOptions: { customHeaders: { name: "HEADER_NAME", value: "HEADER_VALUE" } enableScreenshotOnFailureAndScript: ENABLE_SCREENSHOT responseValidationText: "VALIDATION_TEXT" useTlsValidation: TLS_VALIDATION } apdexTarget: APDEX_TARGET } ) { errors { description type } }}
Pour mettre à jour un moniteur de navigateur scripté (y compris la possibilité de mettre à niveau la version d'exécution), utilisez ceci :
mutation { syntheticsUpdateScriptBrowserMonitor( guid: ENTITY_GUID monitor: { browsers: [BROWSERS] devices: [DEVICES] locations: { public: ["LOCATION_1", "LOCATION_2"] } name: "MONITOR_NAME" period: PERIOD runtime: { runtimeType: "RUNTIME_TYPE" runtimeTypeVersion: "RUNTIME_TYPE_VERSION" scriptLanguage: "SCRIPT_LANGUAGE" } script: "SCRIPT_CONTENT" status: STATUS advancedOptions: { enableScreenshotOnFailureAndScript: ENABLE_SCREENSHOT } apdexTarget: APDEX_TARGET } ) { errors { description type } }}
Pour mettre à jour un moniteur API scripté (y compris la possibilité de mettre à niveau la version d'exécution), utilisez ceci :
mutation { syntheticsUpdateScriptApiMonitor( guid: ENTITY_GUID monitor: { locations: { public: ["LOCATION_1", "LOCATION_2"] } name: "YOUR_MONITOR_NAME" period: PERIOD runtime: { runtimeType: "RUNTIME_TYPE" runtimeTypeVersion: "RUNTIME_TYPE_VERSION" scriptLanguage: "SCRIPT_LANGUAGE" } script: "SCRIPT_CONTENT" status: STATUS apdexTarget: APDEX_TARGET } ) { errors { description type } }}
Utilisez ceci pour mettre à jour un moniteur d'étapes :
mutation { syntheticsUpdateStepMonitor( guid: ENTITY_GUID monitor: { browsers: [BROWSERS] devices: [DEVICES] locations: { public: ["LOCATION_1", "LOCATION_2"] } name: "MONITOR_NAME" period: PERIOD runtime: { runtimeType: "RUNTIME_TYPE" runtimeTypeVersion: "RUNTIME_TYPE_VERSION" scriptLanguage: "SCRIPT_LANGUAGE" } status: STATUS steps: [ { ordinal: 0, type: NAVIGATE, values: ["MONITORED_URI", "USER_AGENT"] } { ordinal: STEP_NUMBER type: STEP_TYPE values: ["VALUE_1", "VALUE_2"] } ] advancedOptions: { enableScreenshotOnFailureAndScript: ENABLE_SCREENSHOT } apdexTarget: APDEX_TARGET } ) { errors { description type } }}
Utilisez ceci pour mettre à jour un moniteur de vérification de certificat :
mutation { syntheticsUpdateCertCheckMonitor( guid: ENTITY_GUID monitor: { domain: "DOMAIN" locations: { public: ["LOCATION_1", "LOCATION_2"] } name: "YOUR_MONITOR_NAME" numberDaysToFailBeforeCertExpires: DAYS_UNTIL_EXPIRATION period: PERIOD status: STATUS apdexTarget: APDEX_TARGET } ) { errors { description type } }}
Utilisez ceci pour mettre à jour un moniteur de liens brisés :
mutation { syntheticsUpdateBrokenLinksMonitor( guid: ENTITY_GUID monitor: { locations: { public: ["LOCATION_1", "LOCATION_2"] } name: "YOUR_MONITOR_NAME" period: PERIOD status: STATUS apdexTarget: APDEX_TARGET uri: "MONITOR_URI" tags: { key: "YOUR_TAG_NAME", values: "TAG_VALUE" } } ) { errors { description type } }}
Vous pouvez utiliser l'exemple ci-dessous pour mettre à jour un navigateur simple, une API scriptée ou un moniteur de navigateur scripté vers les nouveaux environnements d'exécution Chrome 100+ ou Node.js 16.10. L'exemple suivant met à niveau un moniteur de navigateur scripté vers le nouveau runtime à partir du legacy runtime.
Pour mettre à jour un simple moniteur de navigateur en utilisant l'exemple ci-dessous, changez la mutation en
syntheticsUpdateSimpleBrowserMonitor
au lieu desyntheticsUpdateScriptBrowserMonitor
.Pour mettre à jour un moniteur API scripté à l'aide de l'exemple ci-dessous, modifiez la mutation en
syntheticsUpdateScriptApiMonitor
au lieu desyntheticsUpdateScriptBrowserMonitor
.Consultez les champs facultatifs pour plus de détails sur les paramètres d'exécution.
mutation {syntheticsUpdateScriptBrowserMonitor(guid: "ENTITY_GUID"monitor: {runtime: {runtimeType: "RUNTIME_TYPE"runtimeTypeVersion: "RUNTIME_TYPE_VERSION"scriptLanguage: "SCRIPT_LANGUAGE"}}) {errors {descriptiontype}}}
Vous pouvez utiliser l'exemple ci-dessous pour mettre à jour un navigateur simple, API scriptée ou un moniteur de navigateur scripté pour utiliser un environnement d'exécution legacy avant la fin de vie du 22 octobre 2024. L'exemple suivant rétrograde un moniteur de navigateur scripté vers l'environnement d'exécution legacy à partir du nouveau.
Pour mettre à jour un simple moniteur de navigateur en utilisant l'exemple ci-dessous, changez la mutation en
syntheticsUpdateSimpleBrowserMonitor
au lieu desyntheticsUpdateScriptBrowserMonitor
.Pour mettre à jour un moniteur API scripté à l'aide de l'exemple ci-dessous, modifiez la mutation en
syntheticsUpdateScriptApiMonitor
au lieu desyntheticsUpdateScriptBrowserMonitor
.Consultez les champs facultatifs pour plus de détails sur les paramètres d'exécution.
mutation {syntheticsUpdateScriptBrowserMonitor(guid: "ENTITY_GUID"monitor: {runtime: { runtimeType: "", runtimeTypeVersion: "", scriptLanguage: "" }}) {errors {descriptiontype}}}
Utilisez la mutation suivante pour déplacer un moniteur d'API scripté entre un site privé compatible VSE. Assurez-vous d'inclure le script pour régénérer les HMAC :
mutation { syntheticsUpdateScriptApiMonitor( guid: "ENTITY_GUID" monitor: { locations: { private: [{ guid: "LOCATION_GUID", vsePassword: "YOUR_VSE_PASSWORD" }] } script: "SCRIPT_CONTENT" } ) { errors { description type } monitor { status } }}
Supprimer un moniteur Synthétique
Utilisez ces scripts pour supprimer votre moniteur :
Supprimez un moniteur à l’aide du GUID de l’entité du moniteur.
mutation { syntheticsDeleteMonitor(guid: "ENTITY_GUID") { deletedGuid }}
Gérez votre site privé
Un site privé vous permet de monitorer les applications derrière votre pare-feu. Lorsque vous créez un site privé, vous installez et configurez un serveur privé pour exécuter le moniteur attribué à ce site privé.
mutation { syntheticsCreatePrivateLocation( accountId: ACCOUNT_ID name: "PrivateLocationName" description: "Optional description" shared: true verifiedScriptExecution: false ) { guid errors { description type } }}
Si un emplacement est partagé et utilisé par d'autres comptes de votre organisation pour exécuter le moniteur Synthétique, vous ne pouvez pas annuler le partage de ce site privé tant que ces moniteurs ne sont pas désactivés.
mutation { syntheticsUpdatePrivateLocation( shared: false guid: ENTITY_GUID description: "EnterYourDescription" verifiedScriptExecution: true ) { description verifiedScriptExecution errors { description type } }}
mutation { syntheticsDeletePrivateLocation(guid: ENTITY_GUID) { errors { description type } }}
Si vous avez besoin de supprimer un arriéré difficile à gérer, utilisez ceci :
mutation { syntheticsPurgePrivateLocationQueue(guid: ENTITY_GUID) { errors { description type } }}
Gérez vos identifiants sécurisés
Vous utilisez des informations d'identification sécurisées lors du stockage, de la protection et de la gestion centralisée des informations protégées utilisées par votre moniteur, comme les mots de passe, la clé API ou les certificats codés. L'utilisation de NerdGraph vous permet de modifier par programmation les valeurs de vos informations d'identification sécurisées si vous devez réinitialiser des informations d'identification pour une raison quelconque.
mutation { syntheticsCreateSecureCredential( accountId: ACCOUNT_ID description: "YourOptionalDescription" key: SECURE_CREDENTIAL_NAME value: SECURE_CREDENTIAL_VALUE ) { errors { description } }}
mutation { syntheticsUpdateSecureCredential( accountId: ACCOUNT_ID description: "YourOptionalDescription" key: SECURE_CREDENTIAL_NAME value: SECURE_CREDENTIAL_VALUE ) { createdAt lastUpdate errors { description } }}
mutation { syntheticsDeleteSecureCredential( accountId: ACCOUNT_ID key: SECURE_CREDENTIAL_NAME ) { errors { description } }}
Gérer le temps d'arrêt de votre moniteur
Le moniteur temps d'arrêt vous permet de spécifier les heures auxquelles vos Synthetics doivent cesser de fonctionner. Nous avons fourni différents extraits qui montrent comment planifier les temps d'arrêt du moniteur pour vos synthétiques. Vous devez mettre à jour ces extraits pour spécifier le fuseau horaire, les heures de début et de fin. Pour en savoir plus sur le moment où vous pouvez programmer des temps d'arrêt de la monitoring, consultez notre document Désactiver monitoring pendant les heures de maintenance programmées. Pour trouver les valeurs de fuseau horaire, consultez la base de données tz des fuseaux horaires. Par exemple, America/Los Angeles utiliserait l'abréviation PDT.
mutation { syntheticsCreateOnceMonitorDowntime( accountId: ACCOUNT_ID name: "MonitorDowntimeName" monitorGuids: ["OptionalMonitorEntityGuid", "OptionalMonitorEntityGuid"] timezone: "TIMEZONE" startTime: "yyyy-MM-ddTHH:mm:ss" endTime: "yyyy-MM-ddTHH:mm:ss" ) { guid accountId name monitorGuids timezone startTime endTime }}
mutation { syntheticsCreateDailyMonitorDowntime( accountId: ACCOUNT_ID name: "MonitorDowntimeName" monitorGuids: [ "OptionalMonitorEntityGuid" "AnotherOptionalMonitorEntityGuid" ] timezone: "TIMEZONE" startTime: "yyyy-MM-ddTHH:mm:ss" endTime: "yyyy-MM-ddTHH:mm:ss" endRepeat: { onDate: "yyyy-MM-ddTHH:mm:ss", onRepeat: Int } ) { guid accountId name monitorGuids timezone startTime endTime endRepeat { onDate onRepeat } }}
mutation { syntheticsCreateWeeklyMonitorDowntime( accountId: ACCOUNT_ID name: "MonitorDowntimeName" monitorGuids: [ "OptionalMonitorEntityGuid" "AnotherOptionalMonitorEntityGuid" ] timezone: "TIMEZONE" startTime: "yyyy-MM-ddTHH:mm:ss" endTime: "yyyy-MM-ddTHH:mm:ss" endRepeat: { onDate: "yyyy-MM-ddTHH:mm:ss", onRepeat: Int } maintenanceDays: [WeekDaysEnums] ) { guid accountId name monitorGuids timezone startTime endTime endRepeat { onDate onRepeat } maintenanceDays }}
mutation { syntheticsCreateMonthlyMonitorDowntime( accountId: ACCOUNT_ID name: "MonitorDowntimeName" monitorGuids: [ "OptionalMonitorEntityGuid" "AnotherOptionalMonitorEntityGuid" ] timezone: "TIMEZONE" startTime: "yyyy-MM-ddTHH:mm:ss" endTime: "yyyy-MM-ddTHH:mm:ss" endRepeat: { onDate: "yyyy-MM-ddTHH:mm:ss", onRepeat: Int } frequency: { daysOfWeek: { weekDay: WeekDaysEnum ordinalDayOfMonth: DayOfMonthOrdinal } daysOfMonth: [Int] } ) { guid accountId name monitorGuids timezone startTime endTime endRepeat { onDate onRepeat } frequency { daysOfWeek { weekDay ordinalDayOfMonth } daysOfMonth } }}
mutation { syntheticsEditMonitorDowntime ( guid: "MonitorDowntimeEntityGuid", name: "MONITOR_DOWNTIME_NAME", monitorGuids: ["OptionalMonitorEntityGuid", "AnotherOptionalMonitorEntityGuid"], once: { timezone: "TIMEZONE", startTime: "yyyy-MM-ddTHH:mm:ss", endTime: "yyyy-MM-ddTHH:mm:ss" }, daily: { timezone: "TIMEZONE", startTime: "yyyy-MM-ddTHH:mm:ss", endTime: "yyyy-MM-ddTHH:mm:ss", endRepeat: { onDate: "yyyy-MM-ddTHH:mm:ss", onRepeat: Int } }, weekly: { timezone: "TIMEZONE", startTime: "yyyy-MM-ddTHH:mm:ss", endTime: "yyyy-MM-ddTHH:mm:ss", endRepeat: { onDate: "yyyy-MM-ddTHH:mm:ss", onRepeat: Int }, maintenanceDays: [WeekDaysEnums] }, monthly: { timezone: "TIMEZONE", startTime: "yyyy-MM-ddTHH:mm:ss", endTime: "yyyy-MM-ddTHH:mm:ss", endRepeat: { onDate: "yyyy-MM-ddTHH:mm:ss", onRepeat: Int }, frequency: { daysOfWeek: { weekDay: WeekDaysEnum, ordinalDayOfMonth: DayOfMonthOrdinal }, daysOfMonth: [Int] } ) { guid, accountId, name, monitorGuids, timezone, startTime, endTime, endRepeat { onDate, onRepeat }, maintenanceDays, frequency { daysOfWeek { weekDay, ordinalDayOfMonth }, daysOfMonth } }}
mutation { syntheticsDeleteMonitorDowntime(guid: DOWNTIME_ENTITY_GUID) { guid }}