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

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

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

문제 신고

Go용 새 유물 설치

뉴렐릭 Go 에이전트를 설치하여 Go에 대한 자세한 성능 인사이트를 얻으세요. 이 가이드는 일반적인 Go 애플리케이션 패턴에 대한 예제를 포함하여 전체 설치 과정을 안내합니다.

시작하기 전에

  • 뉴렐릭 계정을 만드세요 - 아직 뉴렐릭 계정이 없으시다면, 뉴렐릭 계정을 만드세요. 영원히 무료입니다.

  • 호환성 확인 - 다음 사항을 확인하십시오:

  • 라이선스 키를 받으세요 - 설치 중에 이 필요합니다.

설치 단계

Go 에이전트 설치

프로젝트에 뉴렐릭 Go 에이전트를 추가합니다.

bash
$
go get github.com/newrelic/go-agent/v3/newrelic

Go 모듈을 사용하시나요? 이 에이전트는 Go 모듈과 완벽하게 연동됩니다. Go의 이전 버전을 사용하는 경우 vendor 폴더에 에이전트를 추가해야 할 수 있습니다.

에이전트를 가져옵니다.

Go 애플리케이션에 import 문을 추가하세요:

import "github.com/newrelic/go-agent/v3/newrelic"

에이전트 초기화

main 함수에서 애플리케이션 인스턴스를 생성하세요:

func main() {
app, err := newrelic.NewApplication(
newrelic.ConfigAppName("My Go Application"),
newrelic.ConfigLicense(os.Getenv("NEW_RELIC_LICENSE_KEY")),
)
if err != nil {
log.Fatal("Failed to create New Relic application:", err)
}
// Wait for the application to connect
if err := app.WaitForCompletion(5 * time.Second); err != nil {
log.Println("Warning: New Relic application did not connect:", err)
}
// Your application code here
}

중요

보안 모범 사례: 라이선스 키를 소스 코드에 하드코딩하는 대신 항상 환경 변수를 사용하십시오.

귀하의 웹 핸들러를 처리하세요

HTTP 애플리케이션의 경우, 웹 트랜잭션을 모니터링하도록 핸들러를 래핑하세요.

// Method 1: Wrap individual handlers
http.HandleFunc(newrelic.WrapHandleFunc(app, "/", indexHandler))
http.HandleFunc(newrelic.WrapHandleFunc(app, "/users", usersHandler))
http.HandleFunc(newrelic.WrapHandleFunc(app, "/api/data", apiHandler))
// Method 2: Wrap your entire mux (recommended for many routes)
mux := http.NewServeMux()
mux.HandleFunc("/", indexHandler)
mux.HandleFunc("/users", usersHandler)
mux.HandleFunc("/api/data", apiHandler)
http.ListenAndServe(":8080", newrelic.WrapListen(app, mux))

기본 오류 처리 기능을 추가합니다.

핸들러에서 오류를 포착하세요:

func usersHandler(w http.ResponseWriter, r *http.Request) {
// Get transaction from request context
txn := newrelic.FromContext(r.Context())
user, err := getUserFromDatabase(r.URL.Query().Get("id"))
if err != nil {
// Report error to New Relic
txn.NoticeError(err)
http.Error(w, "User not found", http.StatusNotFound)
return
}
// Add custom attributes
txn.AddAttribute("user.id", user.ID)
txn.AddAttribute("user.tier", user.Tier)
// Return user data
json.NewEncoder(w).Encode(user)
}

구현하다, 배포하다 그리고 검증하다

  1. 환경 변수를 설정하세요:

    bash
    $
    export NEW_RELIC_LICENSE_KEY="your-license-key-here"
  2. 애플리케이션을 컴파일하고 실행하세요.

    bash
    $
    go build -o myapp
    $
    ./myapp
  3. 애플리케이션 URL을 방문하여 트래픽을 유도하세요.

  4. one.newrelic.com에서 2-3분 안에 뉴렐릭을 확인하세요.

설치 예시

간단한 HTTP 서버

