مكون إضافي للواجهة الخلفية Grafana يتعامل مع عرض اللوحات ولوحات المعلومات لملفات PNG باستخدام متصفح بدون رأس (Chromium).
يتم تجميع هذا البرنامج الإضافي في ملف واحد قابل للتنفيذ مع وقت تشغيل Node.js ومتصفح Chromium. وهذا يعني أنك لا تحتاج إلى تثبيت Node.js وChromium في نظامك حتى يعمل المكون الإضافي.
ومع ذلك، يعتمد متصفح Chromium على مكتبات معينة. إذا لم تكن كل هذه المكتبات مثبتة في نظامك، فقد ترى بعض الأخطاء عند محاولة عرض صورة. لمزيد من المعلومات بما في ذلك المساعدة في استكشاف الأخطاء وإصلاحها، راجع وثائق Grafana Image Rendering.
يتطلب عرض الصور قدرًا كبيرًا من الذاكرة، ويرجع ذلك أساسًا إلى أن Grafana ينشئ مثيلات للمتصفح في الخلفية للعرض الفعلي. نوصي بحد أدنى 16 جيجابايت من الذاكرة الخالية على النظام الذي يعرض الصور.
يتطلب عرض صور متعددة بالتوازي مساحة أكبر للذاكرة. يمكنك استخدام خدمة العرض عن بعد لعرض الصور على نظام بعيد، حتى لا تتأثر موارد النظام المحلي لديك.
يمكنك تثبيت البرنامج الإضافي باستخدام Grafana CLI (الطريقة الموصى بها) أو باستخدام صورة Grafana Docker.
grafana-cli plugins install grafana-image-renderer
هذا المكون الإضافي غير متوافق مع صورة Grafana Docker الحالية ويتطلب تبعيات إضافية على مستوى النظام. نوصي بإعداد حاوية Docker أخرى للعرض واستخدام العرض عن بُعد بدلاً من ذلك. للحصول على التعليمات، راجع التشغيل في Docker.
إذا كنت لا تزال ترغب في تثبيت البرنامج الإضافي مع صورة Grafana Docker، فارجع إلى الإرشادات الخاصة بإنشاء صورة Grafana مخصصة في وثائق Grafana Docker.
ملاحظة: يتطلب اتصال بالإنترنت.
يمكنك تشغيل هذا البرنامج المساعد كخدمة عرض HTTP عن بعد. في هذا الإعداد، يعرض Grafana صورة عن طريق تقديم طلب HTTP إلى خدمة العرض عن بعد، والتي بدورها تعرض الصورة وتعيدها مرة أخرى في استجابة HTTP إلى Grafana.
يمكنك تشغيل خدمة عرض HTTP عن بعد باستخدام Docker أو كتطبيق Node.js مستقل.
يتم نشر صور Grafana Docker في Docker Hub.
يوضح المثال التالي كيف يمكنك تشغيل Grafana وخدمة عرض HTTP عن بعد في حاويتين Docker منفصلتين باستخدام Docker Compose.
قم بإنشاء docker-compose.yml
بالمحتوى التالي:
version : ' 2 '
services :
grafana :
image : grafana/grafana:latest
ports :
- ' 3000:3000 '
environment :
GF_RENDERING_SERVER_URL : http://renderer:8081/render
GF_RENDERING_CALLBACK_URL : http://grafana:3000/
GF_LOG_FILTERS : rendering:debug
renderer :
image : grafana/grafana-image-renderer:latest
ports :
- 8081
بعد ذلك، قم بتشغيل docker compose.
docker-compose up
يصف المثال التالي كيفية إنشاء وتشغيل خدمة عرض HTTP عن بعد كتطبيق Node.js مستقل وتكوين Grafana بشكل مناسب.
استنساخ مستودع Git للمكون الإضافي لعارض الصور Grafana.
تثبيت التبعيات والبناء:
yarn install --pure-lockfile
yarn run build
تشغيل الخادم:
node build/app.js server --port=8081
تحديث تكوين Grafana:
[rendering]
server_url = http://localhost:8081/render
callback_url = http://localhost:3000/
أعد تشغيل جرافانا.
يقتصر الوصول إلى نقاط نهاية العرض على الطلبات التي توفر رمزًا مميزًا للمصادقة. يجب تكوين هذا الرمز المميز في ملف تكوين Grafana وملف تكوين العارض. يعد هذا الرمز مهمًا عند تشغيل المكون الإضافي في وضع العرض عن بُعد لتجنب الكشف غير المصرح به عن الملف (راجع CVE-2022-31176).
راجع وثائق Grafana Image Rendering لتكوين هذا الرمز السري. القيمة الافتراضية -
يتم تكوينها على كل من Grafana وعارض الصور عند البدء ولكننا نوصيك بشدة بتحديث هذه القيمة إلى قيمة أكثر أمانًا.
للحصول على إعدادات التكوين المتاحة، يرجى الرجوع إلى وثائق Grafana Image Rendering.
للحصول على تعليمات حول استكشاف الأخطاء وإصلاحها، راجع وثائق استكشاف أخطاء Grafana Image Rendering وإصلاحها.
لتشغيل مجموعات الاختبار الآلي لعارض الصور، تحتاج إلى تشغيل الأمر التالي من المجلد الجذر:
yarn test
سيؤدي هذا إلى تشغيل مثيل Grafana في Docker، ثم تشغيل مجموعات الاختبار.
ملحوظات:
إذا كانت هناك بعض التغييرات المتوقعة في ملفات الصور المرجعية (الموجودة في /tests/testdata
)، فقم بتشغيل yarn test-update
ودفع المراجع المحدثة.
إذا فشلت الاختبارات وتريد أن ترى الفرق بين الصورة التي حصلت عليها والصورة المرجعية، قم بتشغيل yarn test-diff
. سيؤدي هذا إلى إنشاء صور (تسمى diff_
) تحتوي على الاختلافات في المجلد /tests/testdata
.
إذا نجحت الاختبارات في بيئتك المحلية ولكنها فشلت في الطائرة بدون طيار. يمكنك اتباع هذه الخطوات لإجراء الاختبارات في بيئة مشابهة لخط أنابيب Drone. سيؤدي هذا إلى تحميل ملفاتك المحلية الخاصة بمستودع grafana-image-renderer
في صورة Docker، لذا سيكون أي تغيير يحدث في صورة Docker متاحًا في بيئتك المحلية. يتيح لك ذلك تشغيل yarn test-diff
yarn test-update
في Docker ورؤية النتائج محليًا.
cd ./devenv/docker/drone
docker-compose up
drone-docker-puppeteer
وقم بتشغيل الأوامر التالية: cd /drone/src
PUPPETEER_CACHE_DIR=/drone/src/cache yarn install --frozen-lockfile --no-progress
PUPPETEER_CACHE_DIR=/drone/src/cache CI=true yarn test-ci
ملاحظات: قد تستغرق الاختبارات وقتًا أطول في حاوية Docker. إذا واجهت مشكلات تتعلق بانتهاء المهلة، فيمكنك تشغيل أمر الاختبار باستخدام --testTimeout option
:
PUPPETEER_CACHE_DIR=/drone/src/cache CI=true yarn test-ci --testTimeout=10000