Edge-home-orchestration-go: [Penyimpanan Data] tidak dapat menemukan perangkat dalam cache

Dibuat pada 8 Jun 2021  ·  10Komentar  ·  Sumber: lf-edge/edge-home-orchestration-go

Jelaskan bugnya
Orkestrasi tepi tidak dapat menemukan perangkat dalam cache jika orkestrasi tepi mendaftarkan konfigurasi perangkat ke edgex untuk pertama kalinya. Ini berfungsi setelah reboot.

Untuk Mereproduksi

  1. Hapus basis data redis
  2. Jalankan edge-orchestration dengan file konfigurasi DataStorage
  3. Panggil API dalam hal mengunggah nilai Int

Log dari edge-orchestration

level=INFO ts=2021-06-08T11:09:41.747141457Z app=datastorage source=config.go:193 msg="Loaded configuration from ./res/configuration.toml"

level=INFO ts=2021-06-08T11:09:41.748290804Z app=datastorage source=config.go:304 msg="Using local configuration from file (0 envVars overrides applied)"
level=INFO ts=2021-06-08T11:09:41.748336679Z app=datastorage source=httpserver.go:99 msg="Web server starting (127.0.0.1:49986)"
level=INFO ts=2021-06-08T11:09:41.748393149Z app=datastorage source=init.go:144 msg="Check Metadata service's status by ping..."
level=INFO ts=2021-06-08T11:09:41.748528479Z app=datastorage source=init.go:144 msg="Check Data service's status by ping..."
level=INFO ts=2021-06-08T11:09:41.749614627Z app=datastorage source=init.go:68 msg="Service clients initialize successful."
level=INFO ts=2021-06-08T11:09:41.750747311Z app=datastorage source=service.go:207 msg="Addressable datastorage doesn't exist, creating a new one"
level=DEBUG ts=2021-06-08T11:09:41.751916563Z app=datastorage source=service.go:153 msg="Trying to find DeviceService: datastorage"
level=INFO ts=2021-06-08T11:09:41.752643978Z app=datastorage source=service.go:157 msg="DeviceService datastorage doesn't exist, creating a new one"
level=DEBUG ts=2021-06-08T11:09:41.754344754Z app=datastorage source=service.go:169 msg="New DeviceService Id: 6faac9ac-6ec1-41ee-8661-927954bb7ea1"
INFO[2021-06-08T11:09:41Z]storagedriver.go:43 Initialize [storagedriver] Device service intialize started
level=DEBUG ts=2021-06-08T11:09:41.75790956Z app=datastorage source=restrouter.go:119 route=/api/v1/resource/{deviceName}/{resourceName} methods=[POST] msg="Route added"
level=INFO ts=2021-06-08T11:09:41.757963324Z app=datastorage source=storagehandler.go:66 msg="Route /api/v1/resource/{deviceName}/{resourceName} added."
level=INFO ts=2021-06-08T11:09:41.759800964Z app=datastorage source=restrouter.go:75 msg="Registering v2 routes..."
level=DEBUG ts=2021-06-08T11:09:41.76021791Z app=datastorage source=profiles.go:47 msg="created absolute path for loading pre-defined Device Profiles: /edge-orchestration/res"
level=DEBUG ts=2021-06-08T11:09:41.76330122Z app=datastorage source=profiles.go:172 msg="Getting EnableValueDescriptorManagement configuration value from Core Metadata"
level=DEBUG ts=2021-06-08T11:09:41.763993203Z app=datastorage source=devices.go:29 msg="Loading pre-define Devices from configuration"
level=DEBUG ts=2021-06-08T11:09:41.764037017Z app=datastorage source=devices.go:35 msg="Device datastorage doesn't exist, creating a new one"
level=DEBUG ts=2021-06-08T11:09:41.764581907Z app=datastorage source=devices.go:75 msg="Adding Device: {\"origin\":1623150581764,\"description\":\"RESTful Device\",\"name\":\"datastorage\",\"adminState\":\"UNLOCKED\",\"operatingState\":\"ENABLED\",\"protocols\":{\"other\":{}},\"labels\":[\"rest\",\"json\"],\"service\":{\"origin\":1623150581751,\"id\":\"6faac9ac-6ec1-41ee-8661-927954bb7ea1\",\"name\":\"datastorage\",\"operatingState\":\"ENABLED\",\"addressable\":{\"origin\":1623150581749,\"id\":\"7b016ca7-5b53-4aa3-88e5-6f4a0b484271\",\"name\":\"datastorage\",\"protocol\":\"HTTP\",\"method\":\"POST\",\"address\":\"127.0.0.1\",\"port\":49986,\"path\":\"/api/v1/callback\",\"baseURL\":\"http://127.0.0.1:49986\",\"url\":\"http://127.0.0.1:49986/api/v1/callback\"},\"adminState\":\"UNLOCKED\"},\"profile\":{\"description\":\"REST Device\",\"id\":\"3b356db4-fe39-4dc4-bd25-8bebef5e15ce\",\"name\":\"datastorage\",\"manufacturer\":\"Home Edge\",\"model\":\"Home Edge\",\"labels\":[\"rest\",\"json\",\"numeric\",\"float\",\"int\"],\"deviceResources\":[{\"description\":\"json\",\"name\":\"json\",\"properties\":{\"value\":{\"type\":\"String\",\"readWrite\":\"RW\",\"mediaType\":\"application/json\"},\"units\":{\"type\":\"String\",\"readWrite\":\"R\"}}},{\"name\":\"int\",\"properties\":{\"value\":{\"type\":\"Int64\",\"readWrite\":\"RW\",\"mediaType\":\"text/plain\"},\"units\":{\"type\":\"String\",\"readWrite\":\"R\"}}},{\"description\":\"float\",\"name\":\"float\",\"properties\":{\"value\":{\"type\":\"Float64\",\"readWrite\":\"RW\",\"mediaType\":\"text/plain\"},\"units\":{\"type\":\"String\",\"readWrite\":\"R\"}}},{\"description\":\"jpeg\",\"name\":\"jpeg\",\"properties\":{\"value\":{\"type\":\"Binary\",\"readWrite\":\"RW\",\"mediaType\":\"image/jpeg\"},\"units\":{\"type\":\"String\",\"readWrite\":\"R\"}}},{\"description\":\"png\",\"name\":\"png\",\"properties\":{\"value\":{\"type\":\"Binary\",\"readWrite\":\"RW\",\"mediaType\":\"image/png\"},\"units\":{\"type\":\"String\",\"readWrite\":\"R\"}}},{\"description\":\"string\",\"name\":\"string\",\"properties\":{\"value\":{\"type\":\"String\",\"readWrite\":\"RW\",\"mediaType\":\"text/plain\"},\"units\":{\"type\":\"String\",\"readWrite\":\"R\"}}}]}}"
level=INFO ts=2021-06-08T11:09:41.766971106Z app=datastorage source=autodiscovery.go:32 msg="AutoDiscovery stopped: disabled by configuration"
level=INFO ts=2021-06-08T11:09:41.767031297Z app=datastorage source=autodiscovery.go:37 msg="AutoDiscovery stopped: interval error in configuration"
level=INFO ts=2021-06-08T11:09:41.76706353Z app=datastorage source=autodiscovery.go:41 msg="AutoDiscovery stopped: ProtocolDiscovery not implemented"
level=INFO ts=2021-06-08T11:09:41.767094873Z app=datastorage source=message.go:50 msg="Service dependencies resolved..."
level=INFO ts=2021-06-08T11:09:41.767156624Z app=datastorage source=message.go:51 msg="Starting datastorage to be replaced by makefile "
level=INFO ts=2021-06-08T11:09:41.767182718Z app=datastorage source=message.go:58 msg="Service started in: 20.913936ms"


