# Menghubungkan Grafana

Panduan ini menunjukkan cara menghubungkan Grafana ke **IoT Query** untuk memvisualisasikan data telematika dan armada. Grafana menyediakan kemampuan visualisasi yang kuat untuk memantau status kendaraan, data sensor, dan metrik lain secara real-time.

{% hint style="info" %}
Panduan ini adalah bagian dari **IoT Query** paket dokumentasi dan secara khusus membahas menghubungkan Power BI ke gudang data Anda. Jika Anda masih memutuskan alat BI mana yang akan digunakan, lihat [Memilih alat BI](https://www.navixy.com/docs/analytics/datahub/connection-setup/selecting-bi-tools) ikhtisar.
{% endhint %}

Tonton video ringkas untuk melihat apa yang mungkin dilakukan dengan **IoT Query**+Gabungan Grafana (tersedia dalam Bahasa Inggris dan Spanyol):

{% tabs %}
{% tab title="Bahasa Inggris" %}
{% embed url="<https://youtu.be/jGO3hIAjPCo?si=7bzWO4XrTwGnTq3c>" %}
**IoT Query** + Ikhtisar dan tutorial pemasangan Grafana.
{% endembed %}
{% endtab %}

{% tab title="Español" %}
{% embed url="<https://youtu.be/jEf7i_mAWPE?si=pru7QyYHzyoqK79Q>" %}
Descripción general y tutorial de configuración de **IoT Query** + Grafana.
{% endembed %}
{% endtab %}
{% endtabs %}

## Fitur dashboard

* Visualisasi data sensor real-time
* Analisis deret waktu dengan rentang waktu yang dapat disesuaikan
* Penyaringan dinamis menggunakan variabel
* Dukungan untuk beberapa sumber data
* Grafik dan bagan interaktif
* Pembuatan kueri kustom dengan SQL

## Persyaratan teknis

* Grafana 9.3 atau yang lebih baru
* plugin sumber data PostgreSQL (termasuk secara default)
* Akses internet untuk koneksi basis data
* Instance **IoT Query** aktif dengan kredensial koneksi

## Instalasi dan pengaturan

Grafana harus diinstal pada sistem Anda sebelum Anda dapat terhubung ke **IoT Query**.

{% stepper %}
{% step %}

### Instal Grafana

1. Unduh dan instal Grafana dari situs web resmi:\
   <https://grafana.com/grafana/download>
2. Ikuti petunjuk instalasi untuk sistem operasi Anda.
   {% endstep %}

{% step %}

### Unduh templat dashboard (opsional)

Templat dashboard yang sudah dibuat tersedia untuk membantu Anda memulai dengan cepat tanpa membangun visualisasi dari awal. Templat ini dipelihara oleh [repositori bi-intergrations](https://github.com/SquareGPS/bi-intergrations) di bawah `folder grafana` Anda dapat mengkloning repositori untuk mengakses dashboard siap pakai:

```bash
git clone https://github.com/SquareGPS/bi-intergrations.git
```

Periksa `folder grafana` folder untuk file JSON dashboard yang tersedia.
{% endstep %}
{% endstepper %}

## Koneksi basis data

Bagian Connections di Grafana adalah tempat Anda mengelola semua integrasi sumber data.&#x20;

{% stepper %}
{% step %}

### Akses tab Connections

Buka Grafana dan navigasikan ke **Connections** di bilah sisi kiri. **IoT Query** berjalan pada PostgreSQL, jadi Anda perlu menambahkan sumber data PostgreSQL agar Grafana dapat mengambil data telematika Anda.
{% endstep %}

{% step %}

### Tambahkan sumber data PostgreSQL

Plugin sumber data PostgreSQL sudah terpasang sebelumnya dengan Grafana dan menyediakan dukungan asli untuk menghubungkan ke basis data PostgreSQL.

Untuk menambahkan sumber data:

1. Di bagian Connections, cari **PostgreSQL**
2. Klik **Tambah sumber data baru**
3. Halaman konfigurasi PostgreSQL akan terbuka
   {% endstep %}

{% step %}

### Konfigurasikan parameter koneksi

Anda **IoT Query** detail koneksi berisi semua informasi yang diperlukan untuk membangun koneksi yang aman. Parameter ini unik untuk instance Anda dan memastikan Grafana dapat mengakses data telematika Anda.

Temukan parameter koneksi Anda di akun Navixy Anda dan **IoT Query** email sambuta&#x6E;**.**

**Referensi parameter koneksi**

| Parameter        | Field Konfigurasi | Deskripsi                                                                            |
| ---------------- | ----------------- | ------------------------------------------------------------------------------------ |
| Host             | `Host`            | Alamat server basis data yang disediakan dalam **IoT Query** detail koneksi          |
| Port             | `Port`            | Default adalah 5432 untuk PostgreSQL                                                 |
| Nama basis data  | `Basis data`      | Nama basis data yang ditetapkan untuk Anda                                           |
| Nama pengguna    | `User`            | Nama pengguna basis data Anda (disebut sebagai "database user" dalam detail koneksi) |
| Kata sandi       | `Kata sandi`      | Kata sandi basis data yang aman                                                      |
| Mode SSL         | `Mode SSL`        | Atur ke `require` untuk koneksi yang aman                                            |
| versi PostgreSQL | `Versi`           | Pilih **9.3** (pengaturan yang disarankan)                                           |
| {% endstep %}    |                   |                                                                                      |

{% step %}

### Konfigurasikan pengaturan tambahan

Selain parameter koneksi penting, Grafana menawarkan opsi konfigurasi tambahan. Untuk sebagian besar pengguna, nilai default sudah sesuai dan akan berfungsi dengan benar tanpa modifikasi. Anda dapat menyesuaikan pengaturan ini nanti berdasarkan persyaratan keamanan organisasi Anda, keterbatasan infrastruktur, atau kebutuhan peralatan tertentu.

Biarkan semua bidang lain pada nilai default untuk pengaturan awal. Anda tidak perlu mengaktifkan sakelar atau toggle tambahan apa pun.
{% endstep %}

{% step %}

### Uji koneksi

MengujI koneksi sebelum menyimpan memastikan bahwa semua parameter benar dan Grafana dapat berkomunikasi dengan **IoT Query** instansi.

Untuk memverifikasi dan menyimpan:

1. Beri nama koneksi Anda dengan identifier deskriptif (misalnya, "**IoT Query** Production" atau "Fleet Analytics")
2. Klik **Simpan & Uji** untuk memverifikasi koneksi Anda
3. Pesan sukses berwarna hijau menunjukkan koneksi berfungsi dengan benar
   {% endstep %}
   {% endstepper %}

## Membuat visualisasi pertama Anda

Membangun visualisasi pertama membantu Anda memahami bagaimana Grafana mengambil **IoT Query** dan menampilkan data telematika. Proses ini melibatkan membuat dashboard, menambahkan panel, mengkonfigurasi kueri, dan memilih format visualisasi yang sesuai.

{% stepper %}
{% step %}

#### Buat dashboard baru

Dashboard di Grafana berfungsi sebagai wadah untuk berbagai visualisasi. Membuat dashboard khusus membantu Anda mengatur visualisasi terkait dan menyediakan lokasi pusat untuk memantau aspek tertentu dari operasi armada Anda.

Untuk membuat dashboard:

1. Arahkan ke **Dashboards** di bilah sisi kiri
2. Klik **Buat Dashboard**
3. Pilih **Tambahkan visualisasi**
4. Pilih sumber data PostgreSQL yang baru saja Anda konfigurasikan
   {% endstep %}

{% step %}

#### Konfigurasikan kueri

Grafana menyediakan dua mode kueri: Builder visual dan editor Kode. Untuk **IoT Query** koneksi, editor Kode memberi Anda kendali penuh atas kueri SQL dan direkomendasikan untuk analisis data telematika.

Untuk menulis kueri Anda:

1. Di editor kueri, alihkan dari **Builder** ke **Code** mode
2. Masukkan kueri SQL Anda secara langsung

Contoh kueri untuk visualisasi data sensor:

```sql
SELECT 
    device_time AS time,
    value::numeric AS value,
    sensor_name
FROM raw_telematics_data.inputs
WHERE sensor_name = 'temperature'
    AND device_id = 12345
    AND $__timeFilter(device_time)
ORDER BY device_time
```

Kueri mencakup komponen waktu (`device_time AS time`) yang penting untuk visualisasi deret waktu. Fungsi `$__timeFilter()` adalah makro Grafana yang secara otomatis menerapkan rentang waktu yang dipilih pada dashboard ke kueri Anda.

Untuk contoh kueri lebih lanjut, lihat [SQL Recipe Book](https://www.navixy.com/docs/analytics/example-queries).
{% endstep %}

{% step %}

#### Atur format visualisasi

Format visualisasi menentukan bagaimana data Anda muncul di dashboard. Format yang berbeda cocok untuk jenis data yang berbeda—deret waktu cocok untuk pembacaan sensor dari waktu ke waktu, sedangkan tabel lebih baik untuk catatan rinci.

Untuk mengonfigurasi format:

1. Klik **Jalankan kueri** untuk memverifikasi kueri Anda mengembalikan data
2. Temukan pemilih tipe visualisasi (biasanya di kanan atas panel)
3. Ubah format dari **Table** ke **Time series** atau format pilihan Anda
4. Amati tampilan data untuk memastikan tampil dengan benar

Visualisasi deret waktu memerlukan kolom waktu dan nilai numerik agar berfungsi dengan baik. Kueri Anda harus mengembalikan data dalam format yang sesuai untuk tipe visualisasi yang dipilih.
{% endstep %}

{% step %}

#### Simpan visualisasi Anda

Menyimpan pekerjaan Anda mempertahankan konfigurasi visualisasi dan membuatnya tersedia untuk referensi di masa depan. Menyimpan secara berkala penting—Grafana tidak otomatis menyimpan perubahan, jadi Anda bisa kehilangan pekerjaan jika berpindah tanpa menyimpan.

Untuk menyimpan visualisasi:

1. Klik **Simpan**&#x20;
2. Berikan nama deskriptif untuk dashboard Anda
3. Pilih atau buat folder untuk pengorganisasian
4. Konfirmasi operasi penyimpanan

Dashboard sekarang tersedia di instance Grafana Anda dan dapat diakses melalui menu Dashboards.
{% endstep %}
{% endstepper %}

### Bekerja dengan variabel

Variabel adalah salah satu fitur Grafana yang paling kuat untuk membuat dashboard yang dinamis dan interaktif. Alih-alih menghardcode nilai tertentu seperti nama sensor atau ID perangkat dalam kueri Anda, variabel memungkinkan pengguna memilih nilai berbeda dari menu dropdown tanpa mengedit SQL yang mendasarinya. Ini membuat dashboard lebih fleksibel dan lebih mudah digunakan.

{% stepper %}
{% step %}

#### Akses pengaturan variabel

Variabel dikonfigurasi pada tingkat dashboard dan berlaku untuk semua visualisasi dalam dashboard tersebut. Anda perlu mengakses pengaturan dashboard untuk membuat dan mengelola variabel.

Untuk memulai:

1. Buka dashboard Anda
2. Klik ikon **Settings** (ikon roda gigi) di pojok kanan atas
3. Navigasikan ke **Variables** bagian di panel kiri
4. Bagian akan kosong jika belum ada variabel yang dibuat
   {% endstep %}

{% step %}

#### Konfigurasikan sebuah variabel

Setiap variabel memerlukan nama, sumber data, dan kueri yang mengembalikan nilai yang dapat dipilih pengguna. Nilai variabel diisi secara dinamis dengan melakukan kueri pada **IoT Query** instansi.

Untuk membuat variabel:

1. Klik **Tambah variabel**
2. Konfigurasikan pengaturan berikut:
   1. **Pengaturan umum:**
      1. **Name**: `sensor_name` (gunakan identifier yang jelas dan deskriptif tanpa spasi)
      2. **Label**: Sama dengan name untuk konsistensi, ini yang dilihat pengguna di dashboard
      3. **Type**: Pilih **Query** untuk mengisi nilai dari basis data
   2. **Opsi kueri:**
      1. **Data source**: Pilih koneksi PostgreSQL Anda dari dropdown **IoT Query**  : Masukkan kueri SQL untuk mengisi nilai variabel
      2. **Query**Contoh kueri untuk mencantumkan semua sensor untuk perangkat tertentu:

SELECT DISTINCT sensor\_name

```sql
WHERE device_id = 12345
FROM raw_telematics_data.inputs
ORDER BY sensor_name
Setelah memasukkan kueri, Grafana mengeksekusinya segera dan menampilkan pratinjau nilai yang dikembalikan di bagian bawah halaman konfigurasi. Ini mengonfirmasi kueri Anda berfungsi dengan benar dan menunjukkan opsi yang akan tersedia di dropdown.
```

Terapkan variabel dalam kueri
{% endstep %}

{% step %}

#### Setelah variabel dibuat, Anda perlu memperbarui kueri visualisasi Anda untuk mereferensikannya. Variabel menggunakan sintaks khusus dengan awalan tanda dolar, dan Grafana secara otomatis menggantikan nilai yang dipilih saat mengeksekusi kueri.

Untuk menggunakan variabel:

Buka visualisasi yang ingin Anda buat dinamis

1. Edit kueri
2. Ganti nilai yang di-hardcode dengan referensi variabel
3. Contoh kueri yang diperbarui menggunakan variabel:

WHERE sensor\_name = '$sensor\_name'

```sql
SELECT 
    device_time AS time,
    value::numeric AS value,
    sensor_name
FROM raw_telematics_data.inputs
Perhatikan bagaimana
    AND device_id = 12345
    AND $__timeFilter(device_time)
ORDER BY device_time
```

'temperature' `telah diganti dengan` '$sensor\_name' `. Tanda kutip penting untuk nilai string dalam SQL.`Simpan dan uji
{% endstep %}

{% step %}

#### MengujI variabel memastikan ia bekerja dengan benar dan memperbarui visualisasi seperti yang diharapkan. Pastikan menyimpan pekerjaan Anda di setiap langkah untuk menghindari kehilangan perubahan konfigurasi.

Untuk menyelesaikan pengaturan:

Terapkan

1. Klik **untuk menyimpan konfigurasi variabel** Simpan dashboard
2. Klik **untuk mempertahankan semua perubahan** Kembali ke tampilan dashboard utama
3. Temukan dropdown variabel di bagian atas dashboard
4. Pilih nama sensor berbeda dari dropdown
5. Amati bahwa visualisasi akan memperbarui secara otomatis dengan data untuk sensor yang dipilih
6. &#x20;

Jika visualisasi tidak diperbarui saat Anda mengubah pilihan variabel, verifikasi bahwa nama variabel dalam kueri Anda persis sama dengan nama variabel yang Anda buat (nama variabel peka huruf besar/kecil).
{% endstep %}
{% endstepper %}

### Mengimpor dasbor pra-bangun

Dasbor pra-bangun menyediakan cara cepat untuk mulai memvisualisasikan data Anda tanpa membangun semuanya dari awal. Dasbor ini dirancang oleh pengguna berpengalaman dan mencakup praktik terbaik untuk visualisasi, tata letak, dan optimasi kueri. Namun, mereka memerlukan konfigurasi untuk terhubung ke **IoT Query** instansi.

{% stepper %}
{% step %}

#### Akses fungsi impor

Fitur impor Grafana memungkinkan Anda memuat konfigurasi dasbor dari file JSON atau langsung dari Grafana.com menggunakan ID dasbor.

1. Arahkan ke **Dashboards**
2. Klik **Baru** → **Impor**
3. Jendela unggah akan muncul
   {% endstep %}

{% step %}

#### Impor dasbor

Proses impor menerima konfigurasi dasbor dalam berbagai format, memberi Anda fleksibilitas dalam cara memuat dasbor pra-bangun.

Anda dapat mengimpor dasbor menggunakan:

* **ID Dasbor** dari Grafana.com
* **File JSON** diunduh dari repositori bi-intergrations
* **Model JSON** ditempelkan langsung

Jika menggunakan file JSON:

1. Klik **Unggah file JSON**
2. Pilih file dasbor
3. Berikan nama dan pilih folder tujuan
4. Klik **Impor**

Tunggu hingga templat dasbor selesai diunggah. Setelah selesai, dasbor akan muncul, tetapi belum menampilkan data karena masih terhubung ke sumber data asli yang digunakan saat templat dibuat.
{% endstep %}

{% step %}

#### Perbarui koneksi sumber data

Ini adalah langkah krusial. Dasbor yang diimpor awalnya terhubung ke sumber data eksternal yang tidak memiliki akses ke **IoT Query** data Anda. Anda harus memperbarui setiap visualisasi untuk menggunakan PostgreSQL **IoT Query** koneksi Anda.

Untuk memperbarui visualisasi:

1. Buka dasbor yang diimpor
2. Klik **Sunting** pada panel visualisasi pertama (cari ikon sunting atau menu tiga titik)
3. Di editor kueri, temukan pemilih sumber data
4. Ubah sumber data dari sumber asli templat ke PostgreSQL **IoT Query** koneksi Anda
5. Klik **Jalankan kueri** untuk memverifikasi visualisasi mengambil data dengan sukses
6. Klik **Simpan** untuk mempertahankan perubahan
7. Ulangi proses ini untuk setiap panel visualisasi di dasbor

{% hint style="info" %}
Simpan pekerjaan Anda secara berkala selama proses ini. Anda mungkin memiliki banyak visualisasi untuk diperbarui, dan menyimpan setelah setiap perubahan memastikan Anda tidak kehilangan kemajuan.
{% endhint %}
{% endstep %}

{% step %}

#### Perbarui variabel dasbor

Banyak dasbor pra-bangun menggunakan variabel untuk penyaringan dan interaktivitas. Variabel ini juga terhubung ke sumber data asli dan harus diperbarui untuk melakukan kueri ke **IoT Query** instansi.

Untuk memperbarui variabel:

1. Buka **Settings** → **Variables**
2. Anda akan melihat daftar semua variabel yang digunakan dalam dasbor
3. Klik **Sunting** pada variabel pertama
4. Temukan **Data source** dropdown di bagian Opsi Kueri
5. Ubah menjadi PostgreSQL **IoT Query** koneksi Anda
6. Verifikasi bahwa pratinjau di bagian bawah menampilkan nilai yang diharapkan dari basis data Anda
7. Klik **untuk menyimpan konfigurasi variabel** untuk mengonfirmasi perubahan
8. Ulangi untuk setiap variabel dalam daftar

Setelah memperbarui semua variabel, simpan dasbor lagi. Variabel sekarang seharusnya terisi dengan nilai dari **IoT Query** instansi.
{% endstep %}

{% step %}

#### Verifikasi fungsionalitas dashboard

Setelah Anda memperbarui semua visualisasi dan variabel, verifikasi bahwa semuanya bekerja bersama dengan benar. Pemeriksaan akhir ini memastikan dashboard berfungsi sepenuhnya dan siap untuk digunakan secara rutin.

Untuk memverifikasi:

1. Simpan dashboard untuk terakhir kalinya menggunakan **Ctrl+S** atau **Simpan** tombol
2. Segarkan halaman browser sepenuhnya (atau gunakan **F5**)
3. Periksa bahwa semua visualisasi menampilkan data dengan benar
4. Uji setiap dropdown variabel untuk memastikan terisi dengan nilai
5. Pilih nilai variabel yang berbeda dan konfirmasi visualisasi diperbarui sesuai
6. Coba rentang waktu berbeda menggunakan pemilih waktu

Jika ada visualisasi yang tetap kosong atau menampilkan kesalahan, kembali ke mode edit dan verifikasi konfigurasi sumber data dan kueri untuk panel-panel tersebut.
{% endstep %}
{% endstepper %}

## Pemecahan masalah

### Masalah koneksi database

**Kesalahan koneksi**: Verifikasi kredensial dan parameter koneksi cocok persis dengan rincian Anda. Periksa bahwa host, port, nama database, nama pengguna, dan kata sandi benar. **IoT Query** Periksa bahwa host, port, nama database, nama pengguna, dan kata sandi benar.

**Kesalahan firewall**: Pastikan jaringan Anda mengizinkan koneksi ke host dan port yang ditentukan. Hubungi administrator jaringan jika upaya koneksi diblokir.

**Kesalahan SSL/TLS**: Verifikasi mode SSL disetel ke `require` dan instance Grafana Anda mendukung koneksi SSL.

### Masalah kueri dan visualisasi

**Visualisasi kosong**: Pertama, verifikasi bahwa kueri benar-benar mengembalikan data dengan memeriksa query inspector (klik tombol "Query inspector" di editor panel). Pastikan rentang waktu yang dipilih mencakup periode ketika data ada di database Anda. Konfirmasi bahwa sumber data dipilih dan terhubung dengan benar. Periksa bahwa nama tabel dan kolom dalam kueri Anda cocok dengan struktur skema sebenarnya.

**Variabel tidak berfungsi**: Verifikasi bahwa kueri variabel mengembalikan nilai dengan memeriksa pratinjau di halaman konfigurasi variabel. Pastikan referensi variabel dalam kueri Anda menggunakan sintaks yang benar (`$variable_name`) tanpa kesalahan ketik. Periksa bahwa variabel disimpan dan diterapkan ke dashboard dengan benar. Jika dropdown variabel kosong, tinjau kueri SQL variabel untuk mencari kesalahan.

**Kinerja kueri lambat**: Pertimbangkan menambahkan indeks database ke kolom yang sering dikueri seperti `device_time` dan `device_id`. Batasi rentang data dengan menggunakan filter waktu lebih ketat. Optimalkan struktur kueri dengan memilih hanya kolom yang diperlukan daripada menggunakan `SELECT *`. Rujuk ke [SQL Recipe Book](https://www.navixy.com/docs/analytics/example-queries) untuk contoh optimisasi kinerja dan pola kueri yang terbukti.

**Ketidakcocokan format**: Pastikan kueri Anda mengembalikan data dalam format yang diharapkan oleh jenis visualisasi Anda. Panel time series membutuhkan kolom yang diberi alias sebagai `time` dan kolom nilai numerik. Panel tabel menerima struktur kolom apa pun. Panel grafik membutuhkan data waktu dan numerik. Periksa dokumentasi Grafana untuk persyaratan spesifik setiap jenis visualisasi.

### Masalah impor

**Data hilang setelah impor**: Verifikasi bahwa koneksi sumber data diperbarui untuk semua panel dan variabel. Jangan melewati panel mana pun selama proses pembaruan. Periksa bahwa nama skema (`raw_business_data` atau `raw_telematics_data`) yang disebutkan dalam kueri benar untuk instance Anda. **IoT Query** Pastikan nama tabel dan kolom cocok dengan struktur database Anda yang sebenarnya.

**Dashboard menampilkan kesalahan**: Buka editor kueri setiap panel dan klik "Query inspector" untuk melihat pesan kesalahan rinci. Tinjau pesan kesalahan dengan cermat—sering kali menunjukkan masalah spesifik seperti kolom yang hilang, tipe data yang salah, atau kesalahan sintaks. Pastikan nama bidang dalam kueri cocok persis dengan skema Anda (nama bidang peka huruf). Verifikasi bahwa tipe data yang dikembalikan oleh kueri kompatibel dengan jenis visualisasi. **IoT Query** Verifikasi bahwa nama bidang dalam kueri cocok persis dengan skema Anda.

**Variabel tidak terisi**: Periksa bahwa Anda telah memperbarui sumber data untuk setiap variabel, bukan hanya panel visualisasi. Verifikasikan bahwa kueri variabel benar secara sintaksis dan mengembalikan data ketika dijalankan secara langsung. Pastikan tipe variabel diatur ke "Query" daripada "Custom" atau tipe lainnya.

## Langkah selanjutnya

Setelah berhasil menghubungkan Grafana ke **IoT Query** instance:

* Jelajahi skema data yang tersedia dengan meninjau [Ikhtisar Skema](https://www.navixy.com/docs/analytics/id/iot-query/schema-overview) untuk memahami struktur data, hubungan antar tabel, dan bidang yang tersedia.
* Mulailah dengan kueri sederhana yang berfokus pada entitas bisnis tertentu sebelum membangun dasbor yang kompleks; ini membantu Anda mempelajari struktur data dan menghindari masalah kinerja.
* Tinjau [SQL Recipe Book](https://www.navixy.com/docs/analytics/id/example-queries) untuk pola kueri yang terbukti dan teknik optimisasi, serta contoh skenario analitik telematika yang umum
* Bereksperimenlah dengan berbagai jenis visualisasi (time series, tabel, gauges, stat panels) untuk menemukan representasi terbaik bagi data dan kasus penggunaan spesifik Anda
* Pertimbangkan membuat beberapa dasbor untuk tujuan yang berbeda: pemantauan waktu nyata, analisis historis, ringkasan eksekutif, dan laporan operasional.

### Dukungan

Untuk pertanyaan teknis atau bantuan terkait **IoT Query** koneksi, hubungi dukungan di <support@navixy.com>.
