استعلامات StableNet

ينطبق هذا القسم على الأنظمة المدمجة مع StableNet® فقط

يمكن الاستعلام عن بيانات StableNet® من مجموعة بيانات مجمعة في قاعدة بيانات SKOOR محلية وكذلك في الوقت الفعلي من واجهة برمجة تطبيقات StableNet®. تساعد الإرشادات التالية على الجمع بين هاتين الطريقتين وتحسينهما.

قم بإعداد استعلام بيانات مادي للأجهزة والقياسات

يوفر نموذج الاستعلام التالي بيانات أساسية للاستخدام مع أداة FilterMatrix (على سبيل المثال، مرشح للأجهزة أو القياسات) وكذلك لربط بيانات القياس من واجهة برمجة تطبيقات StableNet® أو جدول البيانات المجمعة. يجب تعيين مصدر البيانات على أحد أنواع StableNet.

-- Data query example "device_measurement"

SELECT   
  std.id AS device_id,
  std.display_name AS device_name,
  sm.id as measurement_id,
  sm.name as measurement_name
FROM stablenet_taggable_device std
JOIN stablenet_measurement sm 
  ON std.id = sm.dest_device_id

نظرًا لأن بيانات الأجهزة والقياسات لا تتغير كثيرًا، يجب أن يكون هذا الاستعلام ماديًا. سيتم تحسين الأداء بشكل كبير.

اضبط فترة التحديث على يوميًا وأنشئ فهارس لجميع السمات:

image-20240513-142234.png

اربط الجدول الخارجي للبيانات في الوقت الفعلي

بالإضافة إلى استعلام البيانات المادية المعدة مسبقًا، يمكن ربط البيانات من StableNet® API باستخدام جدول خارجي.

تشير الكلمة الرئيسية FROM في المثال التالي إلى الاستعلام المادي المُعد أعلاه.

SELECT   
  dm.device_id,
  dm.device_name,
  dm.measurement_name,
  dm.measurement_id,
  sma.metric_key,
  sma.metric_name,
  sma.interval,
  sma.min,
  sma.max,
  sma.avg,
  sma.timestamp
FROM device_measurement dm
JOIN stablenet_measurement_data sma 
  ON dm.measurement_id = sma.measurement_id
WHERE sma.start = ${begin}::timestamptz
  AND sma."end" = ${end}::timestamptz
  AND sma.bucket_size = EXTRACT(
    EPOCH FROM ('1 ' || ${bucket_size})::interval
  )::integer
  AND sma.metric_name = ${metric_name}

في لوحة المعلومات أو معاينة البيانات، يجب تعيين السمات التالية لهذا الاستعلام النموذجي:

image-20240516-132209.png
  • begin/end: طابع زمني ISO 8601، على سبيل المثال 2024-05-01T00:00:00Z

  • bucket_size: فئة زمنية بالكلمات مثل ساعة، يوم، شهر، إلخ.

  • metric_name: اسم مقياس StableNet® صالح مثل Round Trip Time

بدلاً من metric_name، جرب السمة metric_key في جملة WHERE لتحديد مقياس معين إذا كان هناك أكثر من مقياس واحد متاح

انضم إلى جدول البيانات المجمعة

إذا كان الأداء أكثر أهمية من البيانات في الوقت الفعلي، فيجب تفضيل جدول البيانات المجمعة على الجداول الخارجية.

تشير الكلمة الرئيسية FROM في المثال التالي إلى الاستعلام المادي المُعد أعلاه.

SELECT   
  dm.device_id,
  dm.device_name,
  dm.measurement_name,
  dm.measurement_id,
  sma.metric_key,
  sma.metric_name,
  sma.interval,
  sma.min,
  sma.max,
  sma.avg,
  sma.timestamp
FROM device_measurement dm
JOIN stablenet_measurement_data_aggregated sma 
  ON dm.measurement_id = sma.measurement_id
WHERE sma.timestamp BETWEEN ${begin}::timestamptz AND ${end}::timestamptz
  AND sma.metric_name = ${metric_name}

في لوحة المعلومات أو معاينة البيانات، يجب تعيين السمات التالية لهذا الاستعلام النموذجي:

image-20240516-132037.png
  • begin/end: طابع زمني ISO 8601، على سبيل المثال 2024-05-01T00:00:00Z

  • metric_name: اسم مقياس StableNet® صالح مثل Round Trip Time

بدلاً من metric_name، جرب السمة metric_key في جملة WHERE لتحديد مقياس معين إذا كان هناك أكثر من مقياس واحد متاح

الجداول الخارجية

الاسم

الحقول

المؤهلات

stablenet_info