level=DEBUG ts=2021-06-08T11:09:51.973581107Z app=datastorage source=storagehandler.go:84 msg="Received POST for Device=datastorage Resource=int"
level=INFO ts=2021-06-08T11:09:51.973670443Z app=datastorage source=manageddevices.go:71 msg="Device datastorage cannot be found in cache"
level=ERROR ts=2021-06-08T11:09:51.973714012Z app=datastorage source=storagehandler.go:88 msg="Incoming reading ignored. Device 'datastorage' not found"

Konfigurasi lingkungan pengujian (harap lengkapi informasi berikut):

  • Versi firmware: Ubuntu 20.04
  • Perangkat keras: x86-64
  • Rilis Orkestrasi Tepi: Kelapa
bug help wanted high priority

Komentar yang paling membantu

.kata-pencarian {
WARNA LATAR BELAKANG: #ffee94
}
P {
UKURAN FONT: 10pt; MARGIN-BOTTOM: 5px; FONT-FAMILY: Arial, arial; MARGIN-ATAS: 5px
}
td {
UKURAN FONT: 10pt; MARGIN-BOTTOM: 5px; FONT-FAMILY: Arial, arial; MARGIN-ATAS: 5px
}
saya {
UKURAN FONT: 10pt; MARGIN-BOTTOM: 5px; FONT-FAMILY: Arial, arial; MARGIN-ATAS: 5px
}
TUBUH {
UKURAN FONT: 10pt; FONT-FAMILY: Arial, arial
}

