Skip to content

Add debug instrumentation for Banzai pipeline

Brett Walker requested to merge bw-instrument-banzai into master

What does this MR do and why?

Add debug instrumentation for the Banzai pipeline. Outputs both filter timing and debug information. It will also color code any long running filters.

For example,

Banzai.render(markdown, project: nil, debug_timing: true)
Banzai.render(markdown, project: Project.first, debug: true)
Sample run with `debug_timing`
[2] pry(main)> Banzai.render(text, project: nil, debug_timing: true)
D, [2024-05-07T18:16:32.644291 #22893] DEBUG -- :   0.000028 : NormalizeSourceFilter [PreProcessPipeline]
D, [2024-05-07T18:16:32.644481 #22893] DEBUG -- :   0.000028 : TruncateSourceFilter [PreProcessPipeline]
D, [2024-05-07T18:16:32.648910 #22893] DEBUG -- :   0.004368 : FrontMatterFilter [PreProcessPipeline]
D, [2024-05-07T18:16:32.699282 #22893] DEBUG -- :   0.000011 : MarkdownPreEscapeLegacyFilter [FullPipeline]
D, [2024-05-07T18:16:32.699330 #22893] DEBUG -- :   0.000004 : DollarMathPreLegacyFilter [FullPipeline]
D, [2024-05-07T18:16:32.700041 #22893] DEBUG -- :   0.000677 : BlockquoteFenceLegacyFilter [FullPipeline]
D, [2024-05-07T18:16:32.828231 #22893] DEBUG -- :   0.128093 : MarkdownFilter [FullPipeline]
D, [2024-05-07T18:16:33.605640 #22893] DEBUG -- :   0.777299 : DollarMathPostLegacyFilter [FullPipeline]
D, [2024-05-07T18:16:33.605729 #22893] DEBUG -- :   0.000013 : MarkdownPostEscapeLegacyFilter [FullPipeline]
D, [2024-05-07T18:16:33.619701 #22893] DEBUG -- :   0.013897 : CodeLanguageFilter [FullPipeline]
D, [2024-05-07T18:16:33.637250 #22893] DEBUG -- :   0.017438 : PlantumlFilter [FullPipeline]
D, [2024-05-07T18:16:34.233487 #22893] DEBUG -- :   0.596108 : SpacedLinkFilter [FullPipeline]
D, [2024-05-07T18:16:42.512124 #22893] DEBUG -- :   8.278521 : SanitizationFilter [FullPipeline]
D, [2024-05-07T18:16:42.521073 #22893] DEBUG -- :   0.008832 : EscapedCharFilter [FullPipeline]
D, [2024-05-07T18:16:42.522944 #22893] DEBUG -- :   0.001797 : KrokiFilter [FullPipeline]
D, [2024-05-07T18:16:43.268925 #22893] DEBUG -- :   0.745901 : GollumTagsFilter [FullPipeline]
D, [2024-05-07T18:16:43.269016 #22893] DEBUG -- :   0.000025 : AssetProxyFilter [FullPipeline]
D, [2024-05-07T18:16:43.294147 #22893] DEBUG -- :   0.025060 : MathFilter [FullPipeline]
D, [2024-05-07T18:16:43.302517 #22893] DEBUG -- :   0.008250 : ColorFilter [FullPipeline]
D, [2024-05-07T18:16:43.311308 #22893] DEBUG -- :   0.008672 : MermaidFilter [FullPipeline]
D, [2024-05-07T18:16:43.319652 #22893] DEBUG -- :   0.008232 : AttributesFilter [FullPipeline]
D, [2024-05-07T18:16:43.328286 #22893] DEBUG -- :   0.008517 : VideoLinkFilter [FullPipeline]
D, [2024-05-07T18:16:43.336770 #22893] DEBUG -- :   0.008337 : AudioLinkFilter [FullPipeline]
D, [2024-05-07T18:16:43.345085 #22893] DEBUG -- :   0.008209 : ImageLazyLoadFilter [FullPipeline]
D, [2024-05-07T18:16:43.353504 #22893] DEBUG -- :   0.008320 : ImageLinkFilter [FullPipeline]
D, [2024-05-07T18:16:43.403654 #22893] DEBUG -- :   0.050053 : TableOfContentsLegacyFilter [FullPipeline]
D, [2024-05-07T18:16:43.493668 #22893] DEBUG -- :   0.089898 : TableOfContentsTagFilter [FullPipeline]
D, [2024-05-07T18:16:44.077953 #22893] DEBUG -- :   0.584170 : AutolinkFilter [FullPipeline]
D, [2024-05-07T18:16:44.086947 #22893] DEBUG -- :   0.008882 : ExternalLinkFilter [FullPipeline]
D, [2024-05-07T18:16:44.087026 #22893] DEBUG -- :   0.000010 : SuggestionFilter [FullPipeline]
D, [2024-05-07T18:16:44.095421 #22893] DEBUG -- :   0.008323 : FootnoteFilter [FullPipeline]
D, [2024-05-07T18:16:46.278212 #22893] DEBUG -- :   2.182678 : InlineDiffFilter [FullPipeline]
D, [2024-05-07T18:16:46.733582 #22893] DEBUG -- :   0.455239 : References::EpicReferenceFilter [FullPipeline]
D, [2024-05-07T18:16:46.733675 #22893] DEBUG -- :   0.000026 : References::IterationReferenceFilter [FullPipeline]
D, [2024-05-07T18:16:46.733701 #22893] DEBUG -- :   0.000008 : References::IterationsCadenceReferenceFilter [FullPipeline]
D, [2024-05-07T18:16:46.733724 #22893] DEBUG -- :   0.000007 : References::VulnerabilityReferenceFilter [FullPipeline]
D, [2024-05-07T18:16:46.733746 #22893] DEBUG -- :   0.000009 : References::UserReferenceFilter [FullPipeline]
D, [2024-05-07T18:16:46.902839 #22893] DEBUG -- :   0.169027 : References::ProjectReferenceFilter [FullPipeline]
D, [2024-05-07T18:16:46.902921 #22893] DEBUG -- :   0.000018 : References::DesignReferenceFilter [FullPipeline]
D, [2024-05-07T18:16:46.902947 #22893] DEBUG -- :   0.000008 : References::IssueReferenceFilter [FullPipeline]
D, [2024-05-07T18:16:46.902969 #22893] DEBUG -- :   0.000008 : References::WorkItemReferenceFilter [FullPipeline]
D, [2024-05-07T18:16:46.902989 #22893] DEBUG -- :   0.000007 : References::ExternalIssueReferenceFilter [FullPipeline]
D, [2024-05-07T18:16:46.903009 #22893] DEBUG -- :   0.000006 : References::MergeRequestReferenceFilter [FullPipeline]
D, [2024-05-07T18:16:46.903028 #22893] DEBUG -- :   0.000006 : References::SnippetReferenceFilter [FullPipeline]
D, [2024-05-07T18:16:46.903048 #22893] DEBUG -- :   0.000008 : References::CommitRangeReferenceFilter [FullPipeline]
D, [2024-05-07T18:16:46.903067 #22893] DEBUG -- :   0.000007 : References::LabelReferenceFilter [FullPipeline]
D, [2024-05-07T18:16:46.903085 #22893] DEBUG -- :   0.000006 : References::MilestoneReferenceFilter [FullPipeline]
D, [2024-05-07T18:16:46.903103 #22893] DEBUG -- :   0.000006 : References::AlertReferenceFilter [FullPipeline]
D, [2024-05-07T18:16:46.903122 #22893] DEBUG -- :   0.000006 : References::FeatureFlagReferenceFilter [FullPipeline]
D, [2024-05-07T18:16:46.903139 #22893] DEBUG -- :   0.000005 : References::CommitReferenceFilter [FullPipeline]
D, [2024-05-07T18:16:48.853390 #22893] DEBUG -- :   1.950158 : EmojiFilter [FullPipeline]
D, [2024-05-07T18:16:48.853463 #22893] DEBUG -- :   0.000008 : CustomEmojiFilter [FullPipeline]
D, [2024-05-07T18:16:48.898753 #22893] DEBUG -- :   0.045213 : TaskListFilter [FullPipeline]
D, [2024-05-07T18:16:48.898876 #22893] DEBUG -- :   0.000056 : SetDirectionFilter [FullPipeline]
D, [2024-05-07T18:16:48.907421 #22893] DEBUG -- :   0.008478 : SyntaxHighlightFilter [FullPipeline]
Sample run with `debug`
Banzai.render(markdown, project: nil, debug: true)

D, [2024-05-13T16:55:58.386089 #64199] DEBUG -- :   0.000060_s : NormalizeSourceFilter [PreProcessPipeline]
D, [2024-05-13T16:55:58.386254 #64199] DEBUG -- : {:pipeline=>"Banzai::Pipeline::PreProcessPipeline", :filter=>"Banzai::Filter::NormalizeSourceFilter", :context=>{:project=>nil, :debug=>true, :pre_process=>true}, :result=>{}}
D, [2024-05-13T16:55:58.386391 #64199] DEBUG -- :   0.000022_s : TruncateSourceFilter [PreProcessPipeline]
D, [2024-05-13T16:55:58.386405 #64199] DEBUG -- : {:pipeline=>"Banzai::Pipeline::PreProcessPipeline", :filter=>"Banzai::Filter::TruncateSourceFilter", :context=>{:project=>nil, :debug=>true, :pre_process=>true}, :result=>{}}
D, [2024-05-13T16:55:58.387698 #64199] DEBUG -- :   0.001245_s : FrontMatterFilter [PreProcessPipeline]
D, [2024-05-13T16:55:58.387712 #64199] DEBUG -- : {:pipeline=>"Banzai::Pipeline::PreProcessPipeline", :filter=>"Banzai::Filter::FrontMatterFilter", :context=>{:project=>nil, :debug=>true, :pre_process=>true}, :result=>{}}
D, [2024-05-13T16:55:58.485784 #64199] DEBUG -- :   0.000012_s : MarkdownPreEscapeLegacyFilter [FullPipeline]
D, [2024-05-13T16:55:58.485809 #64199] DEBUG -- : {:pipeline=>"Banzai::Pipeline::FullPipeline", :filter=>"Banzai::Filter::MarkdownPreEscapeLegacyFilter", :context=>{:project=>nil, :debug=>true, :only_path=>true, :disable_asset_proxy=>true}, :result=>{}}
D, [2024-05-13T16:55:58.485838 #64199] DEBUG -- :   0.000004_s : DollarMathPreLegacyFilter [FullPipeline]
D, [2024-05-13T16:55:58.485843 #64199] DEBUG -- : {:pipeline=>"Banzai::Pipeline::FullPipeline", :filter=>"Banzai::Filter::DollarMathPreLegacyFilter", :context=>{:project=>nil, :debug=>true, :only_path=>true, :disable_asset_proxy=>true}, :result=>{}}
D, [2024-05-13T16:55:58.486420 #64199] DEBUG -- :   0.000528_s : BlockquoteFenceLegacyFilter [FullPipeline]
D, [2024-05-13T16:55:58.486427 #64199] DEBUG -- : {:pipeline=>"Banzai::Pipeline::FullPipeline", :filter=>"Banzai::Filter::BlockquoteFenceLegacyFilter", :context=>{:project=>nil, :debug=>true, :only_path=>true, :disable_asset_proxy=>true}, :result=>{}}
D, [2024-05-13T16:55:58.562060 #64199] DEBUG -- :   0.075556_s : MarkdownFilter [FullPipeline]
D, [2024-05-13T16:55:58.562089 #64199] DEBUG -- : {:pipeline=>"Banzai::Pipeline::FullPipeline", :filter=>"Banzai::Filter::MarkdownFilter", :context=>{:project=>nil, :debug=>true, :only_path=>true, :disable_asset_proxy=>true}, :result=>{}}
D, [2024-05-13T16:55:58.563909 #64199] DEBUG -- :   0.001763_s : DollarMathPostLegacyFilter [FullPipeline]
D, [2024-05-13T16:55:58.563918 #64199] DEBUG -- : {:pipeline=>"Banzai::Pipeline::FullPipeline", :filter=>"Banzai::Filter::DollarMathPostLegacyFilter", :context=>{:project=>nil, :debug=>true, :only_path=>true, :disable_asset_proxy=>true}, :result=>{}}
D, [2024-05-13T16:55:58.563954 #64199] DEBUG -- :   0.000007_s : MarkdownPostEscapeLegacyFilter [FullPipeline]
D, [2024-05-13T16:55:58.563960 #64199] DEBUG -- : {:pipeline=>"Banzai::Pipeline::FullPipeline", :filter=>"Banzai::Filter::MarkdownPostEscapeLegacyFilter", :context=>{:project=>nil, :debug=>true, :only_path=>true, :disable_asset_proxy=>true}, :result=>{}}
D, [2024-05-13T16:55:58.564012 #64199] DEBUG -- :   0.000027_s : CodeLanguageFilter [FullPipeline]
D, [2024-05-13T16:55:58.564019 #64199] DEBUG -- : {:pipeline=>"Banzai::Pipeline::FullPipeline", :filter=>"Banzai::Filter::CodeLanguageFilter", :context=>{:project=>nil, :debug=>true, :only_path=>true, :disable_asset_proxy=>true}, :result=>{}}
D, [2024-05-13T16:55:58.581453 #64199] DEBUG -- :   0.017381_s : PlantumlFilter [FullPipeline]
D, [2024-05-13T16:55:58.581475 #64199] DEBUG -- : {:pipeline=>"Banzai::Pipeline::FullPipeline", :filter=>"Banzai::Filter::PlantumlFilter", :context=>{:project=>nil, :debug=>true, :only_path=>true, :disable_asset_proxy=>true}, :result=>{}}
D, [2024-05-13T16:55:58.581566 #64199] DEBUG -- :   0.000054_s : SpacedLinkFilter [FullPipeline]
D, [2024-05-13T16:55:58.581575 #64199] DEBUG -- : {:pipeline=>"Banzai::Pipeline::FullPipeline", :filter=>"Banzai::Filter::SpacedLinkFilter", :context=>{:project=>nil, :debug=>true, :only_path=>true, :disable_asset_proxy=>true}, :result=>{}}
D, [2024-05-13T16:55:58.583038 #64199] DEBUG -- :   0.001413_s : SanitizationFilter [FullPipeline]
D, [2024-05-13T16:55:58.583057 #64199] DEBUG -- : {:pipeline=>"Banzai::Pipeline::FullPipeline", :filter=>"Banzai::Filter::SanitizationFilter", :context=>{:project=>nil, :debug=>true, :only_path=>true, :disable_asset_proxy=>true}, :result=>{}}
D, [2024-05-13T16:55:58.583137 #64199] DEBUG -- :   0.000035_s : EscapedCharFilter [FullPipeline]
D, [2024-05-13T16:55:58.583144 #64199] DEBUG -- : {:pipeline=>"Banzai::Pipeline::FullPipeline", :filter=>"Banzai::Filter::EscapedCharFilter", :context=>{:project=>nil, :debug=>true, :only_path=>true, :disable_asset_proxy=>true}, :result=>{}}
D, [2024-05-13T16:55:58.587404 #64199] DEBUG -- :   0.004227_s : KrokiFilter [FullPipeline]
D, [2024-05-13T16:55:58.587417 #64199] DEBUG -- : {:pipeline=>"Banzai::Pipeline::FullPipeline", :filter=>"Banzai::Filter::KrokiFilter", :context=>{:project=>nil, :debug=>true, :only_path=>true, :disable_asset_proxy=>true}, :result=>{}}
D, [2024-05-13T16:55:58.587742 #64199] DEBUG -- :   0.000025_s : GollumTagsFilter [FullPipeline]
D, [2024-05-13T16:55:58.587749 #64199] DEBUG -- : {:pipeline=>"Banzai::Pipeline::FullPipeline", :filter=>"Banzai::Filter::GollumTagsFilter", :context=>{:project=>nil, :debug=>true, :only_path=>true, :disable_asset_proxy=>true}, :result=>{}}
D, [2024-05-13T16:55:58.587781 #64199] DEBUG -- :   0.000010_s : AssetProxyFilter [FullPipeline]
D, [2024-05-13T16:55:58.587787 #64199] DEBUG -- : {:pipeline=>"Banzai::Pipeline::FullPipeline", :filter=>"Banzai::Filter::AssetProxyFilter", :context=>{:project=>nil, :debug=>true, :only_path=>true, :disable_asset_proxy=>true}, :result=>{}}
D, [2024-05-13T16:55:58.587824 #64199] DEBUG -- :   0.000017_s : MathFilter [FullPipeline]
D, [2024-05-13T16:55:58.587829 #64199] DEBUG -- : {:pipeline=>"Banzai::Pipeline::FullPipeline", :filter=>"Banzai::Filter::MathFilter", :context=>{:project=>nil, :debug=>true, :only_path=>true, :disable_asset_proxy=>true}, :result=>{}}
D, [2024-05-13T16:55:58.587860 #64199] DEBUG -- :   0.000012_s : ColorFilter [FullPipeline]
D, [2024-05-13T16:55:58.587865 #64199] DEBUG -- : {:pipeline=>"Banzai::Pipeline::FullPipeline", :filter=>"Banzai::Filter::ColorFilter", :context=>{:project=>nil, :debug=>true, :only_path=>true, :disable_asset_proxy=>true}, :result=>{}}
D, [2024-05-13T16:55:58.587896 #64199] DEBUG -- :   0.000013_s : MermaidFilter [FullPipeline]
D, [2024-05-13T16:55:58.587902 #64199] DEBUG -- : {:pipeline=>"Banzai::Pipeline::FullPipeline", :filter=>"Banzai::Filter::MermaidFilter", :context=>{:project=>nil, :debug=>true, :only_path=>true, :disable_asset_proxy=>true}, :result=>{}}
D, [2024-05-13T16:55:58.587931 #64199] DEBUG -- :   0.000010_s : AttributesFilter [FullPipeline]
D, [2024-05-13T16:55:58.587936 #64199] DEBUG -- : {:pipeline=>"Banzai::Pipeline::FullPipeline", :filter=>"Banzai::Filter::AttributesFilter", :context=>{:project=>nil, :debug=>true, :only_path=>true, :disable_asset_proxy=>true}, :result=>{}}
D, [2024-05-13T16:55:58.587968 #64199] DEBUG -- :   0.000014_s : VideoLinkFilter [FullPipeline]
D, [2024-05-13T16:55:58.587973 #64199] DEBUG -- : {:pipeline=>"Banzai::Pipeline::FullPipeline", :filter=>"Banzai::Filter::VideoLinkFilter", :context=>{:project=>nil, :debug=>true, :only_path=>true, :disable_asset_proxy=>true}, :result=>{}}
D, [2024-05-13T16:55:58.588000 #64199] DEBUG -- :   0.000010_s : AudioLinkFilter [FullPipeline]
D, [2024-05-13T16:55:58.588005 #64199] DEBUG -- : {:pipeline=>"Banzai::Pipeline::FullPipeline", :filter=>"Banzai::Filter::AudioLinkFilter", :context=>{:project=>nil, :debug=>true, :only_path=>true, :disable_asset_proxy=>true}, :result=>{}}
D, [2024-05-13T16:55:58.588031 #64199] DEBUG -- :   0.000010_s : ImageLazyLoadFilter [FullPipeline]
D, [2024-05-13T16:55:58.588036 #64199] DEBUG -- : {:pipeline=>"Banzai::Pipeline::FullPipeline", :filter=>"Banzai::Filter::ImageLazyLoadFilter", :context=>{:project=>nil, :debug=>true, :only_path=>true, :disable_asset_proxy=>true}, :result=>{}}
D, [2024-05-13T16:55:58.588063 #64199] DEBUG -- :   0.000011_s : ImageLinkFilter [FullPipeline]
D, [2024-05-13T16:55:58.588068 #64199] DEBUG -- : {:pipeline=>"Banzai::Pipeline::FullPipeline", :filter=>"Banzai::Filter::ImageLinkFilter", :context=>{:project=>nil, :debug=>true, :only_path=>true, :disable_asset_proxy=>true}, :result=>{}}
D, [2024-05-13T16:55:58.588090 #64199] DEBUG -- :   0.000004_s : TableOfContentsLegacyFilter [FullPipeline]
D, [2024-05-13T16:55:58.588094 #64199] DEBUG -- : {:pipeline=>"Banzai::Pipeline::FullPipeline", :filter=>"Banzai::Filter::TableOfContentsLegacyFilter", :context=>{:project=>nil, :debug=>true, :only_path=>true, :disable_asset_proxy=>true}, :result=>{}}
D, [2024-05-13T16:55:58.588131 #64199] DEBUG -- :   0.000019_s : TableOfContentsTagFilter [FullPipeline]
D, [2024-05-13T16:55:58.588136 #64199] DEBUG -- : {:pipeline=>"Banzai::Pipeline::FullPipeline", :filter=>"Banzai::Filter::TableOfContentsTagFilter", :context=>{:project=>nil, :debug=>true, :only_path=>true, :disable_asset_proxy=>true}, :result=>{}}
D, [2024-05-13T16:55:58.588174 #64199] DEBUG -- :   0.000018_s : AutolinkFilter [FullPipeline]
D, [2024-05-13T16:55:58.588179 #64199] DEBUG -- : {:pipeline=>"Banzai::Pipeline::FullPipeline", :filter=>"Banzai::Filter::AutolinkFilter", :context=>{:project=>nil, :debug=>true, :only_path=>true, :disable_asset_proxy=>true}, :result=>{}}
D, [2024-05-13T16:55:58.588298 #64199] DEBUG -- :   0.000101_s : ExternalLinkFilter [FullPipeline]
D, [2024-05-13T16:55:58.588304 #64199] DEBUG -- : {:pipeline=>"Banzai::Pipeline::FullPipeline", :filter=>"Banzai::Filter::ExternalLinkFilter", :context=>{:project=>nil, :debug=>true, :only_path=>true, :disable_asset_proxy=>true}, :result=>{}}
D, [2024-05-13T16:55:58.588324 #64199] DEBUG -- :   0.000003_s : SuggestionFilter [FullPipeline]
D, [2024-05-13T16:55:58.588328 #64199] DEBUG -- : {:pipeline=>"Banzai::Pipeline::FullPipeline", :filter=>"Banzai::Filter::SuggestionFilter", :context=>{:project=>nil, :debug=>true, :only_path=>true, :disable_asset_proxy=>true}, :result=>{}}
D, [2024-05-13T16:55:58.588356 #64199] DEBUG -- :   0.000012_s : FootnoteFilter [FullPipeline]
D, [2024-05-13T16:55:58.588361 #64199] DEBUG -- : {:pipeline=>"Banzai::Pipeline::FullPipeline", :filter=>"Banzai::Filter::FootnoteFilter", :context=>{:project=>nil, :debug=>true, :only_path=>true, :disable_asset_proxy=>true}, :result=>{}}
D, [2024-05-13T16:55:58.589108 #64199] DEBUG -- :   0.000721_s : InlineDiffFilter [FullPipeline]
D, [2024-05-13T16:55:58.589121 #64199] DEBUG -- : {:pipeline=>"Banzai::Pipeline::FullPipeline", :filter=>"Banzai::Filter::InlineDiffFilter", :context=>{:project=>nil, :debug=>true, :only_path=>true, :disable_asset_proxy=>true}, :result=>{}}
D, [2024-05-13T16:55:58.590696 #64199] DEBUG -- :   0.001543_s : References::EpicReferenceFilter [FullPipeline]
D, [2024-05-13T16:55:58.590705 #64199] DEBUG -- : {:pipeline=>"Banzai::Pipeline::FullPipeline", :filter=>"Banzai::Filter::References::EpicReferenceFilter", :context=>{:project=>nil, :debug=>true, :only_path=>true, :disable_asset_proxy=>true}, :result=>{:reference_filter_nodes=>[#<Nokogiri::XML::Element:0x1d114 name="a" attribute_nodes=[#<Nokogiri::XML::Attr:0x1d0c4 name="href" value="#test">, #<Nokogiri::XML::Attr:0x1d0d8 name="aria-hidden" value="true">, #<Nokogiri::XML::Attr:0x1d0ec name="class" value="anchor">, #<Nokogiri::XML::Attr:0x1d100 name="id" value="user-content-test">]>, #<Nokogiri::XML::Text:0x1d128 "test">]}}
D, [2024-05-13T16:55:58.590786 #64199] DEBUG -- :   0.000008_s : References::IterationReferenceFilter [FullPipeline]
D, [2024-05-13T16:55:58.590793 #64199] DEBUG -- : {:pipeline=>"Banzai::Pipeline::FullPipeline", :filter=>"Banzai::Filter::References::IterationReferenceFilter", :context=>{:project=>nil, :debug=>true, :only_path=>true, :disable_asset_proxy=>true}, :result=>{:reference_filter_nodes=>[#<Nokogiri::XML::Element:0x1d114 name="a" attribute_nodes=[#<Nokogiri::XML::Attr:0x1d0c4 name="href" value="#test">, #<Nokogiri::XML::Attr:0x1d0d8 name="aria-hidden" value="true">, #<Nokogiri::XML::Attr:0x1d0ec name="class" value="anchor">, #<Nokogiri::XML::Attr:0x1d100 name="id" value="user-content-test">]>, #<Nokogiri::XML::Text:0x1d128 "test">]}}
D, [2024-05-13T16:55:58.590842 #64199] DEBUG -- :   0.000009_s : References::IterationsCadenceReferenceFilter [FullPipeline]
D, [2024-05-13T16:55:58.590848 #64199] DEBUG -- : {:pipeline=>"Banzai::Pipeline::FullPipeline", :filter=>"Banzai::Filter::References::IterationsCadenceReferenceFilter", :context=>{:project=>nil, :debug=>true, :only_path=>true, :disable_asset_proxy=>true}, :result=>{:reference_filter_nodes=>[#<Nokogiri::XML::Element:0x1d114 name="a" attribute_nodes=[#<Nokogiri::XML::Attr:0x1d0c4 name="href" value="#test">, #<Nokogiri::XML::Attr:0x1d0d8 name="aria-hidden" value="true">, #<Nokogiri::XML::Attr:0x1d0ec name="class" value="anchor">, #<Nokogiri::XML::Attr:0x1d100 name="id" value="user-content-test">]>, #<Nokogiri::XML::Text:0x1d128 "test">]}}
D, [2024-05-13T16:55:58.590891 #64199] DEBUG -- :   0.000007_s : References::VulnerabilityReferenceFilter [FullPipeline]
D, [2024-05-13T16:55:58.590896 #64199] DEBUG -- : {:pipeline=>"Banzai::Pipeline::FullPipeline", :filter=>"Banzai::Filter::References::VulnerabilityReferenceFilter", :context=>{:project=>nil, :debug=>true, :only_path=>true, :disable_asset_proxy=>true}, :result=>{:reference_filter_nodes=>[#<Nokogiri::XML::Element:0x1d114 name="a" attribute_nodes=[#<Nokogiri::XML::Attr:0x1d0c4 name="href" value="#test">, #<Nokogiri::XML::Attr:0x1d0d8 name="aria-hidden" value="true">, #<Nokogiri::XML::Attr:0x1d0ec name="class" value="anchor">, #<Nokogiri::XML::Attr:0x1d100 name="id" value="user-content-test">]>, #<Nokogiri::XML::Text:0x1d128 "test">]}}
D, [2024-05-13T16:55:58.591087 #64199] DEBUG -- :   0.000156_s : References::UserReferenceFilter [FullPipeline]
D, [2024-05-13T16:55:58.591093 #64199] DEBUG -- : {:pipeline=>"Banzai::Pipeline::FullPipeline", :filter=>"Banzai::Filter::References::UserReferenceFilter", :context=>{:project=>nil, :debug=>true, :only_path=>true, :disable_asset_proxy=>true}, :result=>{:reference_filter_nodes=>[#<Nokogiri::XML::Element:0x1d114 name="a" attribute_nodes=[#<Nokogiri::XML::Attr:0x1d0c4 name="href" value="#test">, #<Nokogiri::XML::Attr:0x1d0d8 name="aria-hidden" value="true">, #<Nokogiri::XML::Attr:0x1d0ec name="class" value="anchor">, #<Nokogiri::XML::Attr:0x1d100 name="id" value="user-content-test">]>, #<Nokogiri::XML::Text:0x1d128 "test">]}}
D, [2024-05-13T16:55:58.591313 #64199] DEBUG -- :   0.000183_s : References::ProjectReferenceFilter [FullPipeline]
D, [2024-05-13T16:55:58.591320 #64199] DEBUG -- : {:pipeline=>"Banzai::Pipeline::FullPipeline", :filter=>"Banzai::Filter::References::ProjectReferenceFilter", :context=>{:project=>nil, :debug=>true, :only_path=>true, :disable_asset_proxy=>true}, :result=>{:reference_filter_nodes=>[#<Nokogiri::XML::Element:0x1d114 name="a" attribute_nodes=[#<Nokogiri::XML::Attr:0x1d0c4 name="href" value="#test">, #<Nokogiri::XML::Attr:0x1d0d8 name="aria-hidden" value="true">, #<Nokogiri::XML::Attr:0x1d0ec name="class" value="anchor">, #<Nokogiri::XML::Attr:0x1d100 name="id" value="user-content-test">]>, #<Nokogiri::XML::Text:0x1d128 "test">]}}
D, [2024-05-13T16:55:58.591363 #64199] DEBUG -- :   0.000007_s : References::DesignReferenceFilter [FullPipeline]
D, [2024-05-13T16:55:58.591369 #64199] DEBUG -- : {:pipeline=>"Banzai::Pipeline::FullPipeline", :filter=>"Banzai::Filter::References::DesignReferenceFilter", :context=>{:project=>nil, :debug=>true, :only_path=>true, :disable_asset_proxy=>true}, :result=>{:reference_filter_nodes=>[#<Nokogiri::XML::Element:0x1d114 name="a" attribute_nodes=[#<Nokogiri::XML::Attr:0x1d0c4 name="href" value="#test">, #<Nokogiri::XML::Attr:0x1d0d8 name="aria-hidden" value="true">, #<Nokogiri::XML::Attr:0x1d0ec name="class" value="anchor">, #<Nokogiri::XML::Attr:0x1d100 name="id" value="user-content-test">]>, #<Nokogiri::XML::Text:0x1d128 "test">]}}
D, [2024-05-13T16:55:58.591408 #64199] DEBUG -- :   0.000006_s : References::IssueReferenceFilter [FullPipeline]
D, [2024-05-13T16:55:58.591413 #64199] DEBUG -- : {:pipeline=>"Banzai::Pipeline::FullPipeline", :filter=>"Banzai::Filter::References::IssueReferenceFilter", :context=>{:project=>nil, :debug=>true, :only_path=>true, :disable_asset_proxy=>true}, :result=>{:reference_filter_nodes=>[#<Nokogiri::XML::Element:0x1d114 name="a" attribute_nodes=[#<Nokogiri::XML::Attr:0x1d0c4 name="href" value="#test">, #<Nokogiri::XML::Attr:0x1d0d8 name="aria-hidden" value="true">, #<Nokogiri::XML::Attr:0x1d0ec name="class" value="anchor">, #<Nokogiri::XML::Attr:0x1d100 name="id" value="user-content-test">]>, #<Nokogiri::XML::Text:0x1d128 "test">]}}
D, [2024-05-13T16:55:58.591451 #64199] DEBUG -- :   0.000005_s : References::WorkItemReferenceFilter [FullPipeline]
D, [2024-05-13T16:55:58.591456 #64199] DEBUG -- : {:pipeline=>"Banzai::Pipeline::FullPipeline", :filter=>"Banzai::Filter::References::WorkItemReferenceFilter", :context=>{:project=>nil, :debug=>true, :only_path=>true, :disable_asset_proxy=>true}, :result=>{:reference_filter_nodes=>[#<Nokogiri::XML::Element:0x1d114 name="a" attribute_nodes=[#<Nokogiri::XML::Attr:0x1d0c4 name="href" value="#test">, #<Nokogiri::XML::Attr:0x1d0d8 name="aria-hidden" value="true">, #<Nokogiri::XML::Attr:0x1d0ec name="class" value="anchor">, #<Nokogiri::XML::Attr:0x1d100 name="id" value="user-content-test">]>, #<Nokogiri::XML::Text:0x1d128 "test">]}}
D, [2024-05-13T16:55:58.591492 #64199] DEBUG -- :   0.000005_s : References::ExternalIssueReferenceFilter [FullPipeline]
D, [2024-05-13T16:55:58.591497 #64199] DEBUG -- : {:pipeline=>"Banzai::Pipeline::FullPipeline", :filter=>"Banzai::Filter::References::ExternalIssueReferenceFilter", :context=>{:project=>nil, :debug=>true, :only_path=>true, :disable_asset_proxy=>true}, :result=>{:reference_filter_nodes=>[#<Nokogiri::XML::Element:0x1d114 name="a" attribute_nodes=[#<Nokogiri::XML::Attr:0x1d0c4 name="href" value="#test">, #<Nokogiri::XML::Attr:0x1d0d8 name="aria-hidden" value="true">, #<Nokogiri::XML::Attr:0x1d0ec name="class" value="anchor">, #<Nokogiri::XML::Attr:0x1d100 name="id" value="user-content-test">]>, #<Nokogiri::XML::Text:0x1d128 "test">]}}
D, [2024-05-13T16:55:58.591534 #64199] DEBUG -- :   0.000006_s : References::MergeRequestReferenceFilter [FullPipeline]
D, [2024-05-13T16:55:58.591539 #64199] DEBUG -- : {:pipeline=>"Banzai::Pipeline::FullPipeline", :filter=>"Banzai::Filter::References::MergeRequestReferenceFilter", :context=>{:project=>nil, :debug=>true, :only_path=>true, :disable_asset_proxy=>true}, :result=>{:reference_filter_nodes=>[#<Nokogiri::XML::Element:0x1d114 name="a" attribute_nodes=[#<Nokogiri::XML::Attr:0x1d0c4 name="href" value="#test">, #<Nokogiri::XML::Attr:0x1d0d8 name="aria-hidden" value="true">, #<Nokogiri::XML::Attr:0x1d0ec name="class" value="anchor">, #<Nokogiri::XML::Attr:0x1d100 name="id" value="user-content-test">]>, #<Nokogiri::XML::Text:0x1d128 "test">]}}
D, [2024-05-13T16:55:58.591579 #64199] DEBUG -- :   0.000005_s : References::SnippetReferenceFilter [FullPipeline]
D, [2024-05-13T16:55:58.591584 #64199] DEBUG -- : {:pipeline=>"Banzai::Pipeline::FullPipeline", :filter=>"Banzai::Filter::References::SnippetReferenceFilter", :context=>{:project=>nil, :debug=>true, :only_path=>true, :disable_asset_proxy=>true}, :result=>{:reference_filter_nodes=>[#<Nokogiri::XML::Element:0x1d114 name="a" attribute_nodes=[#<Nokogiri::XML::Attr:0x1d0c4 name="href" value="#test">, #<Nokogiri::XML::Attr:0x1d0d8 name="aria-hidden" value="true">, #<Nokogiri::XML::Attr:0x1d0ec name="class" value="anchor">, #<Nokogiri::XML::Attr:0x1d100 name="id" value="user-content-test">]>, #<Nokogiri::XML::Text:0x1d128 "test">]}}
D, [2024-05-13T16:55:58.591623 #64199] DEBUG -- :   0.000007_s : References::CommitRangeReferenceFilter [FullPipeline]
D, [2024-05-13T16:55:58.591628 #64199] DEBUG -- : {:pipeline=>"Banzai::Pipeline::FullPipeline", :filter=>"Banzai::Filter::References::CommitRangeReferenceFilter", :context=>{:project=>nil, :debug=>true, :only_path=>true, :disable_asset_proxy=>true}, :result=>{:reference_filter_nodes=>[#<Nokogiri::XML::Element:0x1d114 name="a" attribute_nodes=[#<Nokogiri::XML::Attr:0x1d0c4 name="href" value="#test">, #<Nokogiri::XML::Attr:0x1d0d8 name="aria-hidden" value="true">, #<Nokogiri::XML::Attr:0x1d0ec name="class" value="anchor">, #<Nokogiri::XML::Attr:0x1d100 name="id" value="user-content-test">]>, #<Nokogiri::XML::Text:0x1d128 "test">]}}
D, [2024-05-13T16:55:58.591664 #64199] DEBUG -- :   0.000005_s : References::LabelReferenceFilter [FullPipeline]
D, [2024-05-13T16:55:58.591669 #64199] DEBUG -- : {:pipeline=>"Banzai::Pipeline::FullPipeline", :filter=>"Banzai::Filter::References::LabelReferenceFilter", :context=>{:project=>nil, :debug=>true, :only_path=>true, :disable_asset_proxy=>true}, :result=>{:reference_filter_nodes=>[#<Nokogiri::XML::Element:0x1d114 name="a" attribute_nodes=[#<Nokogiri::XML::Attr:0x1d0c4 name="href" value="#test">, #<Nokogiri::XML::Attr:0x1d0d8 name="aria-hidden" value="true">, #<Nokogiri::XML::Attr:0x1d0ec name="class" value="anchor">, #<Nokogiri::XML::Attr:0x1d100 name="id" value="user-content-test">]>, #<Nokogiri::XML::Text:0x1d128 "test">]}}
D, [2024-05-13T16:55:58.591705 #64199] DEBUG -- :   0.000005_s : References::MilestoneReferenceFilter [FullPipeline]
D, [2024-05-13T16:55:58.591711 #64199] DEBUG -- : {:pipeline=>"Banzai::Pipeline::FullPipeline", :filter=>"Banzai::Filter::References::MilestoneReferenceFilter", :context=>{:project=>nil, :debug=>true, :only_path=>true, :disable_asset_proxy=>true}, :result=>{:reference_filter_nodes=>[#<Nokogiri::XML::Element:0x1d114 name="a" attribute_nodes=[#<Nokogiri::XML::Attr:0x1d0c4 name="href" value="#test">, #<Nokogiri::XML::Attr:0x1d0d8 name="aria-hidden" value="true">, #<Nokogiri::XML::Attr:0x1d0ec name="class" value="anchor">, #<Nokogiri::XML::Attr:0x1d100 name="id" value="user-content-test">]>, #<Nokogiri::XML::Text:0x1d128 "test">]}}
D, [2024-05-13T16:55:58.591747 #64199] DEBUG -- :   0.000005_s : References::AlertReferenceFilter [FullPipeline]
D, [2024-05-13T16:55:58.591752 #64199] DEBUG -- : {:pipeline=>"Banzai::Pipeline::FullPipeline", :filter=>"Banzai::Filter::References::AlertReferenceFilter", :context=>{:project=>nil, :debug=>true, :only_path=>true, :disable_asset_proxy=>true}, :result=>{:reference_filter_nodes=>[#<Nokogiri::XML::Element:0x1d114 name="a" attribute_nodes=[#<Nokogiri::XML::Attr:0x1d0c4 name="href" value="#test">, #<Nokogiri::XML::Attr:0x1d0d8 name="aria-hidden" value="true">, #<Nokogiri::XML::Attr:0x1d0ec name="class" value="anchor">, #<Nokogiri::XML::Attr:0x1d100 name="id" value="user-content-test">]>, #<Nokogiri::XML::Text:0x1d128 "test">]}}
D, [2024-05-13T16:55:58.591787 #64199] DEBUG -- :   0.000005_s : References::FeatureFlagReferenceFilter [FullPipeline]
D, [2024-05-13T16:55:58.591792 #64199] DEBUG -- : {:pipeline=>"Banzai::Pipeline::FullPipeline", :filter=>"Banzai::Filter::References::FeatureFlagReferenceFilter", :context=>{:project=>nil, :debug=>true, :only_path=>true, :disable_asset_proxy=>true}, :result=>{:reference_filter_nodes=>[#<Nokogiri::XML::Element:0x1d114 name="a" attribute_nodes=[#<Nokogiri::XML::Attr:0x1d0c4 name="href" value="#test">, #<Nokogiri::XML::Attr:0x1d0d8 name="aria-hidden" value="true">, #<Nokogiri::XML::Attr:0x1d0ec name="class" value="anchor">, #<Nokogiri::XML::Attr:0x1d100 name="id" value="user-content-test">]>, #<Nokogiri::XML::Text:0x1d128 "test">]}}
D, [2024-05-13T16:55:58.591830 #64199] DEBUG -- :   0.000004_s : References::CommitReferenceFilter [FullPipeline]
D, [2024-05-13T16:55:58.591834 #64199] DEBUG -- : {:pipeline=>"Banzai::Pipeline::FullPipeline", :filter=>"Banzai::Filter::References::CommitReferenceFilter", :context=>{:project=>nil, :debug=>true, :only_path=>true, :disable_asset_proxy=>true}, :result=>{:reference_filter_nodes=>[#<Nokogiri::XML::Element:0x1d114 name="a" attribute_nodes=[#<Nokogiri::XML::Attr:0x1d0c4 name="href" value="#test">, #<Nokogiri::XML::Attr:0x1d0d8 name="aria-hidden" value="true">, #<Nokogiri::XML::Attr:0x1d0ec name="class" value="anchor">, #<Nokogiri::XML::Attr:0x1d100 name="id" value="user-content-test">]>, #<Nokogiri::XML::Text:0x1d128 "test">]}}
D, [2024-05-13T16:55:58.633331 #64199] DEBUG -- :   0.041419_s : EmojiFilter [FullPipeline]
D, [2024-05-13T16:55:58.633360 #64199] DEBUG -- : {:pipeline=>"Banzai::Pipeline::FullPipeline", :filter=>"Banzai::Filter::EmojiFilter", :context=>{:project=>nil, :debug=>true, :only_path=>true, :disable_asset_proxy=>true}, :result=>{:reference_filter_nodes=>[#<Nokogiri::XML::Element:0x1d114 name="a" attribute_nodes=[#<Nokogiri::XML::Attr:0x1d0c4 name="href" value="#test">, #<Nokogiri::XML::Attr:0x1d0d8 name="aria-hidden" value="true">, #<Nokogiri::XML::Attr:0x1d0ec name="class" value="anchor">, #<Nokogiri::XML::Attr:0x1d100 name="id" value="user-content-test">]>, #<Nokogiri::XML::Text:0x1d128 "test">]}}
D, [2024-05-13T16:55:58.633461 #64199] DEBUG -- :   0.000010_s : CustomEmojiFilter [FullPipeline]
D, [2024-05-13T16:55:58.633467 #64199] DEBUG -- : {:pipeline=>"Banzai::Pipeline::FullPipeline", :filter=>"Banzai::Filter::CustomEmojiFilter", :context=>{:project=>nil, :debug=>true, :only_path=>true, :disable_asset_proxy=>true}, :result=>{:reference_filter_nodes=>[#<Nokogiri::XML::Element:0x1d114 name="a" attribute_nodes=[#<Nokogiri::XML::Attr:0x1d0c4 name="href" value="#test">, #<Nokogiri::XML::Attr:0x1d0d8 name="aria-hidden" value="true">, #<Nokogiri::XML::Attr:0x1d0ec name="class" value="anchor">, #<Nokogiri::XML::Attr:0x1d100 name="id" value="user-content-test">]>, #<Nokogiri::XML::Text:0x1d128 "test">]}}
D, [2024-05-13T16:55:58.633586 #64199] DEBUG -- :   0.000075_s : TaskListFilter [FullPipeline]
D, [2024-05-13T16:55:58.633594 #64199] DEBUG -- : {:pipeline=>"Banzai::Pipeline::FullPipeline", :filter=>"Banzai::Filter::TaskListFilter", :context=>{:project=>nil, :debug=>true, :only_path=>true, :disable_asset_proxy=>true}, :result=>{:reference_filter_nodes=>[#<Nokogiri::XML::Element:0x1d114 name="a" attribute_nodes=[#<Nokogiri::XML::Attr:0x1d0c4 name="href" value="#test">, #<Nokogiri::XML::Attr:0x1d0d8 name="aria-hidden" value="true">, #<Nokogiri::XML::Attr:0x1d0ec name="class" value="anchor">, #<Nokogiri::XML::Attr:0x1d100 name="id" value="user-content-test">]>, #<Nokogiri::XML::Text:0x1d128 "test">]}}
D, [2024-05-13T16:55:58.633671 #64199] DEBUG -- :   0.000038_s : SetDirectionFilter [FullPipeline]
D, [2024-05-13T16:55:58.633677 #64199] DEBUG -- : {:pipeline=>"Banzai::Pipeline::FullPipeline", :filter=>"Banzai::Filter::SetDirectionFilter", :context=>{:project=>nil, :debug=>true, :only_path=>true, :disable_asset_proxy=>true}, :result=>{:reference_filter_nodes=>[#<Nokogiri::XML::Element:0x1d114 name="a" attribute_nodes=[#<Nokogiri::XML::Attr:0x1d0c4 name="href" value="#test">, #<Nokogiri::XML::Attr:0x1d0d8 name="aria-hidden" value="true">, #<Nokogiri::XML::Attr:0x1d0ec name="class" value="anchor">, #<Nokogiri::XML::Attr:0x1d100 name="id" value="user-content-test">]>, #<Nokogiri::XML::Text:0x1d128 "test">]}}
D, [2024-05-13T16:55:58.633786 #64199] DEBUG -- :   0.000069_s : SyntaxHighlightFilter [FullPipeline]
D, [2024-05-13T16:55:58.633793 #64199] DEBUG -- : {:pipeline=>"Banzai::Pipeline::FullPipeline", :filter=>"Banzai::Filter::SyntaxHighlightFilter", :context=>{:project=>nil, :debug=>true, :only_path=>true, :disable_asset_proxy=>true}, :result=>{:reference_filter_nodes=>[#<Nokogiri::XML::Element:0x1d114 name="a" attribute_nodes=[#<Nokogiri::XML::Attr:0x1d0c4 name="href" value="#test">, #<Nokogiri::XML::Attr:0x1d0d8 name="aria-hidden" value="true">, #<Nokogiri::XML::Attr:0x1d0ec name="class" value="anchor">, #<Nokogiri::XML::Attr:0x1d100 name="id" value="user-content-test">]>, #<Nokogiri::XML::Text:0x1d128 "test">]}}

MR acceptance checklist

Please evaluate this MR against the MR acceptance checklist. It helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.

Edited by Brett Walker

Merge request reports