server_name TEXT
name TEXT
version TEXT
technical_version TEXT

 

stablenet_taggable

server_name TEXT
domain TEXT
id BIGINT
name TEXT
display_name TEXT
state TEXT
attribute_tags JSONB
custom_tags JSONB
tag_filter TEXT

domain TEXT (إلزامي)
id BIGINT
tag_filter TEXT

stablenet_taggable_device

server_name TEXT
id BIGINT
name TEXT
display_name TEXT
state TEXT
attribute_tags JSONB
custom_tags JSONB
tag_filter TEXT

id BIGINT
tag_filter TEXT

stablenet_taggable_interface

server_name TEXT
id BIGINT
name TEXT
display_name TEXT
state TEXT
attribute_tags JSONB
custom_tags JSONB
tag_filter TEXT

id BIGINT
tag_filter TEXT

stablenet_taggable_job

server_name TEXT
id BIGINT
name TEXT
display_name TEXT
state TEXT
attribute_tags JSONB
custom_tags JSONB
tag_filter TEXT

id BIGINT
tag_filter TEXT

stablenet_taggable_link

server_name TEXT
id BIGINT
name TEXT
display_name TEXT
state TEXT
attribute_tags JSONB
custom_tags JSONB
tag_filter TEXT

id BIGINT
tag_filter TEXT

stablenet_taggable_service

server_name TEXT
id BIGINT
name TEXT
display_name TEXT
state TEXT
attribute_tags JSONB
custom_tags JSONB
tag_filter TEXT

id BIGINT
tag_filter TEXT

stablenet_taggable_agent

server_name TEXT
id BIGINT
name TEXT
display_name TEXT
state TEXT
attribute_tags JSONB
custom_tags JSONB
tag_filter TEXT

id BIGINT
tag_filter TEXT

stablenet_tag_category

server_name TEXT
domain TEXT
id BIGINT
name TEXT
description TEXT

domain TEXT (إلزامي)
id BIGINT

 

stablenet_measurement

server_name TEXT
id BIGINT
name TEXT
description TEXT
categories JSONB
dest_device_id BIGINT
dest_interface_id BIGINT
agent_id BIGINT
start_time TIMESTAMPTZ
end_time TIMESTAMPTZ
state TEXT
type TEXT
template_name TEXT
permanent BOOL
payload JSONB
active BOOL
tag_filter TEXT

tag_filter TEXT
dest_device_id BIGINT

stablenet_measurement_metric

server_name TEXT
measurement_id BIGINT
data_id BIGINT
description TEXT
expected_interval INT
key TEXT
name TEXT
only_average BOOL
unit TEXT

measurement_id BIGINT

stablenet_measurement_data







server_name TEXTmeasurement_id BIGINTmetric_key TEXTmetric_name TEXT"start" TIMESTAMPTZ"end" TIMESTAMPTZbucket_size INT(ثواني)
"timestamp" TIMESTAMPTZ

min double precision
max double precision
avg double precisiontag_filter TEXT



measurement_id BIGINTmetric_key TEXT"start" TIMESTAMPTZ(إلزامي)
"end" TIMESTAMPTZ(إلزامي)
bucket_size INT(إلزامي)
tag_filter TEXT

 

على الرغم من أن measurement_id و metric_key اختياريان، إلا أنه لا يُنصح بتنفيذ الاستعلامات بدونهما. يؤدي ذلك إلى قراءة بيانات القياس لجميع القياسات وجميع المقاييس، مما قد يستغرق وقتًا طويلاً في القراءة ويضع عبئًا ثقيلًا على خادم StableNet. يُنصح بذلك فقط للنطاقات الزمنية القصيرة جدًا < 1 ساعة. إذا كانت هناك حاجة إلى قياسات ومقاييس متعددة، فيجب استخدام الجدول stablenet_measurement_data_aggregated.

بيانات القياس المجمعة

مجمعة حسب الساعة، يتم تحديثها تلقائيًا كل ساعة. يمكن استخدامها لإجراء استعلامات تحليلية على نطاق واسع من القياسات وعلى نطاقات زمنية كبيرة.

هي في الأساس جدول ضخم من Timescale (https://docs.timescale.com/ ). حجم القطعة هو 7 أيام، ويتم ضغط القطع بعد 7 أيام.

الاسم

الحقول

stablenet_measurement_data_aggregated

server_name TEXT
measurement_id BIGINT
metric_key TEXT
metric_name TEXT
"timestamp" TIMESTAMPTZ NOT NULL
min double precision
max double precision
avg double precision

stablenet_measurement_data_aggregated تحتوي فقط على بيانات لمفاتيح المقاييس المكونة.