New Relic中的Custom Instrumentation:我应该将哪个assemblyName与C#Web窗体

本文关键字:assemblyName 窗体 C#Web 我应该 中的 Relic Custom Instrumentation New | 更新日期: 2023-09-27 18:22:02

我在SO上到处搜索,还阅读了New Relic网站上的所有相关文档。

我正试图从我的C#.Net Web窗体页面中捕获NewRelic事务跟踪中特定于方法的信息,但在的任何地方都找不到同时使用这两种技术的示例。我确信我的问题是我不知道该使用哪个assemblyName。下面是一个工作示例,我希望在其中获得有关方法SleepForFive():的详细信息

TestNewRelic.aspx

<%@ Page Language="C#" CodeFile="TestNewRelic.aspx.cs" Inherits="Sandbox_TestNewRelic" %>
<html>
<body>
    <form runat="server">
        <asp:Button ID="btnFiveSeconds" runat="server" OnClick="btnFiveSeconds_Click" Text="Sleep for 5" />
        <br />
        <asp:Label ID="lblResult" runat="server" />
    </form>
</body>
</html>

TestNewRelic.aspx。cs

using System;
using System.Threading;
public partial class Sandbox_TestNewRelic : System.Web.UI.Page
{
    protected void btnFiveSeconds_Click(object sender, EventArgs e)
    {
        SleepForFive();
        lblResult.Text = "Done";
    }
    public void SleepForFive() { Thread.Sleep(5000); }
}

DotNetInstrumentation.xml

<?xml version="1.0" encoding="utf-8"?>
<extension xmlns="urn:newrelic-extension">
  <instrumentation>
    <tracerFactory >
      <match assemblyName="" className="Sandbox_TestNewRelic">
        <exactMethodMatcher methodName="SleepForFive"/>
      </match>
      <match assemblyName="System.Web" className="System.Web.UI.Page">
        <exactMethodMatcher methodName="FrameworkInitialize" />
        <exactMethodMatcher methodName="OnInit" />
      </match>
    </tracerFactory>
  </instrumentation>
</extension>

我的结果

请点击此链接查看New Relic的输出(没有足够的声誉将其发布在这里…)

摘要

如图所示,Custom Instrumentation正在工作——我得到了我要求的两个System.Web方法——我缺少什么?

要查看SleepForFive()方法,我必须更改什么(如果这真的很简单,那么我就得吃我的短裤了)。:)

New Relic中的Custom Instrumentation:我应该将哪个assemblyName与C#Web窗体

文件的<match />节点中的assemblyName不能为空。将其设置为项目的命名空间。不要添加.Controllers对象。例如,如果我的名称空间是SunnySideUp.Controllers,而我的className是"Tastey_Eggs",那么它看起来是这样的:

<match assemblyName="SunnySideUp" className="Tastey_Eggs">

自定义工具中的其他所有内容看起来都是正确的。