NerdGraph API를 사용 하면 합성 모니터, 개인 위치, 보안 자격 증명 및 모니터 가동 중지 시간 의 생성, 업데이트 또는 삭제를 자동화할 수 있습니다.
요구 사항
요구 사항은 다음과 같습니다.
- 일반 NerdGraph 요구 사항
- 관련 사용자 권한: NerdGraph 사용에 적용되는 합성 UI 사용에 적용되는 동일한 합성 모니터링 권한
NerdGraph 탐색기의 필드 이해
NerdGraph 탐색기 에서 필드 정의를 볼 수 있지만 LOCATION , PERIOD , TAGS 및 기타 필드를 더 잘 이해하는 데 도움이 될 수 있습니다.
하나 이상의 브라우저 유형을 사용하도록 간단한 브라우저, 스크립트 브라우저 및 단계 모니터를 구성합니다. Chrome 72 컴파일러 런타임을 사용하는 경우 이 속성을 포함하지 마세요. 예시:
[CHROME]크롬만 사용하세요[FIREFOX]Firefox만 사용하세요[CHROME, FIREFOX]크롬과 파이어폭스를 사용하려면
하나 이상의 에뮬레이트된 장치 유형을 사용하도록 간단한 브라우저, 스크립트 브라우저 및 단계 모니터를 구성합니다. Chrome 72 컴파일러 런타임을 사용하는 경우 이 속성을 포함하지 마세요. 예시:
[DESKTOP][MOBILE_LANDSCAPE][MOBILE_PORTRAIT][TABLET_LANDSCAPE][TABLET_PORTRAIT]여러 개의 에뮬레이트된 장치 설정을 단일 모니터에서 사용할 수 있습니다.
[DESKTOP, MOBILE_PORTRAIT, TABLET_LANDSCAPE]
PERIOD 속성은 모니터가 실행되는 시간 간격을 정의합니다. 간격을 정의하려면 다음 형식을 사용하십시오.
EVERY_MINUTE1분마다.EVERY_N_MINUTES, 여기서 'N'은 분입니다. 지원되는 값은EVERY_5_MINUTES,EVERY_10_MINUTES,EVERY_15_MINUTES및EVERY_30_MINUTES입니다.EVERY_HOUR매시간.EVERY_N_HOURS, 여기서 'N'은 시간입니다. 지원되는 값은EVERY_6_HOURS및EVERY_12_HOURS입니다.EVERY_DAY하루에 한 번.
태그는 선택 사항입니다. 모니터 생성 중 또는 나중에 NerdGraph 또는 UI에서 태깅 호출을 사용하여 태그를 추가할 수 있습니다. 키와 값이 포함된 배열을 사용하여 단일 돌연변이 호출에 여러 태그를 추가할 수 있습니다.
일부 필드는 고급 구성을 위한 것입니다. 이는 선택 사항입니다.
핑 모니터 의 경우 다음이 포함됩니다.
HEADER_NAME: 요청에 표시되는 사용자 정의 헤더 이름입니다.HEADER_VALUE: 요청의 사용자 정의 헤더 값입니다.REDIRECT_IS_FAILURE: 모니터가 리디렉션되면 오류가 보고됩니다.VALIDATION_TEXT: 이 텍스트가 모니터의 응답에 포함되지 않으면 실패를 반환합니다.TLS_VALIDATION: SSL 인증서 체인의 유효성을 확인합니다.BYPASS_HEAD_REQUEST: 초기 HEAD 요청을 우회하고 대신 GET 요청을 만듭니다.단순 브라우저 모니터 의 경우:
RUNTIME_TYPE: 모니터에서 사용하는 런타임 유형입니다. "CHROME_BROWSER"는 유일하게 허용되는 값입니다.RUNTIME_TYPE_VERSION: 모니터에서 사용되는 런타임 유형 버전입니다. "100"만 허용되는 값입니다.SCRIPT_LANGUAGE: 모니터에서 사용되는 언어입니다. "JAVASCRIPT"만 허용되는 값입니다.스크립팅된 API 모니터의 경우:
SCRIPT_CONTENT: 스크립트의 실제 내용입니다. 이는 based64로 인코딩되어서는 안 됩니다.RUNTIME_TYPE: 모니터에서 사용하는 런타임 유형입니다. "NODE_API"는 유일하게 허용되는 값입니다.RUNTIME_TYPE_VERSION: 모니터에서 사용되는 런타임 유형 버전입니다. 허용되는 유일한 값은16.10입니다.SCRIPT_LANGUAGE: 모니터에서 사용되는 언어입니다. "JAVASCRIPT"만 허용되는 값입니다.스크립팅된 브라우저 모니터의 경우:
SCRIPT_CONTENT: 스크립트의 실제 내용입니다. 이는 based64로 인코딩되어서는 안 됩니다.RUNTIME_TYPE: 모니터에서 사용하는 런타임 유형입니다. "CHROME_BROWSER"는 유일하게 허용되는 값입니다.RUNTIME_TYPE_VERSION: 모니터에서 사용되는 런타임 유형 버전입니다. "100"만 허용되는 값입니다.SCRIPT_LANGUAGE: 모니터에서 사용되는 언어입니다. "JAVASCRIPT"만 허용되는 값입니다.스텝 모니터 의 경우:
RUNTIME_TYPE: 모니터에서 사용하는 런타임 유형입니다. "CHROME_BROWSER"는 유일하게 허용되는 값입니다.RUNTIME_TYPE_VERSION: 모니터에서 사용되는 런타임 유형 버전입니다. "100"만 허용되는 값입니다.SCRIPT_LANGUAGE: 모니터에서 사용되는 언어입니다. "JAVASCRIPT"만 허용되는 값입니다.인증서 확인 모니터 의 경우:
DAYS_UNTIL_EXPIRATION: 인증서를 업데이트해야 할 때 알려줍니다. 예를 들어 인증서 만료 30일 전 공지를 원할 경우 30을 입력합니다.RUNTIME_TYPE: 모니터에서 사용하는 런타임 유형입니다. "NODE_API"는 유일하게 허용되는 값입니다.RUNTIME_TYPE_VERSION: 모니터에서 사용되는 런타임 유형 버전입니다. 허용되는 유일한 값은16.10입니다.SCRIPT_LANGUAGE: 모니터에서 사용되는 언어입니다. "JAVASCRIPT"만 허용되는 값입니다.끊어진 링크 모니터 의 경우:
RUNTIME_TYPE: 모니터에서 사용하는 런타임 유형입니다. "NODE_API"는 유일하게 허용되는 값입니다.RUNTIME_TYPE_VERSION: 모니터에서 사용되는 런타임 유형 버전입니다. 허용되는 유일한 값은16.10입니다.SCRIPT_LANGUAGE: 모니터에서 사용되는 언어입니다. "JAVASCRIPT"만 허용되는 값입니다.모든 모니터의 경우:
APDEX_TARGET: SLA 보고서를 작성하는 데 사용되는 모니터의 Apdex 부분, 목표입니다. 기본값은 7초(7000ms)입니다.
쿼리를 사용하여 데이터 검색
쿼리는 데이터 가져오기를 요청합니다. 합성 엔터티에 사용할 수 있는 추가 쿼리 기능을 알아 보려면 NerdGraph 엔터티 API 자습서 를 확인하세요.
신세틱스 모니터를 조회하여 데이터에 대한 현재 상태 정보나 모니터 설정에 대한 세부정보를 얻을 수 있습니다. 많은 모니터 설정이 태그로 표시됩니다.
{ actor { entitySearch(query: "domain = 'SYNTH' AND type = 'MONITOR'") { results { entities { ... on SyntheticMonitorEntityOutline { guid name accountId monitorType tags { key values } } } } } }}개인 위치를 쿼리할 수 있습니다.
{ actor { entitySearch(query: "domain = 'SYNTH' AND type = 'PRIVATE_LOCATION'") { results { entities { accountId guid name tags { key values } } } } }}기존 모니터 다운타임을 쿼리합니다. 설정 세부정보는 태그에 저장됩니다.
{ actor { entitySearch(query: "domain = 'SYNTH' AND type = 'MONITOR_DOWNTIME'") { results { entities { accountId guid name tags { key values } } } } }}보안 자격 증명을 쿼리하면 메타데이터만 검색할 수 있지만 자격 증명 값 자체는 검색할 수 없습니다.
{ actor { entitySearch(query: "domain = 'SYNTH' AND type = 'SECURE_CRED'") { results { entities { ... on SecureCredentialEntityOutline { accountId guid name tags { key values } updatedAt } } } } }}스크립팅된 API 또는 스크립팅된 브라우저 모니터에서 사용된 스크립트를 검색합니다. 다른 모니터 유형은 오류를 반환합니다.
{ actor { account(id: ACCOUNT_ID) { synthetics { script(monitorGuid: "ENTITY_GUID") { text } } } }}단계 모니터에 대해 구성된 단계를 검색합니다. 다른 모니터 유형은 오류를 반환합니다.
{ actor { account(id: ACCOUNT_ID) { synthetics { steps(monitorGuid: "ENTITY_GUID") { ordinal type values } } } }}모니터 ID를 사용하여 합성 모니터에 대한 엔터티 GUID를 검색합니다.
{ actor { entitySearch(query: "(domainId = 'MONITOR_ID')") { results { entities { ... on SyntheticMonitorEntityOutline { guid name monitorId } } } } }}구형 런타임 모니터에 대한 모든 런타임 업그레이드 테스트 상태를 검색합니다. 이러한 테스트는 런타임 업그레이드 UI를 채웁니다. 테스트 결과는 validationStatus 태그에 저장됩니다. 업그레이드 테스트가 실패한 경우 validationError 태그에서 오류 메시지를 볼 수 있습니다.
{ actor { entitySearch(query: "domain = 'SYNTH' AND type = 'RUNTIME_VALIDATION'") { results { entities { accountId guid name tags { key values } } } } }}단일 구형 런타임 모니터에 대한 런타임 업그레이드 테스트 상태를 검색합니다. 이러한 테스트 결과는 런타임 업그레이드 UI를 채웁니다. 테스트 결과는 validationStatus 태그에 저장됩니다. 업그레이드 테스트가 실패한 경우 validationError 태그에서 오류 메시지를 볼 수 있습니다.
{ actor { entitySearch( query: "domain = 'SYNTH' AND type = 'RUNTIME_VALIDATION' AND domainId = 'MONITOR_ID'" ) { results { entities { accountId guid name tags { key values } } } } }}합성 모니터 만들기
다음은 합성 모니터 생성을 자동화하기 위한 몇 가지 샘플 요청입니다.
팁
최신 런타임을 사용하려면 runtimeType , runtimeTypeVersion 및 scriptLanguage 가 포함된 런타임 객체를 포함합니다. 레거시 런타임을 계속 사용하려면 런타임 개체 및 이러한 특성을 포함하지 마십시오.
중요
2024년 8월 26일부터 공개 또는 위치 위치에서 구형 런타임을 사용하여 새 모니터를 생성할 수 없습니다. 2024년 10월 22일부로 컨테이너화된 미니언(분당 호출 수) 및 구형 신세틱스 손잡이 버전이 종료됩니다 .
- 표시 위치의 경우 런타임 업그레이드 UI 사용하여 모니터를 최신 런타임으로 업데이트하세요.
- 위치 위치의 경우 모니터 성능 저하를 방지하기 위해 권장되는 마이그레이션 단계를 검토하십시오.
Ping 모니터는 애플리케이션이 실행 중인지 확인합니다. 다음은 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 } }}단순 브라우저 모니터는 Chrome 인스턴스를 사용하여 고객 방문을 모방합니다. 다음은 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 } }}스크립팅된 브라우저 모니터 는 페이지 및 애플리케이션과의 보다 복잡한 상호 작용입니다. 다음은 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 } }}스크립팅된 API 모니터는 API 엔드포인트를 확인합니다. 다음은 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 } }}단계 모니터는 코드가 없는 다단계 브라우저 기반 모니터를 제공합니다. 다음은 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 } }}SSL 인증서가 만료되려고 할 때 이를 알리도록 모니터를 설정하십시오. 다음은 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 } }}깨진 링크 모니터는 웹 페이지의 링크에 오류가 있는지 확인합니다. 다음은 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 } }}합성 모니터 업데이트
모니터 유형을 생성한 후에는 변경할 수 없지만 설정을 업데이트할 수 있습니다. 업데이트가 필요한 guid와 설정만 요청의 일부로 필요합니다.
팁
새 런타임을 사용하도록 모니터를 업그레이드하려면 runtimeType, runtimeTypeVersion 및 scriptLanguage를 포함하는 런타임 개체를 포함합니다. 레거시 런타임으로 다운그레이드하려면 이 객체를 포함하고 이러한 속성을 빈 문자열로 설정하십시오. 레거시 런타임을 계속 사용하려면 이 개체와 이러한 속성을 포함하지 마십시오.
이것을 사용하여 핑 모니터를 업데이트하십시오.
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 } }}간단한 브라우저 모니터를 업데이트하려면(런타임 버전 업그레이드 기능 포함) 다음을 사용하세요.
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 } }}스크립팅된 브라우저 모니터(런타임 버전 업그레이드 기능 포함)를 업데이트하려면 다음을 사용하십시오.
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 } }}스크립팅된 API 모니터(런타임 버전 업그레이드 기능 포함)를 업데이트하려면 다음을 사용하십시오.
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 } }}이것을 사용하여 단계 모니터를 업데이트하십시오.
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 } }}다음을 사용하여 인증서 확인 모니터를 업데이트합니다.
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 } }}다음을 사용하여 끊어진 링크 모니터를 업데이트합니다.
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 } }}아래 예제를 사용하여 간단한 브라우저, 스크립트 API 또는 스크립트 브라우저 모니터를 새로운 Chrome 100+ 또는 Node.js 16.10 런타임으로 업데이트할 수 있습니다. 다음 예제에서는 스크립팅된 브라우저 모니터를 레거시 런타임에서 새 런타임으로 업그레이드합니다.
아래 예를 사용하여 간단한 브라우저 모니터를 업데이트하려면
syntheticsUpdateScriptBrowserMonitor대신syntheticsUpdateSimpleBrowserMonitor으로 변형을 변경합니다.아래 예를 사용하여 스크립팅된 API 모니터를 업데이트하려면 변형을
syntheticsUpdateScriptBrowserMonitorsyntheticsUpdateScriptApiMonitor으로 변경합니다.런타임 설정에 대한 자세한 내용은 optional-fields 를 확인하세요.
mutation {syntheticsUpdateScriptBrowserMonitor(guid: "ENTITY_GUID"monitor: {runtime: {runtimeType: "RUNTIME_TYPE"runtimeTypeVersion: "RUNTIME_TYPE_VERSION"scriptLanguage: "SCRIPT_LANGUAGE"}}) {errors {descriptiontype}}}
아래 예를 사용하여 간단한 브라우저, 스크립트 API 또는 멀티미디어 브라우저 모니터를 업데이트하여 2024년 10월 22일 EOL 이전의 구형 런타임을 사용할 수 있습니다. 다음 예에서는 멀티미디어 브라우저 모니터를 새 런타임에서 구형 런타임으로 다운그레이드합니다.
아래 예를 사용하여 간단한 브라우저 모니터를 업데이트하려면
syntheticsUpdateScriptBrowserMonitor대신syntheticsUpdateSimpleBrowserMonitor으로 변형을 변경합니다.아래 예를 사용하여 스크립팅된 API 모니터를 업데이트하려면 변형을
syntheticsUpdateScriptBrowserMonitorsyntheticsUpdateScriptApiMonitor으로 변경합니다.런타임 설정에 대한 자세한 내용은 optional-fields 를 확인하세요.
mutation {syntheticsUpdateScriptBrowserMonitor(guid: "ENTITY_GUID"monitor: {runtime: { runtimeType: "", runtimeTypeVersion: "", scriptLanguage: "" }}) {errors {descriptiontype}}}
VSE 지원 배치 위치 간에 스크립트된 API 모니터를 이동하려면 다음 변형을 사용하십시오. HMAC를 다시 생성하려면 스크립트를 포함해야 합니다.
mutation { syntheticsUpdateScriptApiMonitor( guid: "ENTITY_GUID" monitor: { locations: { private: [{ guid: "LOCATION_GUID", vsePassword: "YOUR_VSE_PASSWORD" }] } script: "SCRIPT_CONTENT" } ) { errors { description type } monitor { status } }}합성 모니터 삭제
다음 스크립트를 사용하여 모니터를 삭제하십시오.
모니터 엔터티 GUID를 사용하여 모니터를 삭제합니다.
mutation { syntheticsDeleteMonitor(guid: "ENTITY_GUID") { deletedGuid }}개인 위치 관리
개인 위치 를 사용하면 방화벽 뒤에서 애플리케이션을 모니터링할 수 있습니다. 개인 위치를 생성할 때 개인 미니언을 설치 및 구성하여 해당 개인 위치에 할당된 모니터를 실행합니다.
mutation { syntheticsCreatePrivateLocation( accountId: ACCOUNT_ID name: "PrivateLocationName" description: "Optional description" shared: true verifiedScriptExecution: false ) { guid errors { description type } }}합성 모니터를 실행하기 위해 조직의 다른 계정이 위치를 공유하고 사용하는 경우 해당 모니터가 비활성화될 때까지 이 배치 위치의 공유를 해제할 수 없습니다.
mutation { syntheticsUpdatePrivateLocation( shared: false guid: ENTITY_GUID description: "EnterYourDescription" verifiedScriptExecution: true ) { description verifiedScriptExecution errors { description type } }}mutation { syntheticsDeletePrivateLocation(guid: ENTITY_GUID) { errors { description type } }}다루기 힘든 백로그를 지워야 하는 경우 다음을 사용하십시오.
mutation { syntheticsPurgePrivateLocationQueue(guid: ENTITY_GUID) { errors { description type } }}보안 자격 증명 관리
암호, API 키 또는 인코딩된 인증서와 같이 모니터에서 사용하는 보호된 정보를 저장, 보호 및 중앙에서 관리할 때 보안 자격 증명 을 사용합니다. NerdGraph를 사용하면 어떤 이유로든 자격 증명을 재설정해야 하는 경우 보안 자격 증명의 값을 프로그래밍 방식으로 변경할 수 있습니다.
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 } }}모니터 가동 중지 시간 관리
모니터 다운타임을 사용하면 신세틱스의 실행을 중지해야 하는 시간을 지정할 수 있습니다. 우리는 귀하의 신세틱스에 대한 모니터 다운타임 일정을 예약하는 방법을 보여주는 다양한 스니펫을 제공했습니다. 시간대, 시작 시간, 종료 시간을 지정하려면 이러한 스니펫을 업데이트해야 합니다. 모니터 다운타임을 예약할 수 있는 시기에 대해 자세히 알아보려면 예정된 유지 관리 시간 동안 모니터링 비활성화 문서를 확인하세요. 시간대 값을 찾으려면 시간대의 tz 데이터베이스를 참조하세요. 예를 들어 America/Los Angeles는 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 }}