/// <summary> /// https://github.com/elastic/apm-agent-dotnet/pull/792 /// </summary> static void __add_filter__() { var extension = new string[] { ".png", ".jpg", ".jpeg", ".gif", ".js", ".css", ".json", ".txt", ".exe", ".zip", ".tar" }; Agent.AddFilter((ITransaction transaction) => { //transaction.Context.Request.Url.Protocol = "[HIDDEN]"; var url = transaction.Context.Request.Url.Full; if (url?.Length > 0 && extension.Any(x => url.EndsWith(x, StringComparison.InvariantCultureIgnoreCase))) { return(null); } return(transaction); }); Agent.AddFilter((ISpan span) => { return(span); }); }
// ReSharper restore ArrangeMethodOrOperatorBody /// <summary> /// Registers some sample filters. /// </summary> // ReSharper disable once UnusedMember.Local private static void FilterSample() { Agent.AddFilter((ITransaction transaction) => { transaction.Name = "NewTransactionName"; return(transaction); }); Agent.AddFilter((ITransaction transaction) => { transaction.Type = "NewSpanName"; return(transaction); }); Agent.AddFilter((ISpan span) => { span.Name = "NewSpanName"; return(span); }); Agent.AddFilter((IError error) => { Console.WriteLine($"Error id printed in a filter: {error.Id}"); return(error); }); }
/// <summary> /// Registers some sample filters. /// </summary> // ReSharper disable once UnusedMember.Local private static void FilterSample() { Agent.AddFilter((ITransaction transaction) => { transaction.Name = "NewTransactionName"; return(transaction); }); Agent.AddFilter((ITransaction transaction) => { transaction.Type = "NewSpanName"; return(transaction); }); Agent.AddFilter((ISpan span) => { span.Name = "NewSpanName"; return(span); }); Agent.AddFilter(span => { if (span.StackTrace.Count > 10) { span.StackTrace.RemoveRange(10, span.StackTrace.Count - 10); } return(span); }); Agent.AddFilter(error => { if (error.Culprit == "SecretComponent") { return(null); } if (error.Exception.Type == "SecretType") { error.Exception.Message = "[HIDDEN]"; } Console.WriteLine( $"Error printed in a filter - culprit: {error.Culprit}, id: {error.Id}, parentId: {error.ParentId}, traceId: {error.TraceId}, transactionId: {error.TransactionId}"); return(error); }); }