Exemple #1
0
        /// <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);
            });
        }
Exemple #3
0
        /// <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);
            });
        }