با استفاده از برنامه دات نت Aspire eShop برای جمع آوری تمام تله متری

برای مطالعه کامل این مقاله اینجا را کلیک کنید.
بیاموزید که چگونه تمام تله متری را از برنامه دات نت Aspire eShop جمع آوری کنید و آن را به پشتیبان OpenTelemetry مانند New Relic ارسال کنید.
.NET Aspire وقتی صحبت از یک پشته ایدهآمیز و آماده برای فضای ابری برای ساخت برنامههای کاربردی قابل مشاهده، آماده تولید و توزیع شده به میان میآید، فرزند جدیدی است. داشتن یک داشبورد داخلی برای نظارت بر داده ها در طول توسعه خوب است. اما چگونه می توان OpenTelemetry را به درستی پیکربندی کرد تا آن را به یک باطن قابل مشاهده ارسال کند؟ این همان چیزی است که این پست وبلاگ در مورد آن است. و همچنین نحوه ارسال ویژگی های سفارشی را با استفاده از OpenTelemetry SDK یاد خواهید گرفت.
NET Aspire
.NET Aspire اولین بار در .NET Conf 2023 Keynote معرفی و معرفی شد. چالش هایی که سعی در حل آنها دارد عبارتند از:
- مجتمع: محاسبات ابری اساساً سخت است.
- شروع شدن: برای توسعه دهندگان جدید در این فضا، اولین قدم به سمت بومی ابری می تواند طاقت فرسا باشد.
- انتخاب ها: توسعه دهندگان باید انتخاب های زیادی داشته باشند.
- مسیر سنگفرش شده: دات نت یک مسیر طلایی هموار در دسترس توسعه دهندگان برای ساخت اپلیکیشن های بومی ابری نداشت.
اینجا دقیقاً همان جایی است که .NET Aspire وارد بازی می شود. این شامل ویژگی های زیر به عنوان بخشی از پشته است:
کامپوننت ها: مجموعه انتخاب شده از بسته های NuGet که به طور خاص برای تسهیل ادغام برنامه های کاربردی ابری بومی با سرویس ها و پلتفرم های برجسته، از جمله Redis و PostgreSQL، اما نه محدود، انتخاب شده اند. هر مؤلفه از طریق تأمین خودکار یا الگوهای پیکربندی استاندارد، عملکردهای اصلی ابری را فراهم می کند.
-
داشبورد برنامهنویس: به شما امکان میدهد تا جنبههای مختلف برنامهتان، از جمله گزارشها، ردیابیها و پیکربندیهای محیطی را از نزدیک ردیابی کنید. هدفمند ساخته شده است تا تجربه توسعه محلی را بهبود بخشد و یک نمای کلی از وضعیت و ساختار برنامه شما ارائه دهد. -
ابزار/سازماندهی: داتنت Aspire شامل قالبهای پروژه و تجربیات ابزارسازی برای ویژوال استودیو و رابط خط فرمان dotnet (CLI) به شما کمک میکند تا برنامههای NET Aspire را ایجاد کرده و با آنها تعامل داشته باشید. همچنین ویژگی هایی را برای اجرا و اتصال برنامه های چند پروژه ای و وابستگی های آنها فراهم می کند.
نرم افزار دمو eShop
یک برنامه دات نت مرجع که یک وب سایت تجارت الکترونیک را با استفاده از معماری مبتنی بر خدمات پیاده سازی می کند.
در آخرین نسخه برنامه، کد منبع قبلاً به روز شده است تا NET Aspire را به عنوان بخشی از پروژه شامل شود. می توانید آخرین SDK .NET 8 را نصب کرده و مخزن را شبیه سازی کنید. علاوه بر این، می توانید دستورات زیر را برای نصب بار کاری Aspire اجرا کنید:
dotnet workload update
dotnet workload install aspire
dotnet restore eShop.Web.slnf
هنگامی که تمام پیش نیازهای دیگر را بر روی دستگاه خود آماده کردید، می توانید برنامه را از ترمینال خود با دستور زیر اجرا کنید:
dotnet run --project src/eShop.AppHost/eShop.AppHost.csproj
داشبورد برنامه نویس دات نت Aspire
پس از راهاندازی برنامه، به داشبورد توسعهدهنده بروید تا منابع مختلفی را که بخشی از برنامه eShop هستند، از جمله نقاط پایانی و URL(ها) شناسایی کنید تا مستقیماً به منابع در حال اجرا دسترسی پیدا کنید.
این داشبورد همچنین شامل مانیتورینگ تلهمتری، از جمله گزارشها، ردیابیها و متریکها میشود.
ارکستراسیون دات نت Aspire
NET Aspire APIهایی را برای بیان منابع و وابستگی ها در برنامه توزیع شده شما ارائه می دهد.
قبل از ادامه، برخی از اصطلاحات رایج مورد استفاده در .NET Aspire را در نظر بگیرید:
- مدل اپلیکیشن: مجموعه ای از منابعی که برنامه توزیع شده شما را تشکیل می دهند (DistributedApplication). برای تعریف رسمی تر، به تعریف مدل برنامه مراجعه کنید.
- پروژه میزبان برنامه/ارکستراتور: پروژه دات نت که مدل برنامه را هماهنگ می کند که با پسوند *.AppHost نامگذاری شده است (بر اساس قرارداد).
- منبع: یک منبع بخشی از یک برنامه کاربردی را نشان می دهد، خواه یک پروژه دات نت، کانتینر، یا قابل اجرا باشد یا منابع دیگری مانند پایگاه داده، حافظه پنهان یا سرویس ابری (مانند سرویس ذخیره سازی).
- ارجاع: یک مرجع ارتباط بین منابع را تعریف می کند که به صورت وابستگی بیان می شود. برای اطلاعات بیشتر، به منابع مرجع مراجعه کنید.
دات نت Aspire به شما این امکان را می دهد که به طور یکپارچه برنامه ابری خود را بسازید، تهیه کنید، استقرار دهید، پیکربندی کنید، آزمایش کنید، اجرا کنید و مشاهده کنید. این از طریق استفاده از یک مدل برنامه که منابع موجود در برنامه شما و روابط آنها را مشخص می کند، به دست می آید.
ارسال تله متری به پشتیبان OpenTelemetry مانند New Relic
داشتن یک داشبورد داخلی برای نظارت بر داده ها در طول توسعه خوب است. در این بخش، من بر نحوه پیکربندی صحیح OpenTelemetry برای ارسال تمام تله متری به New Relic به عنوان پشتوانه مشاهده پذیری انتخابی تمرکز می کنم.
برای سناریویی که در این مقاله توضیح داده شد، من فورک برنامه رسمی eShop خود را ایجاد کردم. در این مخزن، میتوانید پروژه میزبان برنامه را که شامل مؤلفه اصلی آن است، بیابید.
خطوط 17 تا 26 برخی از متغیرهای پیکربندی اولیه را تعریف می کنند که می توانید با استفاده از متغیرهای محیطی در ترمینال خود ارائه دهید.
- NEW_RELIC_LICENSE_KEY: کلید مجوز جدید Relic برای مقدار هدر API پروتکل OpenTelemetry (OTLP).
- NEW_RELIC_REGION: پیکربندی منطقه ایالات متحده یا اتحادیه اروپا برای حساب New Relic شما
بر اساس پیکربندی منطقه New Relic، کد نقطه پایانی New Relic OTLP را برای OpenTelemetry تعریف کرده و از آن در OTEL_EXPORTER_OTLP_ENDPOINT متغیر.
بقیه پروژه میزبان برنامه از قبل برای افزودن یک پیکربندی محیطی برای هر یک از پروژه هایی که بخشی از برنامه Aspire هستند آماده شده است. برای مثال، پیکربندی پروژه Identity.API در اینجا آمده است:
...
// Services
var identityApi = builder.AddProject<Projects.Identity_API>("identity-api")
.WithReference(identityDb)
.WithEnvironment("OTEL_EXPORTER_OTLP_ENDPOINT", OTEL_EXPORTER_OTLP_ENDPOINT)
.WithEnvironment("OTEL_EXPORTER_OTLP_HEADERS", OTEL_EXPORTER_OTLP_HEADERS)
.WithEnvironment("OTEL_SERVICE_NAME", "identity-api");
...
در این فورک از برنامه eShop، تنظیمات محیطی اضافی را اضافه کرده ام. هر کدام از .با محیط زیست دستورات یک متغیر محیطی لازم را برای سرویس اضافه می کند:
- OTEL_EXPORTER_OTLP_ENDPOINT: نقطه پایانی OTLP برای تمام تله متری این سرویس. در مورد ما، نقطه پایانی New Relic OTLP.
- OTEL_EXPORTER_OTLP_HEADERS: مقدار هدر API، که شامل کلید مجوز New Relic ما است (string OTEL_EXPORTER_OTLP_HEADERS = “api-key=” + NEW_RELIC_LICENSE_KEY;).
- OTEL_SERVICE_NAME: نام سرویس مربوط به ایجاد یک موجودیت مربوطه در New Relic.
بقیه سرویس ها به درستی پیکربندی شده اند.
هنگامی که متغیرهای محیطی را در ترمینال خود پیکربندی کردید (یعنی NEW_RELIC_LICENSE_KEY و NEW_RELIC_REGION، می توانید برنامه Aspire را با دستور زیر راه اندازی کنید:
dotnet run --project src/eShop.AppHost/eShop.AppHost.csproj
با مشاهده محیط و کلیک کردن بر روی نماد view برای یکی از پروژه ها می توانید تأیید کنید که آیا همه چیز به درستی پیکربندی شده است:
این OTEL_EXPORTER_OTLP_ENDPOINT باید به نقطه پایانی New Relic OTLP اشاره کند.
پس از مدتی، باید بتوانید داده های برنامه خود را در قسمت قابل مشاهده ببینید APM & Services – OpenTelemetry بخش New Relic:
سپس می توانید تمام تله متری خود را مشاهده و تجزیه و تحلیل کنید. به عنوان مثال، به نقشه خدمات جدید Relic:
… یا نمای ردیابی توزیع شده:
مشاهده مبارک!
نتیجه
ادغام OpenTelemetry با برنامه دات نت Aspire eShop و New Relic به شما امکان می دهد از ابزارهای قدرتمند تله متری برای نظارت و بهبود عملکرد برنامه خود استفاده کنید. این راهاندازی نه تنها بینشهای ارزشمندی را ارائه میکند، بلکه توانایی شما را برای تشخیص سریع و کارآمد مشکلات نیز افزایش میدهد. با مراحل ذکر شده در این راهنما، شما در راه ساختن یک برنامه کاربردی انعطاف پذیرتر و دقیق تر هستید. استفاده از پتانسیل کامل داده های تله متری خود را از امروز شروع کنید و سیستم های خود را به خوبی اجرا کنید!
مراحل بعدی
- بیشتر کاوش کنید: برای باز کردن قفل ویژگیهای پیشرفته، در اسناد OpenTelemetry New Relic عمیقتر شوید.
- به جامعه بپیوندید: در انجمن انجمن New Relic با توسعه دهندگان دیگر تعامل داشته باشید.
- بروز بمان: وبلاگ ما را برای آخرین نکات، آموزش ها و اخبار صنعت دنبال کنید.
- New Relic را به صورت رایگان امتحان کنید: برای یک حساب رایگان New Relic ثبت نام کنید و شروع به کاوش کنید که چگونه New Relic می تواند تله متری برنامه شما را امروز افزایش دهد.
- آزمایش و تکرار کنید: به طور مستمر، تنظیم تله متری خود را برای اوج عملکرد نظارت، تجزیه و تحلیل و بهبود بخشید.