P {
UKURAN FONT: 10pt; MARGIN-BOTTOM: 5px; FONT-FAMILY: Arial, arial; MARGIN-ATAS: 5px
}


Halo Petrus,

Masalahnya bukan dari sisi EdgeX. Setelah berdiskusi dengan Cloud Tsai, saya memahami penggunaan alamat IP yang salah karena coredata tidak dapat memanggil panggilan balik dan karenanya cache tidak diperbarui. Untuk mesin lokal, masalah diselesaikan dengan menggunakan alamat IP docker0 saat saya mengujinya.
Tapi sekarang masalahnya adalah skenario yang Taewan sebutkan dengan sangat baik bahwa EdgeX berjalan secara independen di satu perangkat dan Edge-Orchestration berjalan di perangkat lain yang terhubung dalam jaringan. Jadi ini harus diuji terlepas dari masalah cache. Saya mencoba melakukan pengaturan serupa. Meskipun saya menguji skenario serupa dengan buruh pelabuhan ping normal (alpine) dan dapat mengatur komunikasi menggunakan jaringan overlay. Sekarang saya perlu mencoba untuk orkestrasi tepi.

Terima kasih & Salam
Nitu

--------- Pesan asli ---------
Pengirim : Peter Moonki @ . >Tanggal : 2021-09-07 07:46 (GMT+5:30)Judul : Re: [lf-edge/edge-home-orchestration-go] [DataStorage] tidak dapat menemukan perangkat dalam cache (#312)Kepada : * @ . >
CC : Nitu Sajjanlal @ . >, @ .* >

@nitu-s-gupta Apa pendapat Anda tentang menyelesaikan masalah ini dari HomeEdge alih-alih memintanya di EdgeX, karena menurut saya alasan permintaan kami bertentangan dengan perangkat-sdk-go yang ada di EdgeX?
—Anda menerima ini karena Anda disebutkan.Balas email ini secara langsung, lihat di GitHub, atau berhenti berlangganan.Pemberitahuan triase saat bepergian dengan GitHub Mobile untuk iOS atau Android.

Semua 10 komentar

Hai @t25kim ,

Saya mereplikasi bug. Ini terjadi setiap kali kami mencoba menambahkan perangkat baru juga.

Contoh :

  1. Jika kami mengedit nama profil YAML
  2. Edit nama Perangkat di file konfigurasi

Perangkat ini tidak akan ditemukan sampai kami membangun untuk kedua kalinya. Saya mencoba ini beberapa kali dan masalah ini tampaknya konsisten. Saya memeriksa apakah ini masalah dengan rilis Hanoi atau apakah itu perlu dilakukan dari pihak kami.

Hai @t25kim ,

Saya mereplikasi bug. Ini terjadi setiap kali kami mencoba menambahkan perangkat baru juga.

Contoh :

  1. Jika kami mengedit nama profil YAML
  2. Edit nama Perangkat di file konfigurasi

Perangkat ini tidak akan ditemukan sampai kami membangun untuk kedua kalinya. Saya mencoba ini beberapa kali dan masalah ini tampaknya konsisten. Saya memeriksa apakah ini masalah dengan rilis Hanoi atau apakah itu perlu dilakukan dari pihak kami.

Terima kasih @sun-sharma.
Saya memiliki masalah yang sama dengan EdgeX v2.0.0. Silakan uji dengan PR #326.

Masalah ini berasal dari sisi EdgeX, Ketika layanan dimulai, perangkat yang sudah ada dalam metadata dimuat dalam cache. Tetapi perangkat yang ditambahkan tidak ditambahkan ke cache. Karenanya ini tidak terjadi setelah reboot. Saya telah mencoba dengan device-rest.go. Mengamati perilaku yang sama. Perubahan diperlukan di device-sdk pengecoran edgex. File yang saya periksa (/ internal/provision/devices.go) dari perangkat SDK jika edgexfoundry. Ini disebut saat startup perangkat.

Masalah ini berasal dari sisi EdgeX, Ketika layanan dimulai, perangkat yang sudah ada dalam metadata dimuat dalam cache. Tetapi perangkat yang ditambahkan tidak ditambahkan ke cache. Karenanya ini tidak terjadi setelah reboot. Saya telah mencoba dengan device-rest.go. Mengamati perilaku yang sama. Perubahan diperlukan di device-sdk pengecoran edgex. File yang saya periksa (/ internal/provision/devices.go) dari perangkat SDK jika edgexfoundry. Ini disebut saat startup perangkat.

@nitu-s-gupta Bagaimana dengan mendekati EdgeX dengan saya dan mencoba menyelesaikan masalah ini? 😄

Masalah ini berasal dari sisi EdgeX, Ketika layanan dimulai, perangkat yang sudah ada dalam metadata dimuat dalam cache. Tetapi perangkat yang ditambahkan tidak ditambahkan ke cache. Karenanya ini tidak terjadi setelah reboot. Saya telah mencoba dengan device-rest.go. Mengamati perilaku yang sama. Perubahan diperlukan di device-sdk pengecoran edgex. File yang saya periksa (/ internal/provision/devices.go) dari perangkat SDK jika edgexfoundry. Ini disebut saat startup perangkat.

Terima kasih atas usaha Anda!
Biarkan saya menjelaskan lebih detail, edgex-metadata harus mengirim permintaan (panduan salah) ke layanan untuk memperbarui cache. Namun edgex-metadata tidak melakukan itu.
Ketika saya memanggil REST API ke penyimpanan data, cache diperbarui.

data metadata edgex

curl http://localhost:48081/api/v1/device
[{"created":1629351516733,"modified":1629351516733,"origin":1629351516731,"description":"RESTful Device","id":"774deba4-5469-4c38-8c2a-93a0f3c08252","name":"edge-orchestration-c1b23cc6-0767-400a-9cf0-36e1b3902da2",

Permintaan CURL

$ curl -X 'POST' ' http://localhost :49986/api/v1/callback' -H 'accept: / ' -H 'Content-Type: application/json' -d '{"type":"DEVICE ","id":"774deba4-5469-4c38-8c2a-93a0f3c08252"}'

Log Orkestrasi Tepi

INFO[2021-08-19T06:01:36Z]discovery.go:577 func1
level=INFO ts=2021-08-19T06:02:25.506828567Z app=datastorage source=device.go:72 msg="Added device: edge-orchestration-c1b23cc6-0767-400a-9cf0-36e1b3902da2"
INFO[2021-08-19T06:02:25Z]storagedriver.go:73 AddDevice [storagedriver] Device has been successfully added!!!!!! edge-orchestration-c1b23cc6-0767-400a-9cf0-36e1b3902da2
level=DEBUG ts=2021-08-19T06:02:25.50692288Z app=datastorage source=device.go:82 msg="Invoked driver.AddDevice callback for edge-orchestration-c1b23cc6-0767-400a-9cf0-36e1b3902da2"
level=DEBUG ts=2021-08-19T06:02:25.50693632Z app=datastorage source=device.go:89 msg="Handler - starting AutoEvents for device edge-orchestration-c1b23cc6-0767-400a-9cf0-36e1b3902da2"

Saya pikir edgex akan diperbaiki atau kami dapat menambahkan beberapa kode solusi ke penyimpanan data.
Apa yang Anda sukai? (Membagikan masalah ini ke edgex bagus untuk kolaborasi sumber terbuka

@t25kim Bagaimana jika mengangkat masalah di edgex github perangkat SDK?, sehingga dapat diperbarui. Solusi dapat dilakukan seperti memanggil API. Tapi satu hal lagi yang saya perhatikan adalah storagedriver kami memiliki panggilan balik, itu harus dipanggil saat perangkat ditambahkan. Tapi itu juga tidak dipanggil, karena pekerjaan di sekitar langkah-langkah akan disertakan di sana

Masalah ini berasal dari sisi EdgeX, Ketika layanan dimulai, perangkat yang sudah ada dalam metadata dimuat dalam cache. Tetapi perangkat yang ditambahkan tidak ditambahkan ke cache. Karenanya ini tidak terjadi setelah reboot. Saya telah mencoba dengan device-rest.go. Mengamati perilaku yang sama. Perubahan diperlukan di device-sdk pengecoran edgex. File yang saya periksa (/ internal/provision/devices.go) dari perangkat SDK jika edgexfoundry. Ini disebut saat startup perangkat.

Terima kasih atas usaha Anda!
Biarkan saya menjelaskan lebih detail, edgex-metadata harus mengirim permintaan (panduan salah) ke layanan untuk memperbarui cache. Namun edgex-metadata tidak melakukan itu.
Ketika saya memanggil REST API ke penyimpanan data, cache diperbarui.

data metadata edgex

curl http://localhost:48081/api/v1/device
[{"created":1629351516733,"modified":1629351516733,"origin":1629351516731,"description":"RESTful Device","id":"774deba4-5469-4c38-8c2a-93a0f3c08252","name":"edge-orchestration-c1b23cc6-0767-400a-9cf0-36e1b3902da2",

Permintaan CURL

$ curl -X 'POST' ' http://localhost :49986/api/v1/callback' -H 'accept: _/_' -H 'Content-Type: application/json' -d '{"type": "PERANGKAT","id":"774deba4-5469-4c38-8c2a-93a0f3c08252"}'

Log Orkestrasi Tepi

INFO[2021-08-19T06:01:36Z]discovery.go:577 func1
level=INFO ts=2021-08-19T06:02:25.506828567Z app=datastorage source=device.go:72 msg="Added device: edge-orchestration-c1b23cc6-0767-400a-9cf0-36e1b3902da2"
INFO[2021-08-19T06:02:25Z]storagedriver.go:73 AddDevice [storagedriver] Device has been successfully added!!!!!! edge-orchestration-c1b23cc6-0767-400a-9cf0-36e1b3902da2
level=DEBUG ts=2021-08-19T06:02:25.50692288Z app=datastorage source=device.go:82 msg="Invoked driver.AddDevice callback for edge-orchestration-c1b23cc6-0767-400a-9cf0-36e1b3902da2"
level=DEBUG ts=2021-08-19T06:02:25.50693632Z app=datastorage source=device.go:89 msg="Handler - starting AutoEvents for device edge-orchestration-c1b23cc6-0767-400a-9cf0-36e1b3902da2"

Saya pikir edgex akan diperbaiki atau kami dapat menambahkan beberapa kode solusi ke penyimpanan data.
Apa yang Anda sukai? (Membagikan masalah ini ke edgex bagus untuk kolaborasi sumber terbuka

@jpwhitemn Hai, kami mengalami masalah dengan penyimpanan data yang terkait dengan EdgeX Foundry. Bisakah Anda memperkenalkan kami orang yang tepat dari komunitas EdgeX untuk mendiskusikan dan/atau menyelesaikan topik ini? 😄

Bagaimana jika mengangkat masalah di edgex github perangkat SDK?, sehingga dapat diperbarui. Solusi dapat dilakukan seperti memanggil API. Tapi satu hal lagi yang saya perhatikan adalah storagedriver kami memiliki panggilan balik, itu harus dipanggil saat perangkat ditambahkan. Tapi itu juga tidak dipanggil, karena pekerjaan di sekitar langkah-langkah akan disertakan di sana

Saya setuju untuk membagikan masalah ini dengan edgex. Namun jika patch tidak diimplementasikan pada edgex sebelum home edge d-release, mari kita perbaiki di Edge Orchestration.

.kata-pencarian {
WARNA LATAR BELAKANG: #ffee94
}
P {
UKURAN FONT: 10pt; MARGIN-BOTTOM: 5px; FONT-FAMILY: Arial, arial; MARGIN-ATAS: 5px
}
td {
UKURAN FONT: 10pt; MARGIN-BOTTOM: 5px; FONT-FAMILY: Arial, arial; MARGIN-ATAS: 5px
}
saya {
UKURAN FONT: 10pt; MARGIN-BOTTOM: 5px; FONT-FAMILY: Arial, arial; MARGIN-ATAS: 5px
}
TUBUH {
UKURAN FONT: 10pt; FONT-FAMILY: Arial, arial
}

P {
UKURAN FONT: 10pt; MARGIN-BOTTOM: 5px; FONT-FAMILY: Arial, arial; MARGIN-ATAS: 5px
}


Halo Petrus,

Masalahnya bukan dari sisi EdgeX. Setelah berdiskusi dengan Cloud Tsai, saya memahami penggunaan alamat IP yang salah karena coredata tidak dapat memanggil panggilan balik dan karenanya cache tidak diperbarui. Untuk mesin lokal, masalah diselesaikan dengan menggunakan alamat IP docker0 saat saya mengujinya.
Tapi sekarang masalahnya adalah skenario yang Taewan sebutkan dengan sangat baik bahwa EdgeX berjalan secara independen di satu perangkat dan Edge-Orchestration berjalan di perangkat lain yang terhubung dalam jaringan. Jadi ini harus diuji terlepas dari masalah cache. Saya mencoba melakukan pengaturan serupa. Meskipun saya menguji skenario serupa dengan buruh pelabuhan ping normal (alpine) dan dapat mengatur komunikasi menggunakan jaringan overlay. Sekarang saya perlu mencoba untuk orkestrasi tepi.

Terima kasih & Salam
Nitu

--------- Pesan asli ---------
Pengirim : Peter Moonki @ . >Tanggal : 2021-09-07 07:46 (GMT+5:30)Judul : Re: [lf-edge/edge-home-orchestration-go] [DataStorage] tidak dapat menemukan perangkat dalam cache (#312)Kepada : * @ . >
CC : Nitu Sajjanlal @ . >, @ .* >

@nitu-s-gupta Apa pendapat Anda tentang menyelesaikan masalah ini dari HomeEdge alih-alih memintanya di EdgeX, karena menurut saya alasan permintaan kami bertentangan dengan perangkat-sdk-go yang ada di EdgeX?
—Anda menerima ini karena Anda disebutkan.Balas email ini secara langsung, lihat di GitHub, atau berhenti berlangganan.Pemberitahuan triase saat bepergian dengan GitHub Mobile untuk iOS atau Android.

Terima kasih atas klarifikasi Anda yang baik, @nitu-s-gupta

Apakah halaman ini membantu?
0 / 5 - 0 peringkat