خادم بروتوكول سياق النموذج (MCP) لـ Grafana، يوفر لوكلاء الذكاء الاصطناعي القدرة على الوصول إلى مثيلات Grafana ونظامها البيئي، ويدعم إدارة لوحة المعلومات، والاستعلام عن مصادر البيانات، وتكوين قواعد التنبيه، وما إلى ذلك.
نظرة عامة على مشروع Grafana MCP Server
Grafana MCP Server هو خادم يعتمد على بروتوكول سياق النموذج (Model Context Protocol, MCP)، مصمم خصيصًا للتكامل مع مثيلات Grafana والنظام البيئي المحيط بها. يوفر هذا المشروع لوكلاء الذكاء الاصطناعي (مثل Claude Desktop) القدرة على الوصول إلى وظائف Grafana المختلفة والتعامل معها.
الميزات والوظائف الأساسية
إدارة لوحات المعلومات
- البحث عن لوحات المعلومات: استرجاع وتحديد مواقع لوحات معلومات معينة بسرعة.
- الحصول على لوحة معلومات: الحصول على التكوين الكامل للوحة المعلومات عبر UID.
- تحديث/إنشاء لوحات معلومات: تعديل أو إنشاء لوحات معلومات جديدة ديناميكيًا (مع الانتباه إلى قيود نافذة السياق).
تكامل مصدر البيانات
- إدارة مصادر البيانات: سرد معلومات مصادر البيانات والحصول عليها.
- دعم الاستعلام عن مصادر بيانات متعددة:
- Prometheus: تنفيذ استعلامات PromQL، والحصول على بيانات المقاييس.
- Loki: تنفيذ استعلامات LogQL، واسترجاع بيانات السجل.
- Tempo: استعلام عن بيانات التتبع الموزعة.
- Pyroscope: استعلام عن بيانات تحليل الأداء.
استعلام عن البيانات الوصفية
- بيانات Prometheus الوصفية: الحصول على بيانات وصفية للمقاييس، وأسماء المقاييس، وأسماء العلامات، وقيم العلامات.
- بيانات Loki الوصفية: الحصول على أسماء علامات السجل، وقيم العلامات، والمعلومات الإحصائية.
إدارة الأحداث والتنبيهات
- إدارة الأحداث: البحث عن الأحداث وإنشاؤها وتحديثها وإغلاقها.
- قواعد التنبيه: سرد معلومات قواعد التنبيه والحصول عليها، والحصول على حالات التنبيه.
- إدارة نقاط الاتصال: سرد نقاط اتصال التنبيه وإنشاؤها وتعديلها.
تكامل Grafana OnCall
- إدارة الجداول الزمنية: سرد وإدارة خطط المناوبة.
- معلومات المناوبة: الحصول على تفاصيل المناوبة والمستخدمين المناوبين الحاليين.
- إدارة الفرق والمستخدمين: إدارة الفرق ومعلومات المستخدم.
- إدارة مجموعات التنبيه: سرد مجموعات التنبيه.
وظيفة التحقيق Sift
- التحقيق الذكي: بدء تحقيق Sift وعرض النتائج.
- إدارة التحقيق: إنشاء معلومات التحقيق وسردها والحصول عليها.
- وظائف التحليل: الحصول على نتائج تحليل التحقيق.
- التعرف على أنماط الأخطاء: البحث عن أنماط الأخطاء في السجلات.
- تحليل الأداء: تحديد الطلبات البطيئة.
تكوين الأدوات
يوفر هذا المشروع خيارات تكوين أدوات مرنة، يمكنك اختيار تمكين أو تعطيل فئات وظائف معينة:
اسم الأداة | التصنيف | الوصف |
---|---|---|
search_dashboards |
Search | البحث عن لوحات المعلومات |
get_dashboard_by_uid |
Dashboard | الحصول على لوحة معلومات عبر UID |
update_dashboard |
Dashboard | تحديث أو إنشاء لوحة معلومات جديدة |
list_datasources |
Datasources | سرد مصادر البيانات |
query_prometheus |
Prometheus | تنفيذ استعلام Prometheus |
query_loki_logs |
Loki | الاستعلام عن السجلات واسترجاعها |
list_incidents |
Incident | سرد الأحداث |
list_alert_rules |
Alerting | سرد قواعد التنبيه |
list_oncall_schedules |
OnCall | سرد خطط المناوبة OnCall |
find_error_pattern_logs |
Sift | البحث عن أنماط الأخطاء |
يمكنك استخدام العلامة --disable-<category>
لتعطيل فئات أدوات معينة. على سبيل المثال، استخدام --disable-oncall
لتعطيل الأدوات المتعلقة بـ OnCall.
التثبيت والتكوين
طرق التثبيت
1. صورة Docker
docker pull mcp/grafana
docker run -p 8000:8000 -e GRAFANA_URL=http://localhost:3000 -e GRAFANA_API_KEY=<your_token> mcp/grafana
2. تنزيل الملفات الثنائية
قم بتنزيل أحدث إصدار من صفحة الإصدارات وضعه في دليل $PATH
.
3. تجميع التعليمات البرمجية المصدر
GOBIN="$HOME/go/bin" go install github.com/grafana/mcp-grafana/cmd/mcp-grafana@latest
إعدادات التكوين
المتطلبات الأساسية
- قم بإنشاء حساب خدمة في Grafana، وقم بتعيين أذونات كافية.
- قم بإنشاء رمز حساب الخدمة.
تكوين Claude Desktop
باستخدام الملفات الثنائية:
{
"mcpServers": {
"grafana": {
"command": "mcp-grafana",
"args": [],
"env": {
"GRAFANA_URL": "http://localhost:3000",
"GRAFANA_API_KEY": "<your service account token>"
}
}
}
}
باستخدام Docker:
{
"mcpServers": {
"grafana": {
"command": "docker",
"args": [
"run", "--rm", "-p", "8000:8000",
"-e", "GRAFANA_URL", "-e", "GRAFANA_API_KEY",
"mcp/grafana"
],
"env": {
"GRAFANA_URL": "http://localhost:3000",
"GRAFANA_API_KEY": "<your service account token>"
}
}
}
}
وضع التصحيح
قم بتمكين وضع التصحيح عن طريق إضافة العلامة -debug
، والتي يمكن أن توفر سجلات مفصلة لطلبات واستجابات HTTP:
{
"mcpServers": {
"grafana": {
"command": "mcp-grafana",
"args": ["-debug"],
"env": {
"GRAFANA_URL": "http://localhost:3000",
"GRAFANA_API_KEY": "<your service account token>"
}
}
}
}
التطوير والاختبار
إعداد بيئة التطوير
# تشغيل الخادم
make run
# بناء صورة Docker
make build-image
# تشغيل حاوية Docker
docker run -it --rm -p 8000:8000 mcp-grafana:latest
أنواع الاختبار
اختبار الوحدة
make test-unit
# أو
make test
اختبار التكامل
# يتطلب تشغيل حاوية Docker
make test-integration
اختبار السحابة
# يتطلب مثيل Grafana السحابي وبيانات الاعتماد
make test-cloud
اختبار كامل
# ابدأ مثيل Grafana المحلي
docker-compose up -d
# تشغيل جميع الاختبارات
make test-all
جودة الكود
فحص الكود
make lint
فحص JSON Schema
يحتوي هذا المشروع على أداة lint مخصصة لفحص الفواصل غير المهربة في علامات بنية jsonschema
:
make lint-jsonschema
البنية التقنية
- لغة البرمجة: Go
- البروتوكول: Model Context Protocol (MCP)
- طريقة الاتصال: stdin/stdout أو SSE (Server-Sent Events)
- العملاء المدعومون: Claude Desktop وعملاء متوافقون مع MCP
حالات الاستخدام
- المراقبة المدعومة بالذكاء الاصطناعي: تمكين وكلاء الذكاء الاصطناعي من الاستعلام عن بيانات المراقبة وتحليلها بذكاء.
- التشغيل الآلي: إنشاء وإدارة لوحات المعلومات وقواعد التنبيه تلقائيًا عبر الذكاء الاصطناعي.
- الاستجابة الذكية للأحداث: استخدام الذكاء الاصطناعي لتحليل السجلات والمقاييس، وتحديد المشكلات وحلها بسرعة.
- رؤى البيانات: السماح للذكاء الاصطناعي بالمساعدة في استخراج معلومات قيمة من بيانات المراقبة المعقدة.
يمثل هذا المشروع اتجاهًا جديدًا في تكامل الذكاء الاصطناعي مع أدوات المراقبة التقليدية، مما يوفر للمطورين جسرًا قويًا يربط مساعدي الذكاء الاصطناعي ونظام Grafana البيئي.