NOTE: Apart from
(and even then it's questionable, I'm Scottish). These are machine translated in languages I don't read. If they're terrible please contact me.
You can see how this translation was done in this article.
Wednesday, 18 September 2024
//Less than a minute
يعتبر الرصد جزءاً أساسياً من الحفاظ على صحة وأداء طلباتك. لديّ بالفعل هذا الموقع لمراقبة زيارات المستخدم ما قبل ما ما قبل ما ما قبل والاستثناءات والأخطاء التكسس ولكن الآن أردت أن أضيف رصد الأداء إلى المزيج. وفي هذا الدليل، سوف نستكشف كيفية إنشاء رصد لتطبيقاتكم الأساسية لشبكة ASP.NET باستخدام Grafana and Prometheus.
يمكنك بطبيعة الحال استخدام خدمة Grafana سحابة، ولكن لهذا الدليل، سوف نركز على وضع كل شيء محليا حتى تتمكن من السيطرة الكاملة على كومة الرصد الخاص بك.
الهدف هو الحصول على لوحة قيادة شيء من هذا القبيل:
كالمعتاد مع هذا الموقع أردت أن أضيف عناصر Grafana و Prometheus إلى ملفي المؤلف Doker، هذا يسمح لي بتدوير كل شيء صعوداً وهبوطاً في أمر واحد وإبقائه مغلفاً.
هنا يمكنكم أن تروا أني أعددت خدمات (بروميثيوس) و (غرافانا) هذه تستخدم تطبيقي المشترك و لديها أحجام من الضباب لتثبيت البيانات.
prometheus:
image: prom/prometheus:latest
container_name: prometheus
volumes:
- ./prometheus.yml:/etc/prometheus/prometheus.yml
command:
- '--config.file=/etc/prometheus/prometheus.yml'
labels:
- "com.centurylinklabs.watchtower.enable=true"
networks:
- app_network
grafana:
image: grafana/grafana:latest
container_name: grafana
labels:
- "com.centurylinklabs.watchtower.enable=true"
volumes:
- grafana-data:/var/lib/grafana
networks:
- app_network
environment:
- GF_SECURITY_ADMIN_USER=admin
- GF_SECURITY_ADMIN_PASSWORD=testpassword1234
- volumes:
grafana-data:
prometheus-data:
سترى أنني وضعت كلمة سر افتراضية (كن متأكدا وتغيير هذا على أول تشغيل!) وقد مكَّنتهم ايضا من تحديث برج المراقبة تلقائيا.
ستلاحظون أنني لا أرسم خرائط لأي موانئ هنا، سأستخدم (كادي) لتوفير الوصول إلى خدمة (غرافانا) و (بروميثيوس) يمكن الوصول إليه فقط من داخل شبكة (دوكر)
إذا كنت تريد إلى يمكنك إضافة
# Prometheus
ports:
- "9090:9090"
# Grafana
ports:
- "3000:3000"
التي يمكن أن تكون مفيدة إذا كنت تجري محليا. ملاحظة في ويندوز يمكنك تشغيل تطبيقك في التصنيف الوسيطي للتصنيف الخاص بك واستخدام ''host.docker. internal: 7240' (أياً كان الميناء) للوصول إلى تطبيقك من داخل الحاوية. أنت أيضاً ستحدد شبكة "بريدج" في ملفك المدمج مثل هذا.
services:
prometheus:
image: prom/prometheus:latest
container_name: prometheus
volumes:
- ./prometheus.yml:/etc/prometheus/prometheus.yml
command:
- '--config.file=/etc/prometheus/prometheus.yml'
ports:
- "9090:9090"
networks:
- monitoring
grafana:
image: grafana/grafana:latest
container_name: grafana
ports:
- "3000:3000"
networks:
- monitoring
environment:
- GF_SECURITY_ADMIN_USER=admin
- GF_SECURITY_ADMIN_PASSWORD=admin
networks:
monitoring:
driver: bridge
ثم نضيف مجموعة جديدة prometheus.yml
إلى أَعِدّ بروميثيوس إلى كشط من ASP.net أساس تطبيق. وهذا مثال اساسي لما قد يبدو عليه هذا الملف :
global:
scrape_interval: 15s
scrape_configs:
- job_name: 'mostlylucid'
metrics_path: /metrics
scheme: http
static_configs:
- targets: ['mostlylucid:8080']
هنا رأيت أني استخدم الاسم الداخلي mostlulucid
وهو اسم خدمة الدوكر وهو ميناء افتراضي من 8080.
أنا سَأَغطّي كَمْ أنت تُمكّنُ هذا في ASP.net يَكُونُ قريباً.
تابعت: أولاً- مقدمة أولاً- مقدمة لوضع هذا الأمر.
عليك أولاً أن تضيف OpenTelemetry.Exporter.Prometheus.AspNetCore
Nu get حزمة إلى ASP.net أساسي مشروع. يمكنك فعل هذا عن طريق تنفيذ الأمر التالي في دليل مشروعك:
dotnet add package OpenTelemetry.Exporter.Prometheus.AspNetCore
التالي إلى ضبط تطبيق إلى. في Program.cs
الملف، يمكنك إضافة الرمز التالي:
services.AddOpenTelemetry()
.WithMetrics(builder =>
{
builder.AddPrometheusExporter();
builder.AddMeter("Microsoft.AspNetCore.Hosting", "Microsoft.AspNetCore.Server.Kestrel");
});
app.MapPrometheusScrapingEndpoint();
هذا هو نقطة النهاية والبيانات لـ بروميثيوس إلى كشط و set إثنان Metter التي توفّر أداء البيانات لـ ASP.NET أساسي و Kestreel.
قضيت بعض الوقت أعبث معه هذه سمة جديدة في NET 8 ولا تزال متقلبة بعض الشيء كما يبدو. الـ الأعلى يعطي خصائص لـ aSP.net لـ متابعة لكن هناك المزيد معلومات إلى بروميثيوس.
المصدر. Prometheus. AspNetCor يبدو أنه أكثر استقراراً من نسخة بيتا 1 (في وقت الكتابة على الأقل). لذا أوصيك باستخدام ذلك.
dotnet add package OpenTelemetry.Exporter.Prometheus.AspNetCore --version 1.9.0-beta.2
ثم يمكنك إضافة مجموعة أكثر اكتمالاً من الميكرومترات إلى تطبيقك هكذا:
services.AddOpenTelemetry()
.WithMetrics(builder =>
{
builder.AddPrometheusExporter();
builder.AddAspNetCoreInstrumentation();
builder.AddRuntimeInstrumentation();
builder.AddHttpClientInstrumentation();
});
إذا كنت F12 في هذه يمكنك أن ترى أن هذه تُضف الحزم كما قبل:
على سبيل المثال AddAspNetCoreInstrumentation
إضافة الكل بوصة قياسات لـ ASP.net أساسي.
return builder
.AddMeter("Microsoft.AspNetCore.Hosting")
.AddMeter("Microsoft.AspNetCore.Server.Kestrel")
.AddMeter("Microsoft.AspNetCore.Http.Connections")
.AddMeter("Microsoft.AspNetCore.Routing")
.AddMeter("Microsoft.AspNetCore.Diagnostics")
.AddMeter("Microsoft.AspNetCore.RateLimiting");
وما إلى ذلك
عندما يتم تمكينها يمكنك الحصول على المزيد من المعلومات في أدوات التحكم الخاصة بك. فعلى سبيل المثال، أضفت مقياس ج ع في المنجم لإظهار استخدام الذاكرة (وتعقب التسربات التذكارية بسرعة).
الآن لدينا (جرافانا) تعمل لقد أضفت بعض تشكيلات (كادي) إلى كاديفي لفضح خدمة (جرافانا) للعالم الخارجي
grafana.mostlylucid.net
{
reverse_proxy grafana:3000
}
http://grafana.mostlyucid.net
{
redir https://{host}{uri}
}
أشرتُ إلى نطاقي إلى هذا الخادمِ Cady والآن أنا يُمْكِنُ أَنْ أَصِلَ إلى Grafana مِنْ العالمِ الخارجيِ.
عندما يكون لديك كل شيء تشغيل، يمكنك الوصول إلى Grafana من خلال التصفح إلى url الخاص بك (http://locasthost; 3000 إذا كان يجري محليا) في متصفح الويب الخاص بك. سجل في استخدام الإعتمادات التي وضعتها في ملف Dokker Compus الخاص بك.
ثم تحتاج إلى إنشاء مصدر بيانات لبروميثيوس. للقيام بهذا، انقر على أيقونة التروس في الضلع الأيسر، ثم انقر على "مصادر Data". انقر على "مصدر بيانات الاضافة"، اختر "prometheus"، واضبط URL للإشارة إلى حالة بروميثيوس (http://prometheus:9090 إذا كانت تعمل محلياً).
بعد ذلك، يمكنك أن تبدأ في إنشاء الواجهات و تصور قياساتك!
سنستخدم لوحة القياسات لتصور المقاييس التي تم جمعها من تطبيقنا الأساسي يمكنك إنشاء لوحة التحكم الخاصة بك أو استيراد الموجود منها من مستودع Grafana.
لهذا سنستخدم الملاحق التالية
أولاً - لمحة عامة عن المعلومات الأساسية - تبين أهم المقاييس لتطبيقات ASP.NET الأساسية.
أولاً - موجز نقطة النهاية - تبين قياسات نقاط النهاية الفردية في طلبك.
لإضافة هذه إلى Dashboards->New->Import و لصق هوية لوحة القيادة في حقل الاستيراد.
هذا سيضيف بعد ذلك اللوحة إلى حالة غرافانا الخاصة بك.
ثم يمكننا الذهاب إلى تلك اللمبات المستوردة حديثاً ونجهزها لنشير إلى مصدر بيانات بروميثيوس لدينا.
وينبغي ان يعطيك هذا الرأي الذي رأيناه في بداية المقالة. (أ) Job
أنت تحديد الاسم من الحالي نحن مُعَدّون في prometheus.yml
ملف ملفّيّاً. في حالتنا mostlylucid
/ / / / إذاً يجب أن تبدأ برؤية القياسات في لوحة القيادة!
في هذا الدليل، قمنا بتغطية كيفية إنشاء عملية رصد لتطبيقاتك الأساسية لـ ASP.NET باستخدام Grafana و Prometheus. ذهبنا من خلال خطوات تشكيل Docker، Prometheus، و Grafana، فضلا عن كيفية الكشف عن المقاييس من تطبيق ASP.NET الأساسي الخاص بك. مع هذا الإعداد، يمكنك الآن مراقبة أداء تطبيقاتك والحصول على أفكار قيمة في سلوكهم. مراقبة سعيدة!