You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无法通过New Relic监控Go项目,Java项目可正常监控求助

Go项目无法被New Relic监控的排查与解决方案

核心问题排查与修复

1. HTTP服务未启动

你的代码仅注册了HTTP handler,但未启动服务监听,导致没有请求触发监控数据上报。必须在main函数末尾添加服务启动逻辑。

2. Agent初始化未等待完成

Go Agent初始化是异步的,若在初始化完成前处理请求,会导致数据无法正常上报。需等待Agent成功连接到New Relic服务器。

3. License Key有效性验证

确认代码中的<YOUR_NEW_RELIC_LICENSE_KEY>已替换为实际有效的密钥,且与Java项目使用的密钥属于同一区域(US/EU),区域不匹配会直接导致上报失败。

4. 开启调试日志定位问题

添加日志配置,查看Agent运行时的错误信息,快速定位网络、权限类问题:

newrelic.ConfigDebugLogger(os.Stdout),

修改后的完整可运行代码

package main

import (
    "fmt"
    "io"
    "net/http"
    "os"
    "time"

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

var newrelicApp *newrelic.Application

func main() {
    app, err := newrelic.NewApplication(
        newrelic.ConfigAppName("MyAppMain"),
        newrelic.ConfigLicense("你的实际License Key"),
        newrelic.ConfigAppLogForwardingEnabled(true),
        newrelic.ConfigDebugLogger(os.Stdout), // 开启调试日志
    )
    if err != nil {
        fmt.Printf("New Relic初始化错误: %v\n", err)
        return
    }

    // 等待Agent连接到New Relic,超时10秒
    if err := app.WaitForConnection(10 * time.Second); err != nil {
        fmt.Printf("等待Agent连接失败: %v\n", err)
        return
    }

    newrelicApp = app
    http.HandleFunc(newrelic.WrapHandleFunc(app, "/test", customEvent))

    // 启动HTTP服务
    fmt.Println("服务启动在 :8080")
    if err := http.ListenAndServe(":8080", nil); err != nil {
        fmt.Printf("HTTP服务启动失败: %v\n", err)
    }
}

func customEvent(w http.ResponseWriter, req *http.Request) {
    io.WriteString(w, "recording a custom event")

    // 从请求上下文获取当前事务,这是更推荐的上报方式
    txn := newrelic.FromContext(req.Context())
    if txn != nil {
        txn.RecordCustomEvent("MyAppMainEvent", map[string]interface{}{
            "text":      "Hello VP",
            "env":       "go_local",
            "alertType": "error",
            "priority":  "Critical",
            "source":    "MyAppMain",
        })
    } else {
        fmt.Println("无法获取当前事务,上报失败")
    }
}

额外排查步骤

  • 检查网络连通性:确保Go项目所在服务器能访问New Relic对应区域的端点
  • 确认Go版本兼容性:New Relic Go Agent要求Go 1.18及以上版本
  • 查看控制台延迟:New Relic数据上报可能存在几分钟延迟,等待后再检查控制台数据

内容的提问来源于stack exchange,提问作者Urvesh Rathod

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 17:10:14