앱 배포는 위험한 이벤트일 수 있습니다. 앱이 중단되면 잘못된 배포가 원인인 경우가 많습니다. New Relic을 사용하면 배포를 추적할 수 있으므로 배포를 앱 성능과 연관시킬 수 있습니다. 배포를 추적하면 APM 차트에 나타나는 배포 마커가 생성됩니다.
이 짧은 비디오(4분 30분)에서 배포 마커의 작동 방식을 확인하십시오.
배포 추적 옵션
New Relic REST API v2 를 사용하여 새 배포를 기록하고, 과거 배포 목록을 검색하고, APM 애플리케이션에서 과거 배포를 삭제할 수 있습니다. 또한 일부 APM 에이전트에는 배포를 자동으로 기록하는 에이전트별 방법이 있습니다.
Slack 을 New Relic과 통합하거나 간단한 웹훅을 사용하여 APM에서 모니터링하는 애플리케이션의 배포를 실시간으로 팀에 알릴 수 있습니다. Slack은 선택한 Slack 채널에 형식이 지정된 일반 JSON을 게시할 수 있는 웹훅 URL을 제공합니다.
기록된 후 New Relic UI에서 배포를 볼 수 있는 곳이 몇 군데 있습니다. UI에서 배포를 볼 수 있습니다.
팁
배포 마커는 브라우저 애플리케이션에 사용할 수 없지만 릴리스 버전으로 오류에 태그를 지정하는 방법은 브라우저 릴리스 를 참조하십시오.
REST API로 배포 기록
New Relic REST API v2를 사용하여 배포를 기록하고, 과거 배포 목록을 가져오고, 배포를 삭제할 수 있습니다.
- 이 문서의 예에서는
curl
을 명령줄 도구로 사용합니다. 그러나 모든 방법을 사용하여 REST 요청을 만들 수 있습니다. API 탐색기 를 사용하여 배포를 만들고, 보고, 삭제할 수도 있습니다. - JSON은 요소 이름과 콘텐츠에 큰따옴표
"
를 사용합니다. 작은따옴표 '
를 사용하면 오류가 발생합니다.
새 배포를 기록하려면 API 키 가 포함된 POST
요청을 배포 엔드포인트로 보냅니다. 페이로드를 JSON 형식으로 연결합니다( 문자 제한 및 JSON 매개변수 참조). revision
을 제외한 모든 페이로드 매개변수는 선택사항입니다.
예를 들어:
curl -X POST "https://api.newrelic.com/v2/applications/$APP_ID/deployments.json" \
-H "Api-Key:$API_KEY" \
-i \
-H "Content-Type: application/json" \
-d \
'{
"deployment": {
"revision": "REVISION",
"changelog": "Added: /v2/deployments.rb, Removed: None",
"description": "Added a deployments resource to the v2 API",
"user": "datanerd@example.com",
"timestamp": "2019-10-08T00:15:36Z"
}
}'
PowerShell로 배포를 기록하려면 API 키 가 포함된 POST
요청을 배포 엔드포인트로 보냅니다. 페이로드를 JSON 형식으로 연결합니다( 문자 제한 및 JSON 매개변수 참조). revision
을 제외한 모든 페이로드 매개변수는 선택사항입니다.
이 예에서는 PowerShell 버전 3 이상을 사용합니다.
Invoke-WebRequest -Uri https://api.newrelic.com/v2/applications/YOUR_APP_ID/deployments.json -Method POST -Headers @{'Api-Key'='$API_KEY'} -ContentType 'application/json' -Body '{
"deployment": {
"revision": "REVISION",
"changelog": "Added: /v2/deployments.rb, Removed: None",
"description": "Added a deployments resource to the v2 API",
"user": "datanerd@example.com",
"timestamp": "2019-10-08T00:15:36Z"
}
}'
이 예에서는 PowerShell 버전 2(.NET Framework 3.5 이상 필요)를 사용합니다.
$encoding = [System.Text.Encoding]::GetEncoding("ASCII")
$data ='{
"deployment": {
"revision": "REVISION",
"changelog": "Added: /v2/deployments.rb, Removed: None",
"description": "Added a deployments resource to the v2 API",
"user": "datanerd@example.com",
"timestamp": "2019-10-08T00:15:36Z"
}
}'
$postData = $encoding.GetBytes($data)
$request = [System.Net.WebRequest]::Create('https://api.newrelic.com/v2/applications/$APP_ID/deployments.json')
$request.Method = 'POST'
$request.Headers.add('Api-Key','$API_KEY')
$request.ContentType='application/json'
$stream = $request.GetRequestStream()
$stream.Write($postData,0,$postData.Length)
$request.GetResponse()
앱의 모든 과거 배포 목록을 검색하려면 API 키 가 포함된 GET
요청을 배포 엔드포인트로 보냅니다. GET 요청은 JSON 페이로드를 사용하지 않습니다.
예를 들어:
curl -X GET "https://api.newrelic.com/v2/applications/$APP_ID/deployments.json" \
-H "Api-Key:$API_KEY" \
-i
이 예에서는 앱 ID 9999999
에 대한 배포 목록을 요청합니다.
curl -X GET "https://api.newrelic.com/v2/applications/9999999/deployments.json" \
-H "Api-Key:ABCDEFGHIJKLMNOPQRSTUVWXabcdefghijklmnopqrstuvwx" \
API는 다음 배포 목록을 반환합니다.
ETag: "ABCDEFGHIJKabcdefghijk0123456789"
Cache-Control: max-age=0, private, must-revalidate
Content-Type: application/json
"revision": "1234123412341234123412341234123412341234",
"changelog": "Fixed the bugs for real this time",
"description": "Example description two",
"timestamp": "2016-02-24T10:09:27-08:00",
"revision": "7890789078907890789078907890789078907890",
"changelog": "Think I fixed all the bugs",
"timestamp": "2014-10-22T12:23:47-07:00",
"deployment.agent": "/v2/applications/{application_id}"
배포를 삭제하려면 API 키 가 포함된 DELETE
요청을 배포 엔드포인트로 보냅니다. DELETE 요청은 JSON 페이로드를 사용하지 않지만 삭제할 배포의 ID를 지정해야 합니다. 배포에 대한 ID를 검색하려면 GET 요청 을 사용합니다.
예를 들어:
curl -X DELETE "https://api.newrelic.com/v2/applications/$APP_ID/deployments/$DEPLOYMENT_ID.json" \
-H "Api-Key:$API_KEY" \
-i
JSON 페이로드에는 다음 매개변수가 포함될 수 있습니다.
중요
Emojis 및 일부 비 라틴 언어 글리프와 같은 UTF-8 4바이트 문자는 배포 텍스트에 사용할 수 없습니다.
매개변수 | 데이터 형식 | 설명 |
---|
revision
| 문자열, 최대 127자 | 필수 . 요약 페이지 및 배포 페이지에 표시되는 이 배포의 고유 ID입니다. 모든 문자열이 될 수 있지만 일반적으로 버전 번호 또는 Git 체크섬입니다. |
changelog
| 문자열, 최대 65535자 | 선택 사항 . (선택한 배포) > Change log 를 선택하면 배포 페이지에 표시되는 이 배포에서 변경된 사항에 대한 요약입니다. |
description
| 문자열, 최대 65535자 | 선택 사항 . 요약 페이지 및 개별 배포를 선택할 때 배포 페이지에 표시되는 이 배포에 대한 상위 수준 설명입니다. |
user
| 문자열, 최대 31자 | 선택 사항 . 요약 페이지 및 배포 페이지에 표시되는 배포와 연결할 사용자 이름입니다. |
timestamp
| ISO 8601 | 선택 사항 . 배포가 발생했을 때 두 번째로 떨어졌습니다. 지정하지 않으면 API 호출이 수신된 시점에 배포가 기록됩니다. 타임스탬프 요구 사항: - UTC 시간이어야 합니다.
- 가장 최근 배포 타임스탬프 이후여야 합니다.
- 미래에 있을 수 없습니다.
- ISO8601 형식이어야 합니다. 예:
"2019-10-08T00:15:36Z" .
|
New Relic 에이전트를 사용하여 배포 기록
일부 에이전트에는 배포를 기록하는 추가 방법이 있습니다.
배포 팀에 알림
REST API를 사용하여 배포가 기록된 후 선택적으로 배포를 웹훅 엔드포인트에 알릴 수 있습니다.
웹훅의 대상은 Slack 인스턴스가 될 수 있습니다. 웹훅을 사용하여 Slack 채널에 대한 배포 알림을 설정하려면:
- Slack 계정에 관리자로 로그인한 다음 App directory > Manage > Apps 으로 이동합니다.
- New Relic 앱을 검색한 다음 구성 추가 를 선택합니다.
- Post to channel 에서 기존 Slack 채널을 선택하거나 새 채널을 추가한 다음 구성 추가 .
- 옵션 목록에서 웹훅 URL을 복사합니다.
- one.newrelic.com > ( 계정 드롭다운 ) > Account settings > Integrations > Deploy notifications > Webhook 합니다.
- Slack 웹훅 URL을 붙여넣고 저장합니다.
- 선택 사항: 테스트 메시지를 보냅니다.
팁
웹훅, Slack 채널 및 기타 경고 알림 옵션을 사용할 수도 있습니다.