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

如何在New Relic仪表板用自定义客户端名称替换HTTP.URL追踪微服务

New Relic中替换HTTP URL为自定义客户端名称的最优实现方案

一、优先方案:代码注入自定义属性(数据源层面处理)

直接在微服务代码中,利用New Relic Agent API给HTTP请求Span添加自定义客户端名称属性,这是最可靠的方式,能避免后续规则维护的复杂度:

  • 不同语言的Agent API示例:
    • Java:NewRelic.addCustomParameter("custom.clientName", "你的客户端名称");(在HTTP请求发起前调用)
    • Python:newrelic.agent.add_custom_parameter("custom.clientName", "你的客户端名称")
    • Go:newrelic.StartSpan(ctx, "http-request", newrelic.WithAttribute("custom.clientName", "你的客户端名称"))
  • 核心逻辑:根据你的client/HAIP映射关系,在发起请求时匹配对应的客户端名称,注入到Span属性中。

二、无代码方案:用规则引擎转换现有Span数据

如果无法修改业务代码,可通过New Relic规则引擎对已采集的Span数据进行属性转换:

  1. 进入New Relic One,导航到「数据管理 > 规则」
  2. 创建新规则,选择Span作为目标数据源
  3. 设置筛选条件:仅处理HTTP类型的Span,输入span.category = 'http'
  4. 添加「转换」动作,根据http.url配置映射规则:
    • 示例规则:IF http.url LIKE 'https://haip-xxx/%' THEN SET custom.clientName = '客户端A'
    • 添加多个条件条目,覆盖所有HAIP/客户端映射关系
  5. 保存规则,等待5-10分钟后,新采集的Span会自动带上custom.clientName属性

三、在仪表板创建追踪面板

有了custom.clientName属性后,即可用NRQL查询构建可视化面板:

  1. 进入「仪表板」,创建新面板或编辑现有面板
  2. 选择「查询构建器」,输入NRQL查询语句:
    • 统计各客户端调用次数:
      SELECT count(*) FROM Span WHERE span.category = 'http' AND custom.clientName IS NOT NULL FACET custom.clientName TIMESERIES
      
    • 统计各客户端平均响应耗时:
      SELECT average(duration) FROM Span WHERE span.category = 'http' AND custom.clientName IS NOT NULL FACET custom.clientName TIMESERIES
      
  3. 选择合适的可视化类型(柱状图、折线图、表格等),将面板添加到仪表板即可

进阶优化:用Lookup Table管理映射关系

如果映射关系频繁变动,可使用New Relic Lookup Table统一管理:

  1. 进入「数据管理 > Lookup Tables」,创建新表,设置键为http.url的匹配值,值为客户端名称
  2. 在规则引擎的转换动作中,使用LOOKUP(http.url, '你的Lookup表名称')来自动匹配并设置custom.clientName属性,无需逐个添加条件

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 05:45:36