[{"data":1,"prerenderedAt":275},["ShallowReactive",2],{"docs-\u002Fdocs\u002Fgetting-started\u002Fquick-start":3,"docs-navigation":203},{"id":4,"title":5,"body":6,"description":196,"extension":197,"meta":198,"navTitle":5,"navigation":55,"path":199,"seo":200,"stem":201,"__hash__":202},"docs\u002Fdocs\u002F1.getting-started\u002F2.quick-start.md","Quick start",{"type":7,"value":8,"toc":192},"minimark",[9,38,132,136,141,156,160,188],[10,11,16],"pre",{"className":12,"code":13,"language":14,"meta":15,"style":15},"language-bash shiki shiki-themes github-light github-dark","dotnet add package Nafas.Observability\n","bash","",[17,18,19],"code",{"__ignoreMap":15},[20,21,24,28,32,35],"span",{"class":22,"line":23},"line",1,[20,25,27],{"class":26},"sScJk","dotnet",[20,29,31],{"class":30},"sZZnC"," add",[20,33,34],{"class":30}," package",[20,36,37],{"class":30}," Nafas.Observability\n",[10,39,43],{"className":40,"code":41,"language":42,"meta":15,"style":15},"language-csharp shiki shiki-themes github-light github-dark","var builder = WebApplication.CreateBuilder(args);\n\nbuilder.Services.AddNafasServer(options =>\n{\n    \u002F\u002F Every option below is optional -- these are the actual defaults.\n    options.Provider = DatabaseProvider.Sqlite;\n    options.RetentionDays = 30;\n    \u002F\u002F options.AlertWebhookUrl = \"https:\u002F\u002Fexample.com\u002Fwebhooks\u002Fnafas\";\n});\n\nvar app = builder.Build();\n\napp.UseNafasDashboard(\"\u002Fnafas\"); \u002F\u002F -> https:\u002F\u002Fyour-app\u002Fnafas\n\napp.Run();\n","csharp",[17,44,45,50,57,63,69,75,81,87,93,99,104,110,115,121,126],{"__ignoreMap":15},[20,46,47],{"class":22,"line":23},[20,48,49],{},"var builder = WebApplication.CreateBuilder(args);\n",[20,51,53],{"class":22,"line":52},2,[20,54,56],{"emptyLinePlaceholder":55},true,"\n",[20,58,60],{"class":22,"line":59},3,[20,61,62],{},"builder.Services.AddNafasServer(options =>\n",[20,64,66],{"class":22,"line":65},4,[20,67,68],{},"{\n",[20,70,72],{"class":22,"line":71},5,[20,73,74],{},"    \u002F\u002F Every option below is optional -- these are the actual defaults.\n",[20,76,78],{"class":22,"line":77},6,[20,79,80],{},"    options.Provider = DatabaseProvider.Sqlite;\n",[20,82,84],{"class":22,"line":83},7,[20,85,86],{},"    options.RetentionDays = 30;\n",[20,88,90],{"class":22,"line":89},8,[20,91,92],{},"    \u002F\u002F options.AlertWebhookUrl = \"https:\u002F\u002Fexample.com\u002Fwebhooks\u002Fnafas\";\n",[20,94,96],{"class":22,"line":95},9,[20,97,98],{},"});\n",[20,100,102],{"class":22,"line":101},10,[20,103,56],{"emptyLinePlaceholder":55},[20,105,107],{"class":22,"line":106},11,[20,108,109],{},"var app = builder.Build();\n",[20,111,113],{"class":22,"line":112},12,[20,114,56],{"emptyLinePlaceholder":55},[20,116,118],{"class":22,"line":117},13,[20,119,120],{},"app.UseNafasDashboard(\"\u002Fnafas\"); \u002F\u002F -> https:\u002F\u002Fyour-app\u002Fnafas\n",[20,122,124],{"class":22,"line":123},14,[20,125,56],{"emptyLinePlaceholder":55},[20,127,129],{"class":22,"line":128},15,[20,130,131],{},"app.Run();\n",[133,134,135],"p",{},"That's it — no instrumentation code to add anywhere else.",[137,138,140],"h2",{"id":139},"what-you-get-immediately","What you get immediately",[133,142,143,144,147,148,151,152,155],{},"Every ",[17,145,146],{},"ILogger"," call, every ",[17,149,150],{},"Activity","\u002Fspan (including ASP.NET Core's own\nper-request span), and every ",[17,153,154],{},"Meter"," measurement (including ASP.NET Core\n8+'s built-in request-duration metric) your app already produces is\ncaptured from this point on and shown on a real-time dashboard mounted\ndirectly inside your own app, in English or Persian, light or dark.",[137,157,159],{"id":158},"next-steps","Next steps",[161,162,163,173,180],"ul",{},[164,165,166,167,172],"li",{},"See exactly ",[168,169,171],"a",{"href":170},"\u002Fdocs\u002Fhow-it-works\u002Fwhat-gets-captured","what gets captured, and how",".",[164,174,175,176,172],{},"Review every ",[168,177,179],{"href":178},"\u002Fdocs\u002Fconfiguration\u002Foptions","configuration option",[164,181,182,183,187],{},"Check the ",[168,184,186],{"href":185},"\u002Fdocs\u002Fconfiguration\u002Fsecurity","security default"," before\nexposing the dashboard beyond your own machine.",[189,190,191],"style",{},"html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":15,"searchDepth":52,"depth":52,"links":193},[194,195],{"id":139,"depth":52,"text":140},{"id":158,"depth":52,"text":159},"Install the package and mount the dashboard — two calls in Program.cs, nothing else to deploy.","md",{},"\u002Fdocs\u002Fgetting-started\u002Fquick-start",{"title":5,"description":196},"docs\u002F1.getting-started\u002F2.quick-start","5M95TOS0zCfvK7eg6IAa4MrW3qW0AmLKmBIVIG6gZ7E",[204],{"title":205,"path":206,"stem":207,"children":208,"page":-1},"Docs","\u002Fdocs","docs",[209,212,227,239,250,263,271],{"title":210,"path":206,"stem":211},"Documentation","docs\u002Findex",{"title":213,"path":214,"stem":215,"children":216,"page":226},"Getting Started","\u002Fdocs\u002Fgetting-started","docs\u002F1.getting-started",[217,221,222],{"title":218,"path":219,"stem":220},"Why Nafas","\u002Fdocs\u002Fgetting-started\u002Fwhy-nafas","docs\u002F1.getting-started\u002F1.why-nafas",{"title":5,"path":199,"stem":201},{"title":223,"path":224,"stem":225},"Requirements","\u002Fdocs\u002Fgetting-started\u002Frequirements","docs\u002F1.getting-started\u002F3.requirements",false,{"title":228,"path":229,"stem":230,"children":231,"page":226},"How It Works","\u002Fdocs\u002Fhow-it-works","docs\u002F2.how-it-works",[232,235],{"title":233,"path":170,"stem":234},"What gets captured, and how","docs\u002F2.how-it-works\u002F1.what-gets-captured",{"title":236,"path":237,"stem":238},"How it's built internally","\u002Fdocs\u002Fhow-it-works\u002Finternals","docs\u002F2.how-it-works\u002F2.internals",{"title":240,"path":241,"stem":242,"children":243,"page":226},"Configuration","\u002Fdocs\u002Fconfiguration","docs\u002F3.configuration",[244,247],{"title":245,"path":178,"stem":246},"Configuration options","docs\u002F3.configuration\u002F1.options",{"title":248,"path":185,"stem":249},"Security","docs\u002F3.configuration\u002F2.security",{"title":251,"path":252,"stem":253,"children":254,"page":226},"Deployment","\u002Fdocs\u002Fdeployment","docs\u002F4.deployment",[255,259],{"title":256,"path":257,"stem":258},"Multi-instance deployments","\u002Fdocs\u002Fdeployment\u002Fmulti-instance","docs\u002F4.deployment\u002F1.multi-instance",{"title":260,"path":261,"stem":262},"Desktop and other non-ASP.NET Core apps","\u002Fdocs\u002Fdeployment\u002Fdesktop-apps","docs\u002F4.deployment\u002F2.desktop-apps",{"title":264,"path":265,"stem":266,"children":267,"page":226},"Alerting","\u002Fdocs\u002Falerting","docs\u002F5.alerting",[268],{"title":264,"path":269,"stem":270},"\u002Fdocs\u002Falerting\u002Falert-rules","docs\u002F5.alerting\u002F1.alert-rules",{"title":272,"path":273,"stem":274},"Contributing","\u002Fdocs\u002Fcontributing","docs\u002F6.contributing",1789838144160]