مستندات ویرالینک

گره های غنی سازی (Enrichment Nodes)

گره های غنی سازی برای بروز رسانی metadata پیام های ورودی استفاده میشود.

گره محاسبه دلتا (Calculate delta) #

محاسبه دلتا بر اساس داده های سری زمانی گذشته و فعلی و افزودن نتیجه آن به پیام. برای مثال دستگاه سنجش جریان آب مقدار واقعی شمارشگر پالس (pulse counter) را هر روز یکبار گزارش می دهد برای یافتن مقدار مصرف آب امروز بایستی مقدار دریافتی امروز را با مقدار دریافتی دیروز مقایسه کنید.

پارامتر های پیکربندی:

  • کلید مقدار ورودی (Input value key) – کلید داده سری زمانی که میخواهیم دلتای آن را محاسبه کنیم.
  • کلید مقدار خروجی (output value key) – کلید داده ای که میخواهیم نتیجه دلتا در پیام خروجی ذخیره شود.
  • Decimals – دقت محاسبه دلتا
  • استفاده از کش برای آخرین مقدار (Use cache for latest value) – فعال سازی cache آخرین مقدار دریافتی.
  • ارسال خطا در صورتی که دلتا منفی باشد (Tell ‘Failure’ if delta is negative) – در صورتی که نتیجه دلتا منفی باشد در پردازش پیام خطا می دهد.
  • افزودن مقدار فاصله زمانی بین پیام ها (Add period between messages) – مقدار اختلاف زمانی بین پیام فعلی و پیام قبلی را در پیام خروجی می افزاید.

خروجی های گره:

  • Success – در صورتی که کلید مقدار ورودی پیکربندی شده در پیام ورودی وجود داشته باشد
  • Other – در صورتی که کلید مقدار ورودی پیکربندی شده در پیام ورودی وجود نداشه باشد
  • Failure – در صورتی که گزینه ارسال خطا در صورتی که دلتا منفی باشد فعال بوده و دلتای محاسبه شده منفی باشد.

در ادامه مثالی از محاسبه دلتا را بررسی می کنیم. فرض می کنیم که پیکربندی گره به شکل زیر می باشد.

و پیام های وردی به صورت ترتیبی از یک دستگاه یکسان به صورت زیر می باشد.