package main
import (
"fmt"
"log"
"net/http"
"os"
"time"
"github.com/newrelic/go-agent/v3/newrelic"
)
func main() {
// Initialize New Relic
app, err := newrelic.NewApplication(
newrelic.ConfigAppName("Simple Go Server"),
newrelic.ConfigLicense(os.Getenv("NEW_RELIC_LICENSE_KEY")),
)
if err != nil {
log.Fatal(err)
}
// Simple handler
http.HandleFunc(newrelic.WrapHandleFunc(app, "/", func(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "Hello, World!")
}))
log.Println("Server starting on :8080")
log.Fatal(http.ListenAndServe(":8080", nil))
}

Gin 프레임워크 통합

package main
import (
"os"
"github.com/gin-gonic/gin"
"github.com/newrelic/go-agent/v3/integrations/nrgin"
"github.com/newrelic/go-agent/v3/newrelic"
)
func main() {
// Initialize New Relic
app, _ := newrelic.NewApplication(
newrelic.ConfigAppName("Gin Application"),
newrelic.ConfigLicense(os.Getenv("NEW_RELIC_LICENSE_KEY")),
)
// Set up Gin with New Relic middleware
r := gin.Default()
r.Use(nrgin.Middleware(app))
r.GET("/", func(c *gin.Context) {
c.JSON(200, gin.H{"message": "Hello, World!"})
})
r.Run(":8080")
}

백그라운드 작업 모니터링

func processBackgroundJob(app *newrelic.Application, jobData JobData) {
// Create a background transaction
txn := app.StartTransaction("background-job")
defer txn.End()
// Add job context
txn.AddAttribute("job.id", jobData.ID)
txn.AddAttribute("job.type", jobData.Type)
// Process job with error handling
if err := processJob(jobData); err != nil {
txn.NoticeError(err)
log.Printf("Job %s failed: %v", jobData.ID, err)
return
}
log.Printf("Job %s completed successfully", jobData.ID)
}

그 다음에는 무슨 일이 일어날까요?

기본 설치를 완료하면 즉시 다음 화면이 나타납니다.

  • HTTP 엔드포인트의 응답 시간, 처리량 및 오류율을 보여주는 APM 대시보드
  • 가장 느린 웹 requests보여주는 그래픽 트레이스
  • 보고된 오류에 대한 기본 오류 추적 txn.NoticeError()

추가 모니터링 기능을 잠금 해제하려면 더 많은 측정, 리소스를 추가해야 합니다.

문제점 해결

설치 후 데이터가 표시되지 않으면 다음을 확인하세요.

  1. 로그 로그에서 뉴렐릭 연결 메시지를 확인하세요.
  2. 라이선스 키가 올바르고 만료되지 않았는지 확인하십시오.
  3. 뉴렐릭(포트 80/443)에 대한 네트워크 연결이 확보되었는지 확인하십시오.
  4. 자세한 도움은 문제 해결, 해결 가이드를검토하세요.

에이전트의 동작을 확인하려면 디버그 로깅을 활성화하세요.

config := newrelic.NewConfig("My App", os.Getenv("NEW_RELIC_LICENSE_KEY"))
config.Logger = newrelic.NewDebugLogger(os.Stdout)
app, _ := newrelic.NewApplication(config)

다음 단계

이제 기본 모델 설정이 완료되었으므로 설정측정을 통해 옵저버빌리티를 향상할 수 있습니다.

  • 구성 설정을 통해 에이전트가 애플리케이션 전체에서 전역적으로 어떻게 동작할지 제어할 수 있습니다.
  • 측정, 추적하려는 특정 작업에 모니터링 코드를 추가합니다.

에이전트 구성

에이전트 설정을 사용하여 전역 동작을 제어하고 다음을 달성합니다.

측정 추가, 사용

상세한 측정, 로그를 사용하여 특정 작업을 모니터링하고 다음을 달성합니다.

고급 기능 및 모니터링

에이전트를 최신 상태로 유지하세요. 새로운 기능, 성능 향상 및 보안 패치를 받으려면 정기적으로 최신 버전으로 업데이트하십시오.

Copyright © 2026 New Relic Inc.

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