- 필수 기능
- 시작하기
- Glossary
- 표준 속성
- Guides
- Agent
- 통합
- 개방형텔레메트리
- 개발자
- Administrator's Guide
- API
- Datadog Mobile App
- CoScreen
- Cloudcraft
- 앱 내
- 서비스 관리
- 인프라스트럭처
- 애플리케이션 성능
- APM
- Continuous Profiler
- 스팬 시각화
- 데이터 스트림 모니터링
- 데이터 작업 모니터링
- 디지털 경험
- 소프트웨어 제공
- 보안
- AI Observability
- 로그 관리
- 관리
HTTP 테스트를 사용하면 애플리케이션의 API 엔드포인트에 HTTP 요청을 보내 응답 및 전체 응답 시간, 예상 상태 코드, 헤더 또는 본문 콘텐츠와 같은 정의된 조건을 확인할 수 있습니다.
HTTP 테스트는 네트워크 외부 또는 내부에서 테스트를 실행하려는 기본 설정에 따라 관리 및 비공개 위치에서 실행할 수 있습니다. HTTP 테스트는 일정에 따라, 온디맨드로 또는 CI/CD 파이프라인 내에서 직접 실행할 수 있습니다.
다음 옵션 중 하나를 사용하여 테스트를 생성할 수 있습니다.
템플릿에서 테스트 생성하기:
사전에 채워진 템플릿 중 하나에 마우스를 올리고 템플릿 보기를 클릭합니다. 테스트 세부 정보, 요청 세부 정보, 어설션, 알림 조건 및 모니터링 설정이 포함된, 사전에 채워진 설정 정보가 표시되는 사이드 패널이 열립니다.
+테스트 생성하기를 클릭하면 사전 입력된 설정 옵션을 검토하고 편집할 수 있는 요청 정의 페이지가 열립니다. 표시되는 필드는 테스트 초기 생성 시사용할 수 있는 필드와 동일합니다.
세부 정보 저장을 클릭하여 API 테스트를 제출합니다.
테스트 처음부터 빌드하기:
테스트를 처음부터 빌드하려면 +처음부터 시작 템플릿을 클릭한 다음 HTTP
요청 유형을 선택하고 쿼리할 URL을 지정합니다.
사용 가능한 메소드는 GET
, POST
, PATCH
, PUT
, HEAD
, DELETE
, OPTIONS
입니다. http
및 https
URL이 모두 지원됩니다.
HTTP 테스트의 이름을 지정합니다.
HTTP 테스트에 환경 태그 및 기타 태그를 추가합니다. 이러한 태그를 사용하여 신서틱 모니터링 & 지속적인 테스트 페이지에서 신서틱 테스트를 필터링할 수 있습니다.
전송을 클릭하여 요청 설정을 테스트합니다. 화면 오른쪽에 응답 미리보기가 표시됩니다.
When setting up a new Synthetic Monitoring API test, use snippets to automatically fill in basic auth, performance, and regions, rather than selecting these options manually. The following snippets are available:
Basic Auth: Automatically test your APIs using pre-populated basic auth headers, JavaScript, bearer token, and API/app key auth variables.
Performance: Automatically configure a test with the shortest frequency (one minute), perform a gRPC health check, and test for overall response time latency with a breakdown of network timing.
Regions: Automatically test your API endpoint against a location in each of the three primary geographic regions (AMER, APAC and EMEA).
HTTP/1.1 only
, HTTP/2 only
,HTTP/2 fallback to HTTP/1.1
중 선택합니다.user-agent
헤더)를 재정의할 수도 있습니다.<COOKIE_NAME1>=<COOKIE_VALUE1>; <COOKIE_NAME2>=<COOKIE_VALUE2>
형식을 사용하여 여러 쿠키를 설정합니다.Client Certificate: 클라이언트 인증서(.crt
) 및 관련 개인 키(.key
)를 PEM
형식으로 업로드하여 mTLS를 통해 인증합니다. openssl
라이브러리를 사용하여 인증서를 변환할 수 있습니다. 예를 들어 PKCS12
인증서를 PEM
형식의 개인 키 및 인증서로 변환합니다.
openssl pkcs12 -in <CERT>.p12 -out <CERT_KEY>.key -nodes -nocerts
openssl pkcs12 -in <CERT>.p12 -out <CERT>.cert -nokeys
HTTP 기본 인증: HTTP 기본 인증 자격 증명을 추가합니다.
Digest 인증: Digest 인증 자격 증명을 추가합니다.
NTLM: NTLM 인증 자격 증명을 추가합니다. NTLMv2와 NTLMv1을 모두 지원합니다.
AWS Signature v4: Access Key ID와 Secret Access Key를 입력합니다. Datadog은 요청에 대한 서명을 생성합니다. 이 옵션은 SigV4의 기본 구현을 사용합니다. Amazon S3와 같은 특정 서명은 기본적으로 지원되지 않습니다.
Amazon S3 버킷에 대한 “Single Chunk” 전송 요청의 경우 sha256으로 인코딩된 요청 본문을 헤더로 포함하는 x-amz-content-sha256
을 추가합니다(빈 본문의 경우: x-amz-content-sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
).
OAuth 2.0: 클라이언트 자격 증명 또는 리소스 소유자 비밀번호 부여 중에서 선택하고 액세스 토큰 URL을 입력합니다. 선택에 따라 클라이언트 ID와 비밀번호 또는 사용자 이름과 비밀번호를 입력합니다. 드롭다운 메뉴에서 API 토큰을 기본 인증 헤더로 보낼지, 아니면 본문에 클라이언트 자격 증명을 보낼지 옵션을 선택합니다. 선택 사항으로 대상, 리소스 및 범위와 같은 추가 정보를 제공할 수 있습니다(Resource Owner Password를 선택한 경우 클라이언트 ID 및 비밀번호도 함께).
application/json
, application/octet-stream
, application/x-www-form-urlencoded
, multipart/form-data
, text/html
, text/plain
, text/xml
, GraphQL
, None
)을 선택합니다.application/json
, application/x-www-form-urlencoded
, text/html
, text/plain
, text/xml
, GraphQL
에 대해 최대 50KB로 제한됩니다.application/octet-stream
에 대해 3MB의 파일 1개로 제한됩니다.multipart/form-data
에 대해 3MB의 파일 3개로 제한됩니다.http://<YOUR_USER>:<YOUR_PWD>@<YOUR_IP>:<YOUR_PORT>
).JavaScript를 사용하여 HTTP API 테스트에 대한 변수를 정의합니다.
<div class="shortcode-wrapper shortcode-img expand"><figure class="text-center"><a href="https://datadog-docs-staging.imgix.net/images/synthetics/api_tests/http_javascript.66fe410698cb2c156ee0634db040393e.png?fit=max&auto=format" class="pop" data-bs-toggle="modal" data-bs-target="#popupImageModal"><picture class="" style="width:90%;" >
<img
class="img-fluid"
srcset="https://datadog-docs-staging.imgix.net/images/synthetics/api_tests/http_javascript.66fe410698cb2c156ee0634db040393e.png?auto=format"
style="width:90%;" alt="Javascript로 HTTP API 테스트 정의" />
</picture></a></figure>
</div>
어설션은 예상되는 테스트 결과를 정의합니다. Test URL을 클릭하면 얻은 응답을 기반으로 response time
, status code
, header
, content-type
에 대한 기본 어설션이 추가됩니다. 모니터링할 테스트에 대한 어설션을 하나 이상 정의해야 합니다.
유형 | 연산자 | 값 유형 |
---|---|---|
본문 | contains , does not contain , is , is not ,matches , does not match ,jsonpath , xpath | 문자열 정규식 |
헤더 | contains , does not contain , is , is not ,matches , does not match | 문자열 정규식 |
응답 시간 | is less than | 정수 (ms) |
상태 코드 | is , is not ,matches , does not match | 정수 정규식 |
HTTP 테스트는 다음 content-encoding
헤더가 있는 본문의 압축을 풀 수 있습니다: br
, deflate
, gzip
, identity
.
신규 어서션을 클릭하거나 응답 미리보기를 클릭하여 API 테스트당 최대 20개의 어서션을 생성할 수 있습니다.
어설션에서 OR
로직을 수행하려면 matches regex
비교기를 사용하여 (200|302)
와 같은 여러 예상 값이 있는 정규식을 정의합니다. 예를 들어, 서버가 200
또는 302
상태 코드로 응답해야 할 때 HTTP 테스트가 성공하기를 원할 수 있습니다. 상태 코드가 200 또는 302이면 status code
어설션은 성공합니다. body
또는 header
어설션에 OR
로직을 추가할 수도 있습니다.
테스트에 응답 본문 어설션이 포함되어 있지 않으면 본문 페이로드가 삭제되고 Synthetics Worker가 설정한 제한 시간 내에서 요청 관련 응답 시간을 반환합니다.
테스트에 응답 본문에 대한 어서션이 포함되어 있고 제한 시간에 도달하면, Assertions on the body/response cannot be run beyond this limit
오류가 나타납니다.
HTTP 테스트를 실행할 **위치(Locations)**를 선택합니다. HTTP 테스트는 네트워크 외부 또는 내부에서 테스트를 실행하려는 사용자의 선호도에 따라 관리형 위치와 프라이빗 위치 모두에서 실행될 수 있습니다.
Datadog’s out-of-the-box managed locations allow you to test public-facing websites and endpoints from regions where your customers are located.
Americas | APAC | EMEA |
---|---|---|
Canada Central (AWS) | Hong Kong (AWS) | Cape Town (AWS) |
Northern California (AWS) | Mumbai (AWS) | Frankfurt (AWS) |
Northern Virginia (AWS) | Seoul (AWS) | Ireland (AWS) |
Ohio (AWS) | Singapore (AWS) | London (AWS) |
Oregon (AWS) | Sydney (AWS) | Paris (AWS) |
São Paulo (AWS) | Tokyo (AWS) | Stockholm (AWS) |
Virginia (Azure) | Osaka (AWS) | Milan (AWS) |
Jakarta (AWS) | Bahrain (AWS) |
The Datadog for Government site (US1-FED) uses the following managed location:
Americas |
---|
US-West |
HTTP 테스트는 다음과 같이 실행할 수 있습니다.
알림 조건을 설정해 테스트 실패 시 알림을 트리거할 상황을 정의하세요.
알림 조건을 An alert is triggered if any assertion fails for X minutes from any n of N locations
으로 설정하면 해당 두 조건이 참인 경우에만 알림이 트리거됩니다.
결과가 테스트 실패인 경우 Y
밀리초 후 X
회 재시도를 트리거할 수 있습니다. 알림 중요도에 맞게 재시도 간격을 커스터마이즈할 수 있습니다.
위치 가동 시간은 각 평가 기준으로 계산됩니다(평가 전 마지막 테스트 결과가 상승 또는 감소했는지 여부). 총 가동 시간은 설정된 알림 조건에 따라 계산됩니다. 전송된 알림은 총 가동 시간을 기준으로 합니다.
알림은 이전에 정의된 알림 조건 기준 테스트에서 전송됩니다. 이 섹션을 통해 팀에 메시지를 전달하는 방법과 해당 메시지의 내용을 정의하세요.
모니터 설정 방법과 유사하게 알림을 받아야 하는 사용자 및/또는 서비스를 선택합니다. @notification
를 메시지에 추가하거나, 드롭다운 메뉴를 사용해 팀 구성원과 연결된 통합을 검색할 수 있습니다.
테스트에 대한 알림 메시지를 입력합니다. 이 필드는 표준 마크다운 형식을 허용하며 다음 조건부 변수를 지원합니다.
조건 변수 | 설명 |
---|---|
{{ #is_alert }} | 테스트가 알림을 전송하면 표시합니다. |
{{ ^is_alert }} | 테스트가 알림을 전송하지 않으면 표시합니다. |
{{ #is_recovery }} | 테스트에서 알림을 복원하면 표시합니다. |
{{ ^is_recovery }} | 테스트가 일림을 복원하지 않으면 표시합니다. |
{{ #is_renotify }} | 모니터가 알림을 다시 알리면 표시합니다. |
{{ ^is_renotify }} | 모니터가 알림을 다시 알리면 표시합니다. |
{{ #is_priority }} | 모니터가 우선순위(P1~P5)와 일치하면 표시합니다. |
{{ ^is_priority }} | 모니터가 우선순위와 일치하지 않으면 표시됩니다(P1~P5). |
테스트 실패 시 테스트에서 알림 메시지를 재전송할 빈도를 지정합니다. 테스트 실패에 대해 알림이 다시 전송되는 것을 방지하려면 옵션을 Never renotify if the monitor has not been resolved
로 남겨둡니다.
생성을 클릭해 테스트 설정 및 모니터를 저장합니다.
자세한 정보는 신서틱(Synthetic) 테스트 모니터를 참조하세요.
API 테스트 생성은 API 카탈로그 및 기존 API 테스트에서 엔드포인트를 제안하여 테스트 양식을 관련 옵션으로 미리 채웁니다. 애플리케이션 성능 모니터링(APM) 트레이스, API 카탈로그 엔드포인트 검색 및 사용자가 생성한 유사한 기존 신서틱(Synthetic) 테스트와 같은 기존 Datadog 데이터 소스를 사용합니다.
API 테스트 URL 인풋값을 입력하여 신서틱(Synthetic) 모니터링에서 엔드포인트 제안 또는 유사한 테스트를 얻습니다.
그런 다음 테스트 미리 채우기 제안을 선택하여 설정 (요청 옵션 및 헤더, 인증 및 변수)을 작성합니다.
To create a local variable, click Create a Local Variable. You can select one of the following available builtins to add to your variable string:
n
digits.n
letters.n
characters.n
units.n
units.To obfuscate local variable values in test results, select Hide and obfuscate variable value. Once you have defined the variable string, click Add Variable.
HTTP 테스트의 URL, 고급 옵션 및 어설션에서 Settings 페이지에 정의된 전역 변수를 사용할 수 있습니다.
변수 목록을 표시하려면 원하는 필드에서 {{
을 입력하세요.
하나 이상의 어서션을 충족하지 않거나 요청이 초기에 실패한 경우 테스트는 FAILED
로 간주됩니다. 경우에 따라서는 엔드포인트 어서션 테스트 없이 해당 테스트가 실패할 수 있습니다.
가장 일반적인 오류는 다음과 같습니다.
AUTHENTICATION_ERROR
CONNREFUSED
CONNRESET
DNS
Error performing HTTP/2 request
INVALID_REQUEST
SSL
TIMEOUT
TIMEOUT
이 발생할 수 있습니다:TIMEOUT: The request couldn't be completed in a reasonable time.
는 요청 기간이 테스트에 정의된 시간 제한에 도달했음을 나타냅니다(기본값은 60초로 설정됨).
각 요청에 대해 완료된 요청 단계만 네트워크 폭포에 표시됩니다. 예를 들어, Total response time
만 표시되는 경우 DNS 확인 중에 시간 초과가 발생했습니다.TIMEOUT: Overall test execution couldn't be completed in a reasonable time.
은 요청 및 어서션 실행 시간이 최대 실행 시간(60.5초)에 도달했음을 나타냅니다.MALFORMED_RESPONSE
기본적으로 Datadog Admin 및 Datadog Standard 역할을 가진 사용자만 Synthetic HTTP 테스트를 생성, 편집 및 삭제할 수 있습니다. Synthetic HTTP 테스트에 대한 생성, 편집 및 삭제 액세스 권한을 얻으려면 사용자를 두 가지 기본 역할 중 하나로 업그레이드하세요.
사용자 정의 역할 기능을 사용하는 경우 synthetics_read
및 synthetics_write
권한이 포함된 사용자 정의 역할에 사용자를 추가합니다.
Use granular access control to limit who has access to your test based on roles, teams, or individual users:
Access level | View test configuration | Edit test configuration | View test results | Run test |
---|---|---|---|---|
No access | ||||
Viewer | Yes | Yes | ||
Editor | Yes | Yes | Yes | Yes |