msg: {"pulseCounter": 42}, metadata: {"ts": "1616510425000"}
msg: {"pulseCounter": 73}, metadata: {"ts": "1616510485000"}
msg: {"temperature": 22}, metadata: {"ts": "1616510486000"}
msg: {"pulseCounter": 42}, metadata: {"ts": "1616510487000"

نتایج پردازش محاسبه دلتا به صورت زیر خواهد بود:

msg: {"pulseCounter": 42, "delta": 0, "periodInMs": 0}, metadata: {"ts": "1616510425000"}, relation: Success
msg: {"pulseCounter": 73, "delta": 31, "periodInMs": 60000}, metadata: {"ts": "1616510485000"}, relation: Success
msg: {"temperature": 22}, metadata: {"ts": "1616510486000"}, relation: Other
msg: {"pulseCounter": 42}, metadata: {"ts": "1616510487000"}, relation: Failure

گره صفت های مشتری (Customer Attributes) #

این گره مشتری مرتبط به موجودیت مولد پیام را یافته و صفت های مشتری یا آخرین داده های تله متری به metadata پیام می افزاید. مدیر میتواند نگاشت (mapping) بین نام صفت اصلی و نام صفت metadata، را پیکربندی نماید.

در صفحه پیکربندی این گره گزینه ای به نام آخرین داده تله متری (Latest Telemetry) وجود دارد. در صورتی که این گزینه فعال باشد، گره آخرین داده تله متری برای کلید تعریف شده را استخراج میکند در غیر اینصورت گره مقدار صفت سمت سرور را واکشی خواهد کرد.

metadata پیام خروجی از این گره حاوی صفت های پیکربندی شده خواهد بود (در صورت موجود بودن). در گره های دیگر می توانید از این داده های واکشی شده استفاده نمایید. برای مثال ‘metadata.tempo’

مولد های پیشتبانی شده برای پیام ها: مشتری، کاربر، دارایی، دستگاه

در صورتی که نوع مولد پشتیبانی نشده باشد پیام خطا ایجاد خواهد شد.

در صورتی که مولد پیام به موجودیت مشتری تخصیص نیافته باشد زنجیر Failure و در غیر اینصورت زنجیر Success استفاده خواهد شد.

برای مشاهده موارد کاربرد این گره در یک سناریو واقعی میتوانید آموزش زیر را مطالعه نمایید.

  • ارسال ایمیل

گره صفت های دستگاه (Device Attributes) #

این گره دستگاه مرتبط به موجودیت مولد پیام با استفاده از query پیکربندی شده را یافته و صفت های سمت کاربر، مشترک و سرور (client\shared\server attributes) و آخرین داده تله متری را به metadata پیام می افزاید.

صفت های افزوده به صورت زیر دارای پیشوند خواهند بود

  • صفت های مشترک -> shared_
  • صفت های سمت کاربر -> cs_
  • صفت های سمت سرور -> ss_
  • داده های تله متری -> بدون پیشوند

برای مثال صفت مشترک ‘version’ بعد از اضافه شدن به metadata پیام به نام ‘shared_version’ خواهد بود. 

در بخش جستجو روابط دستگاه (Device relations query)  در صفحه پیکربندی مدیر میتواند  جهت (Direction) و حداکثر عمق سطح (Max relation level) را تعیین نماید. همچنین میتواند نوع رابطه (Relation Type) را با لیستی از انواع دستگاه ها (Device Types) مشخص نماید.

در صورتی که چندین موجودیت مرتبط پیدا شود، تنها اولین موجودیت استفاده خواهد شد و بقیه موجودیت ها نادیده گرفته خواهد شد.

در صورتی که هیچ موجودیت مرتبط پیدا نشود زنجیر Failure و در غیر اینصورت زنجیر Success استفاده خواهد شد.

اگر صفت یا داده تله متری پیدا نشود، به metadata پیام افزوده نخواهد شد و پیام از طریق زنجیر Success به گره بعدی ارسال خواهد شد.

metadata پیام خروجی شامل صفت های پیکربندی خواهد بود تنها در صورتی که موجود باشد.

در گره های دیگر می توانید از این داده های واکشی شده استفاده نمایید. برای مثال ‘metadata.temperature’

شما میتوانید در صفحه پیکربندی این گره گزینه ارسال خطا (Tell Failure) را فعال را غیر فعال کنید. در صورتی که این گزینه فعال باشد اگر حداقل یکی از کلید های انتخاب شده در پیام خروجی وجود نداشته باشد زنجیر Failure استفاده خواهد شد.

گره صفت های مولد (Originator Attributes) #

صفت های مولد پیام سمت کاربر، مشترک و سرور (client\shared\server attributes) و آخرین داده تله متری را به metadata پیام می افزاید.

صفت های افزوده به صورت زیر دارای پیشوند خواهند بود

  • صفت های مشترک -> shared_
  • صفت های سمت کاربر -> cs_
  • صفت های سمت سرور -> ss_
  • داده های تله متری -> بدون پیشوند

برای مثال صفت مشترک ‘version’ بعد از اضافه شدن به metadata پیام به نام ‘shared_version’ خواهد بود. 

در صورتی وجود داشتن صفت های پیکربندی شده در  metadata پیام خروجی خواهد بود. 

در گره های دیگر می توانید از این داده های واکشی شده استفاده نمایید. برای مثال ‘metadata.cs_temperature’

شما میتوانید در صفحه پیکربندی این گره گزینه ارسال خطا (Tell Failure) را فعال را غیر فعال کنید. در صورتی که این گزینه فعال باشد اگر حداقل یکی از کید های انتخاب شده در پیام خروجی وجود نداشته باشد زنجیر Failure استفاده خواهد شد.

برای مشاهده موارد کاربرد این گره در یک سناریو واقعی میتوانید آموزش زیر را مطالعه نمایید.

  • ارسال ایمیل
  • تبدیل داده های تله متری با استفاده از داده های قبلی

فیلد های مولد (Originator Fields) #

این گره مقادیر فیلد های موجودیت مولد پیام را واکشی مینماید و آن ها را به metadata پیام اضافه میکند. مدیر میتواند نگاشت (mapping) بین فیلد ها و نام صفت های metadata را پیکربندی نماید. در صورتی که فیلدی در فیلد های موجودیت مولد پیام موجود نباشد نادیده گرفته خواهد شد.

انواع موجودیت مولد پیام که پشتیبانی میشوند:  مدیر (Tenant)، مشتری، کاربر، دارایی، دستگاه، هشدار، زنجیره قواعد

در صورتی که نوع مولد پیام پشتیبانی نشده باشد زنجیر Failure استفاده خواهد شد در غیر اینصورت زنجیر Success.

در صورتی که مقدار فیلد پیدا نشود، به metadata پیام افزوده نخواهد شد و از طریق زنجیر Success به گره بعدی ارسال خواهد شد.

metadata پیام خروجی شامل صفت های پیکربندی خواهد بود تنها در صورتی که موجود باشد.

در گره های دیگر می توانید از این داده های واکشی شده استفاده نمایید. برای مثال ‘metadata.devType’

این گره موجودیت مرتبط به موجودیت مولد پیام را یافته و صفت های موجودیت یا آخرین داده های تله متری به metadata پیام می افزاید. دیر میتواند نگاشت (mapping) بین نام صفت اصلی و نام صفت metadata، را پیکربندی نماید.

در بخش جستجو روابط (relations query)  در صفحه پیکربندی مدیر میتواند  جهت (Direction) و حداکثر عمق سطح (Max relation level) را تعیین نماید. همچنین به کمک فیلتر های رابطه (Relation filters) میتوانید نوع رابطه و نوع موجودیت را فیلتر کنید.

در صفحه پیکربندی این گره گزینه ای به نام آخرین داده تله متری (Latest Telemetry) وجود دارد. در صورتی که این گزینه فعال باشد، گره آخرین داده تله متری برای کلید تعریف شده را استخراج میکند در غیر اینصورت گره مقدار صفت سمت سرور را واکشی خواهد کرد.

در صورتی که چندین موجودیت مرتبط پیدا شود، تنها اولین موجودیت استفاده خواهد شد و بقیه موجودیت ها نادیده گرفته خواهد شد.

در صورتی که هیچ موجودیت مرتبط پیدا نشود زنجیر Failure و در غیر اینصورت زنجیر Success استفاده خواهد شد.

metadata پیام خروجی شامل صفت های پیکربندی خواهد بود تنها در صورتی که موجود باشد.

در گره های دیگر می توانید از این داده های واکشی شده استفاده نمایید. برای مثال ‘metadata.tempo’

برای مشاهده موارد کاربرد این گره در یک سناریو واقعی میتوانید آموزش زیر را مطالعه نمایید.

  • پاسخ دادن به فراخوانی های RPC

گره صفت های مدیر (Tenant attributes) #

این گره مدیر مربوط به موجودیت مولد پیام را یافته و صفت های مدیر یا آخرین داده های تله متری به metadata پیام می افزاید. دیر میتواند نگاشت (mapping) بین نام صفت اصلی و نام صفت metadata، را پیکربندی نماید.

در صفحه پیکربندی این گره گزینه ای به نام آخرین داده تله متری (Latest Telemetry) وجود دارد. در صورتی که این گزینه فعال باشد، گره آخرین داده تله متری برای کلید تعریف شده را استخراج میکند در غیر اینصورت گره مقدار صفت سمت سرور را واکشی خواهد کرد.

metadata پیام خروجی از این گره حاوی صفت های پیکربندی شده خواهد بود (در صورت موجود بودن). در گره های دیگر می توانید از این داده های واکشی شده استفاده نمایید. برای مثال ‘metadata.temo’

گره تله متری مولد (Originator telemetry) #

این گره مقادیر داده های تله متری مولد پیام در بازه زمانی پیکربندی شده استخراج کرده و به metadata پیام می افزاید. بازه زمانی پیکربندی شده زیر نمایانگر بازه زمانی از ۲ دقیقه قبل تا ۱ دقیقه قبل است.

داده های تله متری بدون پسوند به metadata پیام افزوده می شوند.

این گره برای واکشی داده ها سه حالت دارد:

  • FIRST: نردیک ترین مقدار به شروع زمان در بازه زمانی پیکربندی شده.
  • LAST: نردیک ترین مقدار به پایان زمان در بازه زمانی پیکربندی شده.
  • ALL: تمام مقادیر در بازه زمانی انتخاب شده.

در صورتی که یکی از گزینه های FIRST و یا LAST را انتخاب نمایید، metadata پیام خروجی شامل کلید-مقدار در فرمت JSON است. اما اگر گزینه ALL را انتخاب نمایید پیام خروجی شامل یک آرایه شامل timestamp و مقدار خواهد بود. همچنین در صورت انتخاب گزینه ALL میتوانید مقادیر استخراج شده را به صورت صعودی و یا نزولی مرتب نمایید.

توجه: این گره حداکثر میتواند 1000 رکورد از پایگاه داده ها جمع‌آوری و در آرایه قرار دهد.

توجه: مقدار پایان بازه زمانی (End interval) همواره بایستی کمتر از مقدار آغاز بازه زمانی (Start interval) باشد.

میتوانید با فعال کردن گزینه استخراج بازه زمانی از ورودی پیام (Use interval pattern)، به کمک الگو پیکربندی شده از محتوا و یا metadata پیام بازه زمانی مد نظر خود را پیکربندی نمایید.

اگر الگوی پیکربندی شده در پیام وجود نداشته باشد و یا الگو نامعتبر باشد پیام از طریق زنجیر failure ارسال خواهد شد .

metadata پیام خروجی از این گره حاوی داده های تله متری پیکربندی شده خواهد بود (در صورت موجود بودن). در گره های دیگر می توانید از این داده های واکشی شده استفاده نمایید. برای مثال ‘metadata.temperature’

برای مشاهده موارد کاربرد این گره در یک سناریو واقعی میتوانید آموزش زیر را مطالعه نمایید.

  • محاسبه دلتا داده های تله متری

گره جزییات مدیر (Tenant Details) #

این گره میتواند مقادیر فیلد های جزییات مدیر را به محتوا و یا metadata پیام بیفزاید.

با فعال کردن گزینه افزودن جزییات انتخاب شده به metadata پیام (Add selected details to the message metadata) جزییات به metadata پیام افزوده خواهد شد و با غیر فعال کردن آن به محتوا پیام اضافه خواهد شد.

جزییات انتخاب شده با پسوند tenant_ به محتوا و یا metadata پیام خروجی افزوده خواهد شد. از این داده های واکشی شده استفاده نمایید. برای مثال ‘metadata.tenant_address’ یا ‘msg.tenant_address’

گره جزییات مشتری (Customer Details) #

این گره میتواند مقادیر فیلد های جزییات مشتری را به محتوا و یا metadata پیام بیفزاید.

با فعال کردن گزینه افزودن جزییات انتخاب شده به metadata پیام (Add selected details to the message metadata) جزییات به metadata پیام افزوده خواهد شد و با غیر فعال کردن آن به محتوا پیام اضافه خواهد شد.

جزییات انتخاب شده با پسوند customer_ به محتوا و یا metadata پیام خروجی افزوده خواهد شد. از این داده های واکشی شده استفاده نمایید. برای مثال ‘metadata.customer_email’ یا ‘msg.customer_email’

مولد های پیشتبانی شده برای پیام ها: نمایش موجودیت، دارایی، دستگاه

در صورتی که موجودیت مولد پیام پشتیبانی نشده باشد و یا به مشتری تخصیص داده نشده باشد از طریق زنجیر Failure به گره بعدی ارسال خواهد شد در غیر اینصورت از طریق زنجیر Success ارسال خواهد شد.