- 필수 기능
- 시작하기
- Glossary
- 표준 속성
- Guides
- Agent
- 통합
- 개방형텔레메트리
- 개발자
- Administrator's Guide
- API
- Datadog Mobile App
- CoScreen
- Cloudcraft
- 앱 내
- 서비스 관리
- 인프라스트럭처
- 애플리케이션 성능
- APM
- Continuous Profiler
- 스팬 시각화
- 데이터 스트림 모니터링
- 데이터 작업 모니터링
- 디지털 경험
- 소프트웨어 제공
- 보안
- AI Observability
- 로그 관리
- 관리
Datadog는 사용자가 사용하는 언어와 관계없이 API와 에이전트에서 메트릭을 수집할 수 있습니다. 이 페이지는 PowerShell을 사용하는 각각의 예시를 보여줍니다.
이 방법은 PowerShell 스크립트를 실행하는 시스템에 설치된 에이전트를 필요로 합니다. POST 요청 시 명시적으로 API 키와 애플리케이션 키를 패스시켜야 합니다.
# Tested on Windows Server 2012 R2 w/ PSVersion 4.0
function unixTime() {
Return (Get-Date -date ((get-date).ToUniversalTime()) -UFormat %s) -Replace("[,\.]\d*", "")
}
function postMetric($metric,$tags) {
$currenttime = unixTime
$host_name = $env:COMPUTERNAME #optional parameter .
# Construct JSON
$points = ,@($currenttime, $metric.amount)
$post_obj = [pscustomobject]@{"series" = ,@{"metric" = $metric.name;
"points" = $points;
"type" = "gauge";
"host" = $host_name;
"tags" = $tags}}
$post_json = $post_obj | ConvertTo-Json -Depth 5 -Compress
# POST to DD API
$response = Invoke-RestMethod -Method Post -Uri $url -Body $post_json -ContentType "application/json"
}
# Datadog account, API information and optional parameters
$app_key = "<DATADOG_APPLICATION_KEY>" #provide your valid app key
$api_key = "<DATADOG_API_KEY>" #provide your valid api key
$url_base = "https://app.datadoghq.com/"
$url_signature = "api/v1/series"
$url = $url_base + $url_signature + "?api_key=$api_key" + "&" + "application_key=$app_key"
$tags = "[env:test]" #optional parameter
# Select what to send to Datadog. In this example, the number of handles opened by process "mmc" is being sent
$metric_ns = "ps1." # your desired metric namespace
$temp = Get-Process mmc
$metric = @{"name"=$metric_ns + $temp.Name; "amount"=$temp.Handles}
postMetric($metric)($tags) # pass your metric as a parameter to postMetric()
에이전트가 있으면 DogStatsD 수신기를 사용할 수 있습니다. 다음 예시는 DogStatsD를 사용해 동일한 메트릭을 전송하는 방법을 보여줍니다. API 또는 애플리케이션 키가 이미 로컬에 있으므로 더 이상 해당 키를 지정할 필요가 없습니다.
# Tested on Windows Server 2012 R2 w/ PSVersion 4.0
# Windows Server 2008 x64 R2 w/ PSVersion 2.0
function dogstatsd($metric) {
$udpClient = New-Object System.Net.Sockets.UdpClient
$udpClient.Connect('127.0.0.1', '8125')
$encodedData=[System.Text.Encoding]::ASCII.GetBytes($metric)
$bytesSent=$udpClient.Send($encodedData,$encodedData.Length)
$udpClient.Close()
}
$tags = "|#env:test" # Datadog tag
$temp = Get-Process mmc
$metric = "dogstatsd.ps1." + $temp.Name + ":" + $temp.Handles + "|g" + $tags # metric
dogstatsd($metric)
Msxml2.XMLHTTP
을(를) 사용해 PowerShell로 번역된 두 예시로, Mozilla 설명서에 완전히 문서화되어 있습니다.
$url_base = "https://app.datadoghq.com/"
$url = $url_base + $url_signature + "?api_key=$api_key" + "&" + "application_key=$app_key"
$http_request = New-Object -ComObject Msxml2.XMLHTTP
$http_request.open($http_method, $url, $false)
$http_request.setRequestHeader("Content-type", "application/json")
$http_request.setRequestHeader("Connection", "close")
$http_request.send($parameters)
$http_request.status
$http_request.responseText
API/앱 키를 교체합니다.
$api_key = "<DATADOG_API_KEY>"
$app_key = "<DATADOG_APPLICATION_KEY>"
호스트 API 설명에 따라 파라미터를 설정합니다.
$host_name = "test.host"
$http_method = "POST"
$url_signature = "api/v1/tags/hosts/$host_name"
$parameters = "{
`"tags`" : [`"environment:production`", `"role:webserver`"]
}"
첫 번째 섹션에 표시된 코드를 실행합니다.
API/앱 키를 교체합니다.
$api_key = "<DATADOG_API_KEY>"
$app_key = "<DATADOG_APPLICATION_KEY>"
메트릭 API 설명에 따라 파라미터를 설정합니다.
$http_method = "POST"
$url_signature = "api/v1/series"
$currenttime = (Get-Date -date ((get-date).ToUniversalTime()) -UFormat %s) -Replace("[,\.]\d*", "")
$parameters = "{ `"series`" :
[{`"metric`":`"test.powershell`",
`"points`":[[$currenttime, 20]],
`"type`":`"gauge`",
`"host`":`"test.example.com`",
`"tags`":[`"environment:test`"]}
]
}"
첫 번째 섹션에 표시된 코드를 실행하세요.