New Relic CodeStream을 사용하면 개발자가 IDE에 관찰 가능성을 가져오고 일상의 일부로 만들어 자신이 담당하는 코드가 프로덕션 환경에서 어떻게 수행되고 있는지 확인할 수 있습니다.
CodeStream과 New Relic 연결
IDE에서 관찰 가능성에 액세스하려면 New Relic 사용자 API 키를 통해 CodeStream을 New Relic에 연결해야 합니다(New Relic 사용자 API 키 에 대해 자세히 알아보기).
IDE에 가시성을 부여하려면 사용자 키를 사용하여 CodeStream을 New Relic에 연결하십시오.
사용자 API 키가 있으면 CodeStream의 Observability 섹션에서 Connect to New Relic 을 클릭한 다음 사용자 API 키를 붙여넣고 Connect to New Relic을 클릭합니다. New Relic 사용자 API 키를 사용하여 CodeStream에 가입했다면 이미 연결된 것입니다.
CodeStream에서 관찰 가능성 기능을 사용하려면 New Relic 사용자 유형이 핵심 사용자 또는 전체 플랫폼 사용자 여야 합니다.
리포지토리를 New Relic 엔터티와 연결
CodeStream에서 사용할 수 있는 원격 측정 데이터는 상황에 따라 달라집니다. 즉, IDE에서 연 코드와 모두 관련이 있습니다. 이를 위해 CodeStream은 열려 있는 리포지토리에 의해 구축된 New Relic의 엔터티를 알아야 하며 이러한 연결을 만드는 방법에는 여러 가지가 있습니다.
존재하지 않는 경우 CodeStream에서 연결하라는 메시지를 표시하는 인스턴스가 있습니다. 예를 들어, CodeStream의 New Relic에서 오류를 보려고 하는데 오류가 속한 엔터티 가 리포지토리와 연결되지 않은 경우 CodeStream은 적절한 리포지토리를 식별하도록 요청합니다. CodeStream 창의 Observability 섹션에는 IDE에서 현재 선택된 리포지토리에 대한 연결을 만들라는 메시지도 표시됩니다.
경우에 따라 리포지토리를 여러 엔터티와 연결해야 할 수 있습니다. 예를 들어 서로 다른 환경(프로덕션 또는 스테이징 등)을 나타내는 서로 다른 엔터티가 있을 수 있으며 모두 동일한 리포지토리와 연결될 수 있습니다. 현재 리포지토리를 추가 엔터티와 연결하려면 다른 서비스 추가 를 클릭합니다.
메시지가 표시되면 즉석에서 이러한 연결을 만드는 것이 시작하기에 좋은 방법이지만 지속적인 수동 작업이 덜 필요하고 잘못 구성된 원격 URL과 같은 최종 사용자 실수의 가능성을 제거하기 때문에 다음 방법 중 하나를 권장합니다.
다음 방법 중 하나로 SSH 또는 HTTPS 형식으로 원격 URL을 지정할 수 있습니다.
git@github.com:newrelic/beta-docs-site.git
https://github.com/newrelic/beta-docs-site.git
주의
다른 프로토콜을 사용하는 경우 동일한 GitHub 리포지토리를 두 번 이상 추가할 수 있습니다. UI는 이에 대해 경고하지만 그렇게 하는 것을 막지는 않습니다.
예를 들어, https://github.com/tuna/repo
및 git@github.com:tuna/repo
은 프로토콜이 다른 동일한 저장소입니다.
IDE의 관찰 가능성
CodeStream의 Observability 섹션 은 개발자가 현재 IDE에서 선택한 리포지토리와 연결된 각 서비스에 대한 골든 메트릭 및 오류를 볼 수 있도록 하여 코드가 어떻게 수행되고 있는지에 대한 보기를 제공합니다. 각 서비스에는 트리에 자체 노드가 있으며 확장하면 서비스의 골든 메트릭, 서비스 수준 목표, 할당된 오류 및 가장 최근 오류 5개가 표시됩니다. 또한 서비스에 의해 호출되거나 서비스를 호출하는 서비스를 파헤쳐 더 큰 그림을 볼 수 있고 각각에 대한 황금 지표를 볼 수 있습니다.
현재 선택된 리포지토리가 New Relic의 서비스와 연결되어 있지 않으면 연결하거나 프로젝트를 구성하라는 메시지가 표시됩니다.
트리에서 서비스 이름 위로 마우스를 가져갈 때 브로드캐스트 아이콘을 클릭하여 해당 서비스의 편집기에서 코드 수준 메트릭 을 확인하거나 지구본을 클릭하여 New Relic에서 서비스 요약 페이지를 엽니다. 오류를 클릭하여 스택 추적을 포함한 세부 정보를 보고 해결에 대한 공동 작업을 시작 합니다.
팁
프로젝트가 New Relic에 의해 모니터링되지 않는 경우 관찰 가능성 섹션 의 제목에 있는 톱니바퀴 아이콘을 클릭한 다음 Instrument my App 을 선택하여 모니터링을 설정할 수 있습니다. CodeStream에는 Node.js JS, Java 및 .NET 프로젝트에 사용할 수 있는 설정 마법사가 있습니다.
코드 수준 측정항목
코드 수준 지표는 코드가 메서드 수준에서 어떻게 수행되고 있는지에 대한 자세한 통찰력을 제공합니다. New Relic에 의해 자동으로 계측되는 각 방법에 대해 각 방법 위에 삽입된 텍스트 줄을 통해 메트릭이 표시됩니다. 이 텍스트 줄을 CodeLens라고 합니다. 지난 30분 동안의 평균 기간 및 오류율이 표시됩니다.
메트릭을 보려면 서비스가 아래 나열된 요구 사항을 충족해야 하며 서비스에서 지난 30분 동안 데이터를 수집했어야 합니다. New Relic 에이전트는 HTTP 요청에 연결된 클래스의 함수에 대한 데이터를 자동으로 수집하려고 시도합니다. 대부분의 경우 MVC 프레임워크를 사용하는 많은 프레임워크에서 이러한 메서드는 Controller 클래스의 메서드인 경우가 많습니다.
New Relic 에이전트의 모든 요청이 항상 수집되는 것은 아니므로 트래픽이 적은 메서드에 데이터가 표시되지 않을 수 있습니다. 결과를 보고자 하는 특정 방법에 대한 데이터가 누락된 경우 사용자 정의 계측을 사용하여 공백을 채울 수 있습니다. Java ,.NET , PHP , Python , Ruby , Go 및 Node.js 에 대한 지침을 참조하십시오. 또한 Node.js의 경우 코드 수준 메트릭은 익명 함수에 대해 캡처되지 않습니다.
코드 검토는 이제 검토 프로세스 중에 성능 메트릭을 활용하여 더 많은 데이터 기반이 될 수 있습니다. 풀 요청 및 피드백 요청 모두에 대한 코드 수준 메트릭이 diff에 표시되므로 성능 문제가 변경 사항의 일부로 해결되었는지 확인할 수 있습니다.
각 메트릭을 시각화하는 차트를 보려면 CodeLens를 클릭하십시오. 리포지토리가 여러 New Relic에서 모니터링하는 엔터티와 연결되어 있는 경우 이들 간에 쉽게 전환할 수 있습니다. 이렇게 하면 편집기에 표시되는 코드 수준 메트릭의 기반이 되는 엔터티가 변경됩니다.
차트 상단의 엔티티 이름을 클릭하면 New Relic에 대한 보다 자세한 서비스 수준 데이터를 볼 수 있습니다.
관찰 가능성 섹션을 통해 코드 수준 메트릭을 보려는 엔터티를 변경할 수도 있습니다. 서비스 이름 위에 마우스를 놓고 브로드캐스트 아이콘을 클릭하면 해당 서비스에 대한 코드 수준 메트릭을 볼 수 있습니다.
요구 사항
- 분산 추적 을 활성화해야 합니다. 분산 추적은 모든 에이전트의 최신 버전에서 기본적으로 켜져 있으므로 분산 추적을 비활성화한 경우에만 이에 대해 걱정하면 됩니다.
- Go: Go 에이전트 버전 3.19.2 필요 또는 더 높게. Go 에이전트 구성에서 코드 수준 측정항목도 활성화 해야 합니다. VS Code를 사용하는 경우 언어 서버가 활성화된 상태로 Go for VS Code 확장이 설치되어 있어야 합니다.
- Java: Java 에이전트 버전 7.10.0 이상이 필요합니다. 버전 7.11.0 이상의 경우 코드 수준 메트릭이 기본적으로 활성화되어 있습니다. 버전 7.10.0의 경우, 코드 수준 메트릭은 Java 에이전트 구성에서 수동으로 활성화 해야 합니다. 코드 수준 측정항목은 지원되는 Java 프레임워크 로 구현된 프로젝트에만 사용할 수 있습니다. VS Code를 사용하는 경우 Red Hat 확장 프로그램의 Java용 언어 지원 도 설치되어 있어야 합니다. Kotlin 지원은 IntelliJ에서만 사용할 수 있습니다.
- .NET: .NET 에이전트 버전 9.9.0 이상이 필요합니다. 버전 10.2.0 이상의 경우 코드 수준 측정항목이 기본적으로 활성화되어 있습니다. 버전 9.9.0 - 10.1.0의 경우, 코드 수준 메트릭은 .NET 에이전트 구성에서 수동으로 활성화 해야 합니다. Visual Studio를 사용하는 경우 Tools > Options > Text Editor > All Languages > CodeLens 로 이동하고 "Enable CodeLens" 및 "Show CodeStream Code-Level Metrics"가 모두 선택되어 있는지 확인하여 CodeLense가 활성화되어 있는지 확인합니다. VS Code를 사용하는 경우 C# 확장이 설치되어 있어야 합니다.
- Node.js: Node.js 에이전트 버전 9.7.5 이상이 필요합니다. 코드 수준 지표는 Node.js 에이전트 구성에서도 활성화 되어야 합니다.
- PHP: PHP 에이전트 버전 10.4.0 이상이 필요합니다. 버전 10.6.0 이상의 경우 코드 수준 메트릭이 기본적으로 활성화됩니다. 버전 10.4.0-10.5.0의 경우 PHP 에이전트 구성에서 코드 수준 메트릭을 수동으로 활성화해야 합니다.
- Python: Python 에이전트 버전 7.10.0.175 이상이 필요합니다. 코드 수준 메트릭은 지원되는 Python 프레임워크 로 구현된 프로젝트 및 PHP 버전 7.0 이상에서만 사용할 수 있습니다. VS Code를 사용하는 경우 언어 서버가 활성화된 상태로 Python 확장이 설치되어 있어야 합니다.
- Ruby: Ruby 에이전트 버전 8.8.0 이상이 필요합니다. 버전 8.10.0 이상의 경우 코드 수준 측정항목이 기본적으로 활성화되어 있습니다. 버전 8.8.0 및 8.9.0 의 경우 Ruby 에이전트 구성에서 코드 수준 측정항목을 수동으로 활성화 해야 합니다. 코드 수준 메트릭은 수동 추적이 있는 Rails 애플리케이션 및 Ruby 메서드에만 사용할 수 있습니다( Ruby 메서드 및 CodeStream에 대해 자세히 알아보기 ). VS Code를 사용하는 경우 언어 서버가 활성화된 상태로 Ruby 또는 Ruby Solargraph 확장이 설치되어 있어야 합니다.
IDE 설정의 CodeStream 섹션으로 이동하고 CodeStream: Show Golden Signals In Editor 설정을 선택 취소하여 CodeLense를 끌 수 있습니다.
오류 조사
CodeStream은 IDE에서 연 코드에서 발생한 최근 오류를 표시하지만 더 포괄적인 오류 목록을 볼 수 있습니다. New Relic의 오류 수신함을 통한 오류. 스택 추적을 통해 특정 오류의 근본 원인을 파헤칠 준비가 되면 IDE에서 열기를 클릭하여 IDE의 코드로 직접 이동합니다.
해결을 위해 협력
일반적인 협업 세션에는 IDE의 코드에 대해 의견을 제시하는 개발자, 오류 받은 편지함에서 오류를 할당하는 DevOps 엔지니어, Slack을 따라가는 개발 관리자가 포함될 수 있습니다. CodeStream은 이미 사용 중인 도구에서 사람들을 만나 오류 검색과 오류 해결 사이의 시간을 단축합니다.
이 짧은 YouTube 비디오(약 2분 27초)를 보고 실제 작동을 확인하십시오.
관찰 가능성 섹션 에서 오류를 클릭했든 New Relic의 오류 받은 편지함 에서 IDE에서 열기를 클릭했든 CodeStream은 스택 추적을 포함한 모든 오류 세부 정보를 표시합니다.
스택 추적을 탐색하여 문제를 조사하십시오.
스택 추적에서 아무 프레임이나 클릭하면 IDE에서 해당 파일과 줄 번호로 바로 이동합니다. 저장소의 일부가 아닌 코드를 나타내는 스택 추적 프레임(예: 외부 라이브러리)은 클릭할 수 없습니다.
스택 추적을 탐색할 때 문제의 원인으로 보이는 코드를 발견하면 해당 코드를 선택하고 설명 아이콘을 클릭하여 토론을 시작하세요. CodeStream은 해당 코드를 터치한 가장 최근 사람을 자동으로 언급하므로 적절한 사람을 토론에 쉽게 참여시킬 수 있습니다.
편집기에서 코드를 선택하여 주석을 추가하세요.
- 문제를 식별하면 CodeStream의 기존 팀원이나 리포지토리의 Git 커밋 기록을 기반으로 제안된 사람에게 오류를 할당할 수 있습니다.
- 해결되지 않음에서 해결됨 또는 무시됨으로 오류 상태를 업데이트할 수 있습니다.
...
추가 작업 메뉴를 사용하여 Slack 또는 Microsoft Teams에서 토론을 공유하세요.
빌드 SHA 또는 릴리스 태그를 오류와 연결
CodeStream에서 오류를 보고 오류와 연결된 빌드 SHA 또는 릴리스 태그인 git 참조가 없는 경우 이 경고가 표시될 수 있습니다. CodeStream은 git 참조를 사용하여 특정 스택 추적 오류를 오류를 트리거한 환경에서 실행 중인 코드 버전과 일치시킵니다.
오류를 조사하기 위해 git 참조를 구성할 필요는 없지만 오류를 일으킨 코드 버전을 보고 있지 않을 수 있다는 점을 염두에 두십시오.
git reference not configured 경고 메시지는 다음과 같습니다. Build SHA 또는 릴리스 태그를 오류와 연결하면 CodeStream이 올바른 버전의 코드를 보고 있는지 확인하는 데 도움이 될 수 있습니다.
환경 변수를 사용하여 New Relic을 에이전트는 프로젝트의 각 빌드와 관련된 커밋 샤를 알고 있습니다. 실행 중인 소프트웨어 버전과 관련된 릴리스 태그를 사용할 수도 있습니다.
New Relic APM의 경우 커밋 샤 및/또는 릴리스 태그( tags.commit
및 tags.releaseTag
)가 Transaction
및 TransactionError
이벤트의 속성으로 추가됩니다. APM 환경 변수를 사용하여 이러한 속성을 설정할 수 있습니다.
빌드 파이프라인의 일부로 이러한 변수 중 하나 또는 둘 다를 설정하는 것이 좋습니다.
NEW_RELIC_METADATA_COMMIT
- 커밋 샤. 전체를 포함하거나 처음 7자만 포함할 수 있습니다(예:734713b
).NEW_RELIC_METADATA_RELEASE_TAG
- 릴리스 태그(예:v0.1.209
또는release-209
). 사람이 읽을 수 있다는 장점이 있습니다.
이러한 변수를 설정하는 방법에 대한 자세한 내용은 각 언어에 대한 특정 구성 세부정보입니다.
git 참조를 구성한 경우 CodeStream은 로컬에 있는 코드 버전에 오류와 관련된 참조가 포함되어 있지 않은지 알려줍니다. 이 경우 오류를 보다 효과적으로 조사하고 해결할 수 있도록 해당 참조가 포함된 코드 버전을 확인해야 할 수 있습니다.
git reference not found 경고 메시지는 다음과 같습니다. 코드 버전이 오류를 트리거한 환경과 일치하지 않습니다. 오류를 더 잘 조사하려면 다음 참조를 가져오세요.
CodeStream은 오류에 연결된 스택 추적이 없는 경우에도 알려줍니다. 이것은 스택 추적이 New Relic에서 만료되었을 때 오래된 오류에서 발생합니다.