• /
  • EnglishEspañolFrançais日本語한국어Português
  • 로그인지금 시작하기

사용자의 편의를 위해 제공되는 기계 번역입니다.

영문본과 번역본이 일치하지 않는 경우 영문본이 우선합니다. 보다 자세한 내용은 이 페이지를 방문하시기 바랍니다.

문제 신고

워크플로우 예제

이 페이지에서는 펠릭스우 Automation을 사용하여 구축할 수 있는 일반적인 자동화 시나리오를 보여줍니다. 이러한 예를 자신만의 워크플로우의 시작점으로 사용하거나 준비된 구현하다, 배포하다 솔루션에 대한 템플릿을 탐색하세요.

인시던트 대응 및 교정

API 게이트웨이 롤백

API 게이트웨이 구성을 이전 상태로 되돌려 오류와 잘못된 구성을 수정할 수 있습니다.

이 흐름이 하는 일은:

  • 뉴렐릭 변경 추적을 이용하여 이슈와 관련된 최근 형태, 배포를 탐지합니다.
  • 승인 버튼(:+1: 또는 :-1:)을 사용하여 Slack에 공지를 보냅니다.
  • 승인 후 롤백을 자동화하기 위해 AWS Systems Manager 문서를 생성합니다.
  • API Gateway 통합을 이전 Lambda 버전으로 롤백합니다.
  • 롤백을 적용하기 위한 새로운 구현, 배포를 생성합니다.
  • Slack에 성공 또는 실패 알림을 보냅니다.
  • 완료 후 SSM 문서를 정리합니다.

요구 사항:

  • API Gateway 및 Systems Manager에 대한 권한이 있는 AWS 자격 증명
  • 공지 및 승인을 받기 위한 구성된 Slack 앱
  • 변경 추적을 통한 뉴렐릭 모니터링

주요 작업: newrelic.nerdgraph.execute, slack.chat.postMessage, slack.chat.getReactions, aws.systemsManager.writeDocument, aws.systemsManager.startAutomation, aws.systemsManager.waitForAutomationStatus, aws.systemsManager.deleteDocument

EC2 인스턴스 관리

최적의 성능과 비용을 위해 EC2 인스턴스의 프로비저닝, 확장 및 종료를 자동화합니다.

이 흐름이 하는 일은:

  • 뉴렐릭으로부터 높은 CPU 사용률 알림을 받았습니다.
  • 알려진 세부 정보를 검색하고 영향을 받은 EC2 제외를 식별합니다.
  • 인스턴스 세부 정보와 함께 Slack 공지를 보내고 크기 조정에 대한 승인을 requests .
  • 승인 후 인스턴스 크기 조정을 자동화하기 위한 SSM 문서를 생성합니다.
  • 인스턴스를 중지하고 인스턴스 유형을 수정한 후 다시 시작합니다.
  • 크기 조정 프로세스 중에 Slack으로 진행 상황 업데이트를 보냅니다.
  • 완료를 기다리고 성공 또는 실패 상태를 보냅니다.
  • SSM 문서를 정리하고 최종 확인을 보냅니다.

요구 사항:

  • EC2 및 Systems Manager에 대한 권한이 있는 AWS 자격 증명
  • EC2 지표에 대한 활성 뉴클릭 공지 용어
  • 공지 및 승인을 받기 위한 구성된 Slack 앱

주요 작업: newrelic.nerdgraph.execute, newrelic.nrdb.query, slack.chat.postMessage, slack.chat.getReactions, aws.systemsManager.writeDocument, aws.systemsManager.startAutomation, aws.systemsManager.waitForAutomationStatus, aws.systemsManager.deleteDocument, utils.datetime.fromEpoch, utils.uuid.generate

구현, 배포 롤백

롤백 구현, 부분이 비정상이 되는 경우 배포하고 AWS SQS 또는 HTTP로 알립니다.

이 흐름이 하는 일은:

  • 지정된 기간 동안 패널의 공지 심각도를 모니터링합니다(기본값 30분).
  • 매분 엔티티 상태를 확인합니다.
  • 조각이 CRITICAL 또는 WARNING이 되면 비정상 상태를 기록합니다.
  • AWS SQS를 통해 롤백 알림을 보냅니다(구성된 경우). 자세한 내용 포함
  • HTTP 웹후크를 통해 롤백 공지를 보냅니다(구성된 경우)
  • 전체 기간 동안 정상 상태를 유지하면 로그인 성공
  • 엔티티가 발견되지 않으면 모니터링을 중지합니다.

요구 사항:

  • 공지 심각도 검토를 통한 뉴렐릭
  • (선택사항) 롤백을 수신할 AWS SQS 대기열 및 역할 공지
  • (선택) 롤백을 받기 위한 HTTP 엔드포인트 공지

