كان أحد الأسباب الرئيسية للانضمام إلى Grafana Labs هو النطاق الواسع لحالات الاستخدام والأهداف التي يمكن أن تحلها Grafana. لا يمكنك فقط استخدام التكنولوجيا لمراقبة بيئة Kubernetes أو عرض المقاييس من بروميثيوس ، والآثار من Jaeger ، والسجلات من Elasticsearch كلها في عرض واحد ، ولكن يمكنها أيضًا المساعدة في الحفاظ على مستعمرة خلية النحل بصحة جيدة أو تشغيل Doom . من خلال تبني فلسفة Big Tent التي تعيش بها Grafana (والتي ألهمت أيضًا عنوان البودكاست الجديد الخاص بنا ) ، فإن الاحتمالات لا حصر لها.
وكان هذا هو الإلهام لنشر هذه المقالة في موقع SubNology.uk.
لسنوات ، كنت أرغب في امتلاك سيارة تسلا. الابتكار والتكنولوجيا اللذان يجسدان العلامة التجارية أمر مذهل لطالما أثار اهتمامي. لحسن الحظ ، في الصيف الماضي ، خلال أكثر أسواق السيارات سخونة في العالم ، تعثرت في طريقي إلى طراز تسلا 3. كانت تجربتي معها ممتعة وسريعة وغبية (حيث أتساءل لماذا اشتريت سيارة تسمح لي بتمكينها).
تقدم سريعًا إلى شهر مارس من هذا العام ، عندما انضممت إلى Grafana كمهندس حلول أول. كنت حريصًا على التعرف على Grafana بشكل أفضل ، وبعد أن رأيت أن Tesla APIs كانت متاحة للاستخدام ، شعرت أنها فرصة تعليمية جيدة. بالإضافة إلى ذلك ، اعتقدت أنه سيكون من الممتع إلقاء نظرة على جميع رؤى الاستخدام الرائعة التي يمكنني جمعها ، بدءًا من فهم ما إذا نجحت تحديثاتي عبر الهواء (OTA) ، إلى تتبع حالة الشحن الخاصة بي ، وكم عدد الأميال التي أمتلكها قيادتي في الشهر الماضي ، إذا تركت بابًا مفتوحًا ، والمزيد.
الآن أود أن أشارك تجربتي مع أي سائق Tesla حالي أو مستقبلي.
(للحصول على نظرة أخرى حول تحليل بيانات السيارة الكهربائية باستخدام Grafana ، تحقق مما فعله Ed Welch بسيارته Nissan Leaf .)
ماذا ستحتاج
- Raspberry Pi 3 أو أعلى (قمت بتشغيل خاصتي على 3 مع ذاكرة 1 جيجابايت فقط ولم أواجه أي مشكلة ؛ يوصى بتخزين 32 جيجابايت +) والمكونات اللازمة للتفاعل واستخدام Pi ، مثل الماوس / لوحة المفاتيح / إلخ.
- تم تحميل البرنامج وجاهز للاستخدام:
- تم تثبيت نظام Raspberry Pi OS
- شخص سخيف
- ./setup.sh
- wget
- ا تسلا
- حساب واشتراك Teslafi
زائد:
- حساب Grafana Cloud
- بروميثيوس (تثبيت محلي على Raspberry Pi)
- هذا teslafi_exporter
الخطوة 1: قم بتثبيت Grafana و Prometheus على Grafana Cloud
أولاً ، ستحتاج إلى إنشاء حساب على Grafana Cloud حتى تتمكن من تصور بيانات Tesla الخاصة بك. (إذا كان لديك حساب بالفعل ، فيمكنك تخطي هذه الخطوة. إذا لم يكن لديك حساب ، فقم بالتسجيل مجانًا هنا .)
بمجرد تشغيل Prometheus و Grafana في Grafana Cloud ، يمكنك التركيز على إعداد Raspberry Pi وجمع البيانات من Teslafi.
الخطوة 2: قم بتثبيت Prometheus محليًا على Raspberry Pi
كما ترى في الرسم التخطيطي للهندسة المعمارية أدناه ، فأنت بحاجة إلى مثيل من بروميثيوس يعمل أيضًا على Pi. بمجرد وصول بياناتك إلى المثيل المحلي ، ستقوم بعد ذلك بكتابتها عن بُعد إلى مثيل Prometheus الأكبر والمتوفر بدرجة عالية والأكثر استقرارًا في Grafana Cloud.
للبدء ، ستحتاج إلى وصول سطر الأوامر إلى Pi عبر ssh أو مباشرة. لا أمتلك لوحة مفاتيح سلكية وشاشة خارجية للاستخدام مع Pi الخاص بي ، لذلك قمت بإعداد وصول ssh إلى Pi الخاص بي من خلال إعداد بدون رأس. لقد استخدمت هذه المدونة لتشغيل ذلك.
لتثبيت Prometheus ، يمكنك الحصول عليه مباشرة من الموقع الرسمي . تأكد من تنزيل إصدار متوافق لـ Pi الخاص بك. المنجم هو نموذج أقدم من 32 بت ، لذلك قمت بتثبيت armv7. هذا دليل مفيد ستستند إليه الخطوات القليلة التالية.
إبتدئ ب:
sudo apt-get update
wget
https://github.com/prometheus/prometheus/releases/download/v2.34.0/prometheus-2.34.0.linux-armv7.tar.gz
بعد ذلك ، قم بفك الضغط:
tar -xzvf prometheus-2.34.0.linux-armv7.tar.gz
أعد تسمية الملف:
mv prometheus-2.34.0.linux-armv7/ prometheus/
mv prometheus-2.34.0.linux-armv7/ prometheus/
sudo vi /etc/systemd/system/prometheus.service
أدخل ما يلي في الملف:
[Unit]
Description=Prometheus Server
Documentation=https://prometheus.io/docs/introduction/overview/
After=network-online.target
[Service]
User=pi
Restart=on-failure
ExecStart=/home/pi/prometheus/prometheus \
--config.file=/home/pi/prometheus/prometheus.yml \
--storage.tsdb.path=/home/pi/prometheus/data
[Install]
WantedBy=multi-user.target
احفظ الملف باستخدام esc
، ثم اكتب:wq!
الآن يمكنك تمكين خدمتك.
sudo systemctl enable prometheus
ثم ابدأ بروميثيوس.
sudo systemctl start prometheus
تحقق لمعرفة ما إذا كان بروميثيوس يعمل مع:
sudo systemctl status prometheus
يجب أن ترى مخرجات مشابهة لهذا:
يجب أن تكون قادرًا أيضًا على رؤية أن بروميثيوس يعمل من خلال التوجه إلى واجهة مستخدم الويب الخاصة به على المنفذ 9090 أو: your_pi_IP_address: 9090.
يمكنك إيقاف هذا الإخراج عن طريق إدخال CTRL + C
والآن يمكنك إيقاف بروميثيوس للحظة.
sudo systemctl stop prometheus
الخطوة 3: إعداد teslafi_exporter
قم بإنشاء دليل لـ teslafi:
mkdir teslafi
cd teslafi
ثم استنساخ teslafi_exporter repo:
git clone https://github.com/neredera/teslafi_exporter.git
بعد ذلك ، ستحتاج إلى التوجه إلى Teslafi للحصول على رمز API الخاص بك. على الرغم من وجود طرق للوصول إلى واجهات برمجة تطبيقات Tesla مباشرة ، إلا أن استخدام Teslafi كان نهجًا أسهل.
يمكنك الوصول إلى موقع Teslafi API هنا بعد تسجيل الدخول. ستحتاج إلى إنشاء رمز مميز إذا لم يكن قد تم إنشاؤه بالفعل ، ثم نسخ رقم / سلسلة الأحرف الحالية ، وليس الرابط بأكمله أو أي شيء آخر في الصفحة . (واحد هنا للإشارة فقط.)
عد إلى سطر الأوامر ، وانتقل إلى teslafi_exporter.service
الملف.
cd teslafi
cd teslafi_exporter
vi teslafi_exporter.service
هناك ثلاثة أقسام في ملف teslafi_exporter.service تحتاج إلى تعديلها: مواقع مسار الملف في كل من WorkingDirectory
و ExecStart
والرمز الذي حصلت عليه للتو من Teslafi. الصقها في enter_token_here
الموقع. يجب أن يبدو التكوين الخاص بك شيئًا مثل هذا (مع إدراج الرمز المميز الخاص بك):
[Unit]
Description=Prometheus exporter for TeslaFi
After=multi-user.target
[Service]
Type=simple
User=teslafi_exporter
WorkingDirectory=/home/pi/teslafi/teslafi_exporter
ExecStart=/home/pi/teslafi/teslafi_exporter/exporter.py --teslafi_api_token enter_token_here
StandardInput=tty-force
[Install]
WantedBy=multi-user.target
احفظ الملف باستخدام:
Esc
وثم:wq!
الخطوة 4: تكوين prometheus.yml
التكوين النهائي الذي تحتاج إلى العمل عليه هو ملفك Prometheus.yml. يمكن العثور على هذا في prometheus
الدليل.
في ملف .yml هذا ، ستحتاج إلى إضافة موقع كشط مستهدف وقسم للكتابة عن بُعد يسمح لك بإرسال البيانات إلى مثيل Grafana Cloud Prometheus.
سيبدو التكوين النهائي كما يلي:
vi prometheus.yml
global:
scrape_interval: 120s
evaluation_interval: 120s
scrape_configs:
- job_name: teslafi
static_configs:
- targets: ['your_raspberrypi_ip:9998']
remote_write:
- url: https://your_prometheus_url_here
basic_auth:
username: your_username_here
password: your_password_here
من أجل الحصول على عنوان url واسم المستخدم وكلمة المرور لقسم الكتابة عن بُعد ، انتقل إلى منطقة إدارة السحابة الخاصة بك والتي يمكن العثور عليها على https://grafana.com/orgs/your_org_name_here
انقر فوق بروميثيوس -> التفاصيل
انسخ نقطة نهاية الكتابة عن بُعد وأدخلها في قسم عنوان url في تهيئة ملف prometheus.yml .
انسخ اسم المستخدم / معرف المثيل وأدخله في قسم اسم المستخدم في التكوين الخاص بك.
ضمن كلمة المرور / مفتاح API في صفحة Cloud Admin ، انقر على الرابط الأزرق “إنشاء الآن”. امنح مفتاح API الخاص بك اسمًا ووصول المسؤول . ثم انسخ مفتاح API ، وأدخله في قسم كلمة المرور في التكوين.
الآن يمكنك حفظ التكوين الخاص بك مع esc
وبعد ذلك:wq!
وقد انتهيت من إعداد التكوين!
الخطوة 5: ابدأ مثيلاتك
في هذه المرحلة ، يجب أن تكون قادرًا على تصور بياناتك في Grafana بعد بدء جميع خدماتك.
أولاً ، انتقل إلى prometheus
الدليل وابدأ بروميثيوس بـ:
sudo systemctl start prometheus
للتحقق مما إذا كان قد بدأ ، يمكنك الإرسال:
sudo systemctl status prometheus
يجب أن ترى نفس الاستجابة النشطة التي رأيتها عندما فعلت ذلك سابقًا.
بعد ذلك ، ابدأ teslafi_exporter. انتقل إلى teslafi_exporter
الدليل.
قم بتغيير أذونات setup.sh
الملف باستخدام:
chmod +x setup.sh
ثم ابدأ المُصدر بـ:
sudo ./setup.sh
تأكد من أن المُصدر نشط وقيد التشغيل.
sudo systemctl status teslafi_exporter.service
انتقل إلى Grafana ، وتوجه إلى Explore ، وحدد مصدر بيانات grafanacloud-yourorgname-prom . افتح مستكشف المقاييس ، ويجب أن ترى الآن البيانات مع تسميات teslafi المتاحة للاستخدام.
تهاني! يتم الآن كشط بيانات Teslafi ويمكن استخدامها داخل عمليات نشر Grafana Cloud و Prometheus.
المزيد قادم
إذن ما الذي يمكنك تخيله بكل البيانات؟ أنا أعمل على مدونة أخرى تركز على التحكم في بعض هذه الإمكانية. ها هي نظرة خاطفة!