주요 작업: newrelic.nerdgraph.execute, newrelic.ingest.sendLogs, aws.execute.api (sqs.send_message), http.post

데이터 처리 및 보고

Slack에 보고서 보내기

NRQL 쿼리 출력을 CSV 파일로 Slack에 보냅니다.

이 흐름이 하는 일은:

  • 지정된 뉴렐릭 계정에 대해 NRQL 쿼리를 실행합니다.
  • 쿼리 결과에서 CSV 파일을 생성합니다.
  • 메시지와 함께 지정된 Slack 채널에 CSV 파일을 게시합니다.

요구 사항:

  • 뉴렐릭 자격 증명 및 기능적인 NRQL 쿼리
  • 의의와 댓, 목표 채널로 구성된 Slack 앱

주요 작업: newrelic.nrdb.query, utils.transform.toCSV, slack.chat.postMessage

JSON 파싱

뉴렐릭 공개 상태 API JSON(HTTP)을 구문 분석하고 선택적으로 운영 및 비운영 구성 요소를 차단합니다.

이 흐름이 하는 일은:

  • 뉴렐릭 상태 API에서 JSON 데이터를 가져옵니다.
  • 구성 요소를 작동 상태에 따라 추출하고 분류합니다.
  • 조건부로 운영 구성 요소를 테스트합니다(활성화된 경우)
  • 비작동 구성 요소를 조건부로 로그합니다(활성화된 경우)
  • HTTP 오류를 처리하고 로그인을 했습니다.

요구 사항:

  • 뉴렐릭 상태 API (summary.json)에 대한 액세스
  • newrelic.ingest.sendLogs를 통해 로그를 보낼 수 있는 권한

주요 작업: http.get, newrelic.ingest.sendLogs

사용 가능한 템플릿 흐름

위에 나열된 템플릿은 뉴렐릭 파라다이스 자동화 UI 에서 직접 사용할 수 있습니다. 접근 방법:

  1. one.newrelic.com > All Capabilities > Workflow Automation로 이동
  2. Create workflow [워크플로 만들기]를 클릭하세요.
  3. Use a template [템플릿 사용을]선택하세요
  4. 템플릿을 찾아보고 사용 사례에 맞는 활동 흐름을 선택하세요.

각 템플릿에는 다음이 포함됩니다.

  • 사전 구성된 워크플로우 단계 및 로직
  • 예제 입력 매개변수,
  • 필수 자격 증명 및 통합
  • 예상 결과 문서화

템플릿을 그대로 사용하거나 특정 요구 사항에 맞게 사용자 정의할 수 있습니다.

단계 간 데이터 전달

모든 에라스우는 템플릿 구문을 사용하여 이전 단계의 출력을 참조할 수 있습니다. 이를 통해 여러 작업을 연결하고 복잡한 자동화 논리를 구축할 수 있습니다.

기본 데이터 전달

steps:
- name: getAlert
action: newrelic.nerdgraph.execute
inputs:
query: |
{
actor {
account(id: 123456) {
alerts {
violation(id: 789) {
condition
entity {
name
guid
}
}
}
}
}
}
- name: sendToSlack
action: slack.chat.postMessage
inputs:
channel: "#incidents"
text: "Alert: ${{ .steps.getAlert.outputs.data.actor.account.alerts.violation.condition }}"

루프에서 데이터 사용

steps:
- name: listInstances
type: action
action: aws.ec2.describeInstances
version: 1
inputs:
filters:
- name: "tag:Environment"
values: ["production"]
- name: checkEachInstance
type: loop
for:
in: "${{ .steps.listInstances.outputs.reservations }}"
steps:
- name: getInstanceMetrics
type: action
action: newrelic.nerdgraph.execute
version: 1
inputs:
query: "SELECT average(cpuPercent) FROM SystemSample WHERE instanceId = '${{ .steps.checkEachInstance.loop.element.instanceId }}'"

데이터를 사용한 조건 논리

steps:
- name: checkCPU
type: action
action: newrelic.nerdgraph.execute
version: 1
# ... query configuration
- name: decideAction
type: switch
switch:
- condition: "${{ .steps.checkCPU.outputs.data.actor.account.nrql.results[0].average > 90 }}"
next: resizeInstance
- condition: "${{ .steps.checkCPU.outputs.data.actor.account.nrql.results[0].average > 70 }}"
next: sendWarning
next: normalOperation
- name: resizeInstance
type: action
action: aws.ec2.modifyInstanceAttribute
version: 1
# ... resize configuration
- name: sendWarning
type: action
action: slack.chat.postMessage
version: 1
# ... warning message
- name: normalOperation
type: action
action: newrelic.ingest.sendLogs
version: 1
# ... log normal status

다음 단계

Copyright © 2025 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.