Telemetrická data ze zařízení Dronetag můžete získávat i tak, že spojení navážou naše servery a data posílají (push) na ty vaše. Tato spojení spravujete v našem portálu integrací, kde si vše nakonfigurujete sami. Portál vám dává plnou kontrolu nad nastavením integrace — můžete zvolit protokol spojení, například HTTP webhooky, MQTT, TCP nebo UDP, snadno přepínat mezi testovacím a produkčním prostředím a upravovat další nastavení podle potřeby.
K nastavení integrace Data Push potřebujete přístup k portálu. Ten mají uživatelé s předplatným Pro a obchodní partneři zapojení do našich společných projektů. Pokud o přístup máte zájem, ozvěte se nám.
Portál najdete na adrese https://integrations.dronetag.app.
V přehledném webovém rozhraní integraci nastavíte během několika kroků.
Náš integrační systém je navržený tak, aby byl co nejflexibilnější. U každé integrace si můžete sami, bez naší pomoci, upravit řadu parametrů:
Abyste mohli začít přenášet data, musíte vytvořit cíl distribuce (distribution target). Ten představuje službu, do které chcete data posílat. Cílů můžete vytvořit několik, jejich počet je ale omezený. Jakmile cíl vytvoříte, náš systém do něj bude data automaticky posílat, dokud ho nedeaktivujete nebo neodstraníte.
Chcete-li dočasně přestat posílat data do svých služeb, distribuci pozastavte tím, že ji označíte jako neaktivní. Pokud distribuci už nepotřebujete, můžete ji trvale smazat.
Každá distribuce Data Push kombinuje dvě nezávislé volby:
Většina formátů je technicky nezávislá na přenosu, ne každá kombinace má ale v praxi smysl. Protokol vyberte podle toho, jak váš systém data přijímá, a formát podle toho, co umí váš cílový systém zpracovat.
| Produkt / název integrace | Doporučený protokol | Doporučený výstupní formát | Obvyklé nastavení |
|---|---|---|---|
| Vlastní HTTP API nebo webhook | HTTP Webhooks | DUMP JSON, DUMP JSON Typed nebo partnerský socketový formát | Použijte cílovou URL s HTTPS, podle potřeby HTTP Basic Authentication nebo OAuth 2.0 a vlastní hlavičky pro klíče API nebo ID tenantů. |
| Vlastní telemetrický kanál přes MQTT | MQTT Client | DUMP JSON, DUMP JSON Typed nebo partnerský socketový formát | Pokud je to možné, použijte MQTT přes TLS, ověřování jménem a heslem, QoS podle požadavků vašeho brokeru a {msgtype} v tématu (topic), pokud chcete zprávy směrovat podle typu. |
| Vlastní kanál přes TCP socket | TCP Socket | DUMP JSON, DUMP JSON Typed nebo partnerský socketový formát | Při přenosu přes veřejné sítě použijte TLS nebo mTLS. Vložená metadata zapněte, jen pokud s obálkou váš přijímač počítá. |
| Vlastní kanál přes UDP socket | UDP Socket | DUMP JSON nebo DUMP JSON Typed nebo partnerský socketový formát | Použijte jen tehdy, když je ztráta paketů přijatelná. Pokud to přijímač podporuje a síťová cesta není důvěryhodná, přidejte šifrování obsahu AES. |
| TAK Server / kanál CoT | TCP Socket | Cursor on Target XML | Pokud nasazení TAK vyžaduje klientské certifikáty, použijte TCP s mTLS. |
| Kanál SAPIENT | TCP Socket | SAPIENT | Nastavte režim protokolu TCP na sapient, podle potřeby nastavte interval stavových zpráv (heartbeat) a pokud přijímající uzel vyžaduje zabezpečení certifikáty, použijte TLS/mTLS. |
| Výstupní formát | HTTP Webhooks | MQTT Client | TCP Socket | UDP Socket | Poznámky |
|---|---|---|---|---|---|
| DUMP JSON | Doporučeno | Doporučeno | Podporováno | Podporováno | Nejlepší výchozí volba pro vlastní integrace. |
| DUMP JSON Typed | Doporučeno | Doporučeno | Podporováno | Podporováno | Stejné jako DUMP JSON, navíc s polem $type v obsahu zprávy. |
| Cursor on Target XML | Možné | Nepodporováno | Doporučeno | Možné | Používají ho systémy kompatibilní s TAK. |
| SAPIENT | Nepodporováno | Nepodporováno | Doporučeno | Nepodporováno | Vyžaduje režim protokolu TCP SAPIENT. |
Některé integrace jsou známější pod názvem produktu nebo ekosystému než pod svým protokolem a formátem:
| Protokol + formát | Produkt / název integrace |
|---|---|
| HTTP Webhooks + DUMP JSON | Vlastní webhook / vlastní integrace API |
| MQTT + DUMP JSON | Vlastní integrace MQTT |
| TCP nebo UDP + Cursor on Target XML | Integrace TAK Server |
| TCP + SAPIENT | Integrace SAPIENT |
Portál integrací používá tyto názvy typů spojení:
| Typ spojení v portálu | Kompatibilní způsoby ověřování | Zabezpečení přenosu a obsahu |
|---|---|---|
| HTTP Webhooks | HTTP Basic Authentication, OAuth 2.0 | Cílová URL s HTTPS |
| MQTT Client | HTTP Basic Authentication | MQTT přes TLS, šifrování dat AES |
| TCP Socket | Žádné | TLS/mTLS, šifrování dat AES |
| UDP Socket | Žádné | Šifrování dat AES |
Pokud váš přijímač ověřování nevyžaduje, můžete ho nechat prázdné. V této tabulce jsou HTTPS, MQTT over TLS a TLS/mTLS možnosti zabezpečení přenosu a AES data encryption je šifrování obsahu zprávy, nikoli způsob přihlášení. Popisek HTTP Basic Authentication se v portálu používá i pro jméno a heslo k MQTT.
Nastavení mTLS portál zobrazuje jen u distribucí typu TCP Socket. Portál přijímá buď samostatné soubory PEM, nebo balíčky PKCS#12 .p12:
.p12 s jedním nebo více certifikáty pro ověření serveru a klientský .p12 s klientským certifikátem a odpovídajícím soukromým klíčem. Každý balíček může mít vlastní volitelné heslo. Portál oba balíčky před použitím v integraci převede do formátu PEM.Zvolený Data Source (zdroj dat) určuje, které zprávy smí cíl distribuce dostávat, ještě před převodem protokolu nebo formátu. Které typy zpráv umí jednotlivé výstupní formáty odeslat, popisuje stránka Pokrytí zpráv.
Portál nabízí také nastavení doručování:
Použijte pro vlastní API, webhooky a většinu integrací s API partnerů.
Obvyklé nastavení:
https://.Použijte, když vaše infrastruktura očekává telemetrii v tématech (topics) MQTT.
Obvyklé nastavení:
tcp nebo websockets podle vašeho brokeru.{msgtype} pro směrování DUMP JSON.0 nebo 1 podle toho, zda je důležitější nízká latence, nebo potvrzení doručení.Použijte pro TAK Server, ATAK, WinTAK, iTAK nebo middleware kompatibilní s TAK.
Obvyklé nastavení:
Použijte jen pro systémy, které SAPIENT výslovně implementují.
Obvyklé nastavení:
sapient.HTTP je nejlepší volba, pokud váš systém poskytuje endpoint API. Dronetag posílá na vaši cílovou URL požadavky POST. URL musí začínat http:// nebo https://.
Nešifrované HTTP používejte jen při vývoji a testování. Pro produkční prostředí důrazně doporučujeme HTTPS.
HTTP může přenášet metadata v hlavičkách, například typ obsahu, typ zprávy, client ID integrace a viditelnost veřejných dat. Pro distribuci můžete nastavit i další vlastní HTTP hlavičky.
HTTP používejte pro formáty API specifické pro partnery, například Altitude Angel, ASTRA, Highlander a podobné integrace.
MQTT je nejlepší volba, pokud váš systém už provozuje broker MQTT a očekává telemetrii v tématech. Dronetag se připojí jako klient MQTT a převedené zprávy publikuje do nastaveného tématu.
MQTT se dobře hodí pro obsah ve formátu JSON. Pokud používáte DUMP JSON, můžete do názvu tématu vložit {msgtype} a směrovat tak telemetrii UA, telemetrii operátora, systémovou telemetrii a změny operací do samostatných témat.
TCP se hodí, když cílový systém očekává trvalé socketové spojení. Je to také doporučený protokol pro SAPIENT a jeden z doporučených protokolů pro TAK Server.
Pro SAPIENT nastavte režim protokolu TCP na sapient. Tím se zapne registrační postup SAPIENT a binární zprávy s délkovou předponou.
TCP může také používat TLS nebo vzájemné TLS (mutual TLS), pokud váš cíl vyžaduje zabezpečení certifikáty.
UDP se hodí pro jednoduché doručování bez potvrzení (fire-and-forget), zejména při integraci se systémy, které už kanály UDP přijímají, například některá nasazení TAK.
Protože UDP nepotvrzuje doručení, použijte TCP nebo HTTP, pokud vaše integrace vyžaduje spolehlivější doručování.
HTTP posílá metadata v hlavičkách požadavku. MQTT, TCP a UDP mohou u formátů, kde je to užitečné, metadata volitelně vkládat do obsahu zprávy.
Vložená metadata obalí obsah zprávy objektem s poli data a metadata. Používejte je jen tehdy, když je váš přijímač napsaný tak, aby tuto obálku zpracoval.
U vlastních integrací začněte takto:
Při konfiguraci distribuce v našem portálu integrací narazíte na pole „data source“ (zdroj dat). Tento článek podrobně vysvětluje, co zdroje dat jsou a jak je ve své integraci využít.
Zdroj dat určuje, které zprávy připadají pro cíl distribuce v úvahu. Zvolený výstupní formát může okruh skutečně odesílaných typů zpráv dále zúžit. Podrobnosti najdete na stránce Pokrytí zpráv.
Požadavky: žádné
Sdílená data: jen data spojená s účtem vlastníka distribuce
Tento zdroj dat má k dispozici každý, kdo používá portál integrací. Je určený hlavně k počátečnímu testování a vyzkoušení. Když ho zvolíte, získáte přístup jen k datům spojeným se stejným účtem, který distribuci vytvořil (vlastník). Viditelná jsou jen zařízení registrovaná k tomuto účtu, takže data ostatních uživatelů zůstávají soukromá a oddělená.
Požadavky: existující skupina zařízení vázaná na objednávku zařízení Dronetag
Sdílená data: všechna data bez ohledu na nastavení soukromí nebo stav registrace
Device Group (skupina zařízení) je určená zákazníkům, kteří s Dronetagem uzavřeli partnerství a zakoupili skupinu zařízení. Tato zařízení jsou zařazena do předem definované statické skupiny, kterou lze zvolit jako zdroj dat. Členství ve skupině je pevné a lze ho změnit jen na požádání. Běžní uživatelé Dronetagu skupiny zařízení nevidí a nemají k nim přístup.
Požadavky: registrace partnerství s Dronetagem
Sdílená data: podle souhlasu uživatelů (opt-in), všechna data bez ohledu na nastavení soukromí
Partnerské integrace (Partner Integration) uživatelé vidí a mají k nim přístup. Plně sami rozhodují, které integrace smějí k jejich datům přistupovat.
Přístup ke svým datům mohou uživatelé každé integraci povolit nebo zakázat v Dronetag App v sekci „Integrations“. Data tak mohou sdílet jen s vybranými integracemi a před ostatními je ponechat soukromá.
Partnerskou integraci lze nastavit tak, aby se uživatele při zapnutí integrace v Dronetag App zeptala na libovolný token, identifikátor nebo autorizační hodnotu. Uživatelé tak mohou zadat přihlašovací údaje nebo identifikátory, které vyžaduje služba třetí strany, a ta pak spolehlivě přiřadí uživatele Dronetagu k vlastním uživatelským účtům nebo autorizačním systémům.
Partnerské integrace zvyšují transparentnost a informovanost uživatelů: uživatelé mohou zůstat v soukromém režimu, a přesto integrace třetích stran využívat. Pro většinu integrací je to doporučený způsob.
Každá partnerská integrace vyžaduje následující údaje, které se pak zobrazují v sekci „Integrations“ v Dronetag App:
Dřívější požadavky: žádné
Sdílená data: všechna veřejná data všech uživatelů Dronetagu (ale ne soukromá data)
Tento zdroj dat dříve umožňoval sdílet všechna veřejná data dostupná v Dronetag App s jakoukoli třetí stranou přes portál integrací.
Kvůli lepší uživatelské zkušenosti a ochraně soukromí byla tato možnost zrušena a už není k dispozici.
Nejběžnější typ distribuce posílá data protokolem HTTP.
Pro každou telemetrickou zprávu se vytvoří nový HTTP požadavek a odešle se na HTTP server vaší služby.
Ve specifické konfiguraci lze zatím nastavit jen další HTTP hlavičky.
| Název | Popis | Platné hodnoty |
|---|---|---|
target_additional_http_headers | Další HTTP hlavičky odesílané s každým požadavkem | objekt JSON |
Následuje příklad konfiguračního JSON, ve kterém se pomocí vlastních hlaviček posílá s každým požadavkem Bearer token.
{
"target_additional_http_headers": {
"X-My-Custom-Id": "12345"
}
}
Pokud vaše služba provozuje server brokeru MQTT, můžete použít typ MQTT Client, který se k vašemu serveru připojí a data na něm publikuje.
| Název | Popis | Platné hodnoty |
|---|---|---|
mqtt_dist_client_id | Client ID pro MQTT | Libovolný řetězec |
mqtt_dist_transport | Typ přenosu použitý pro připojení k serveru | tcp nebo websockets |
mqtt_dist_tls | Zda se má k připojení použít TLS | true nebo false |
mqtt_dist_json_datastream_topic | Téma (topic) pro odesílání telemetrických zpráv | Libovolný řetězec |
mqtt_dist_publish_qos_default | Parametr QoS zpráv odesílaných klientem | Libovolné celé číslo |
embed_metadata | Přidá do obsahu zprávy metadata jako account_visibility nebo integration_client_id | true nebo false |
Následuje příklad konfiguračního JSON.
{
"mqtt_dist_client_id": "dronetag_0001",
"mqtt_dist_transport": "tcp",
"mqtt_dist_tls": false,
"mqtt_dist_json_datastream_topic": "dronetag/telemetry/{msgtype}",
"mqtt_dist_publish_qos_default": 0
}
{msgtype} v názvu tématuPokud používáte formát Dronetag DUMP a chcete posílat různé typy zpráv do různých témat, můžete do názvu tématu vložit zástupný text {msgtype}. Před odesláním se nahradí skutečným typem zprávy. Je-li typem zprávy například „UA telemetry“, z tématu dronetag/telemetry/{msgtype} se stane dronetag/telemetry/tele-ua.
Dostupné typy zpráv:
tele-ua - zprávy s telemetrií UAtele-operator - zprávy s telemetrií operátoratele-system - zprávy se systémovou telemetriíoperation-update - zprávy o změně operaceVíce o typech zpráv najdete na stránce Zprávy DUMP.
Tento typ distribuce posílá data přes obyčejný TCP nebo UDP socket.
| Název | Popis | Platné hodnoty |
|---|---|---|
embed_metadata | Přidá do obsahu zprávy metadata jako account_visibility nebo integration_client_id | true nebo false |
Následuje příklad konfiguračního JSON
{
"embed_metadata": true
}
Data Push používá před odesláním dat do vašeho cíle dva samostatné filtry:
Například cíl se zdrojem dat My account může dostávat jen zprávy, ke kterým má tento účet přístup. Pokud tentýž cíl používá partnerský formát pro polohu UAV, odesílají se jen zprávy o poloze letadla, protože tento formát neumí vyjádřit polohu operátora, systémovou telemetrii ani změny operací.
| Typ dat | DUMP JSON / DUMP JSON Typed | Cursor on Target XML | SAPIENT | Partnerské formáty pro polohu UAV |
|---|---|---|---|---|
| Telemetrie UA | Odesílá se jako tele-ua | Odesílá se jako události CoT letadla | Odesílá se jako detekce SAPIENT | Odesílá se, pokud formát umí zprávu o poloze vyjádřit |
| Telemetrie polohy operátora | Odesílá se jako tele-operator | Odesílá se jako události CoT operátora | Neodesílá se | Neodesílá se |
| Systémová telemetrie | Ve výchozím stavu se odesílá jako tele-system | Odesílá se jako systémové události CoT | Neodesílá se | Neodesílá se |
| Změny operací | Odesílá se jako operation-update | Neodesílá se | Neodesílá se | Neodesílá se |
| Provoz ADS-B, UAT, FLARM a OGN | Neodesílá se | Neodesílá se | Neodesílá se | Neodesílá se |
DUMP JSON a DUMP JSON Typed jsou nejlepší volbou, pokud váš cíl potřebuje úplnou sadu zpráv Data Push.
Systémovou telemetrii lze pro daný cíl vypnout nastavením spojení distribute_system_telemetry.
Po nastavení první distribuce budete nejspíš chtít sledovat, zda funguje správně. Můžete to dělat několika způsoby.
Aktuální stav distribuce zjistíte v portálu integrací, kde ověříte, že je distribuce zapnutá a správně nakonfigurovaná.
Po kliknutí na odkaz View & Edit uvidíte podrobnosti, jako je doba provozu (uptime) a statistiky za posledních 24 hodin. Zobrazí se i malý graf s rychlým přehledem, kolik zpráv touto distribucí za tu dobu prošlo.
Pokud chcete pokročilejší monitorování včetně historických dat a upozornění, můžete napojit Prometheus, který bude z našeho systému sbírat metriky. Tato funkce je dostupná všem uživatelům portálu integrací a poskytuje podrobná data o každé běžící integraci.
K vizualizaci dat doporučujeme Grafanu.

URL vypadá takto:
https://relay.dronetag.app/metrics/[[your_distribution_id]]
Poznamenejte si ID své distribuce.
Prometheus je open-source monitorovací systém, který umí náš export metrik sbírat (scrape). Více informací a návod k instalaci najdete v oficiální dokumentaci Promethea.
Doporučená konfigurace, se kterou můžete začít naše metriky sbírat:
global:
scrape_interval: 10s
scrape_configs:
- job_name: 'dronetag_distribution_metrics'
scrape_interval: 10s
metrics_path: '/metrics/[[your_distribution_id]]'
static_configs:
- targets: ['relay.dronetag.app']
Tato konfigurace sbírá metriky každých 10 sekund z URL https://relay.dronetag.app/metrics/[[your_distribution_id]].
| Název | Popis |
|---|---|
relay_messages_read_total | Celkový počet zpráv přečtených na vstupu |
relay_messages_distributed_total | Celkový počet distribuovaných zpráv. Může být nižší než na vstupu kvůli filtrům nebo neúspěšnému doručení. |
relay_message_conversion_seconds | Průměrná doba převodu zprávy do zvoleného výstupního formátu (v sekundách) |
relay_message_distribution_seconds | Průměrná doba doručení zprávy do vašeho cíle (v sekundách), z velké části odpovídá latenci serveru. |
Grafana je open-source nástroj pro monitorování a analýzu dat, který umí Prometheus používat jako zdroj dat.
Jak Grafanu nainstalovat a nastavit v ní Prometheus jako zdroj dat, popisuje návod 'Get started with Grafana and Prometheus'.
Připravili jsme jednoduchý ukázkový dashboard pro Grafanu. Soubor JSON můžete importovat do své instance Grafany a upravit podle svých potřeb.
{ "annotations": { "list": [ { "builtIn": 1, "datasource": { "type": "grafana", "uid": "-- Grafana --" }, "enable": true, "hide": true, "iconColor": "rgba(0, 211, 255, 1)", "name": "Annotations & Alerts", "target": { "limit": 100, "matchAny": false, "tags": [], "type": "dashboard" }, "type": "dashboard" } ] }, "editable": true, "fiscalYearStartMonth": 0, "graphTooltip": 0, "id": 47, "links": [ { "asDropdown": false, "icon": "cloud", "includeVars": false, "keepTime": false, "tags": [], "targetBlank": false, "title": "Dronetag Integration Portal", "tooltip": "", "type": "link", "url": "https://integrations.dronetag.app" } ], "liveNow": false, "panels": [ { "datasource": { "type": "prometheus", "uid": "aRT0ZzYnk" }, "fieldConfig": { "defaults": { "color": { "mode": "thresholds" }, "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "dark-purple", "value": null } ] }, "unit": "string" }, "overrides": [] }, "gridPos": { "h": 3, "w": 16, "x": 0, "y": 0 }, "id": 3, "options": { "colorMode": "value", "graphMode": "none", "justifyMode": "auto", "orientation": "horizontal", "reduceOptions": { "calcs": [ "lastNotNull" ], "fields": "/^relay_distribution_name$/", "values": false }, "text": { "valueSize": 40 }, "textMode": "value" }, "pluginVersion": "10.1.1", "targets": [ { "datasource": { "type": "prometheus", "uid": "aRT0ZzYnk" }, "editorMode": "code", "expr": "relay_messages_read_created{distribution_id=\"$distribution_id\"}", "format": "table", "instant": false, "legendFormat": "__auto", "range": true, "refId": "A" } ], "transformations": [], "type": "stat" }, { "datasource": { "type": "prometheus", "uid": "aRT0ZzYnk" }, "fieldConfig": { "defaults": { "color": { "mode": "thresholds" }, "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "dark-blue", "value": 80 } ] }, "unit": "dateTimeFromNow" }, "overrides": [] }, "gridPos": { "h": 3, "w": 8, "x": 16, "y": 0 }, "id": 2, "options": { "colorMode": "value", "graphMode": "none", "justifyMode": "center", "orientation": "horizontal", "reduceOptions": { "calcs": [ "lastNotNull" ], "fields": "/^Created$/", "values": false }, "textMode": "value_and_name" }, "pluginVersion": "10.1.1", "targets": [ { "datasource": { "type": "prometheus", "uid": "aRT0ZzYnk" }, "editorMode": "code", "expr": "relay_messages_read_created{distribution_id=\"$distribution_id\"}", "format": "time_series", "instant": false, "legendFormat": "Created at", "range": true, "refId": "A" } ], "transformations": [ { "id": "calculateField", "options": { "alias": "Created", "binary": { "left": "Created at", "operator": "*", "reducer": "sum", "right": "1000" }, "mode": "binary", "reduce": { "reducer": "sum" }, "replaceFields": true } } ], "type": "stat" }, { "datasource": { "type": "prometheus", "uid": "aRT0ZzYnk" }, "description": "Average rates of sent (distributed) messages. Dotted line shows source input rate, which can be higher if there are filters applied (such as filter to specific device group).", "fieldConfig": { "defaults": { "color": { "mode": "palette-classic" }, "custom": { "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, "drawStyle": "bars", "fillOpacity": 100, "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 0, "pointSize": 5, "scaleDistribution": { "type": "linear" }, "showPoints": "never", "spanNulls": false, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { "mode": "off" } }, "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "green", "value": null }, { "color": "red", "value": 80 } ] }, "unit": "mps" }, "overrides": [ { "matcher": { "id": "byName", "options": "Input rate" }, "properties": [ { "id": "custom.lineWidth", "value": 1 }, { "id": "custom.lineStyle", "value": { "dash": [ 2, 6 ], "fill": "dot" } }, { "id": "color", "value": { "mode": "fixed" } }, { "id": "custom.drawStyle", "value": "line" }, { "id": "custom.fillOpacity", "value": 0 } ] } ] }, "gridPos": { "h": 8, "w": 24, "x": 0, "y": 3 }, "id": 1, "interval": "15s", "maxDataPoints": 128, "options": { "legend": { "calcs": [], "displayMode": "list", "placement": "bottom", "showLegend": true }, "tooltip": { "mode": "single", "sort": "none" } }, "targets": [ { "datasource": { "type": "prometheus", "uid": "aRT0ZzYnk" }, "editorMode": "code", "expr": "sum(rate(relay_messages_distributed_total{distribution_id=\"$distribution_id\"}[$__rate_interval])) by (distribution_id)", "instant": false, "legendFormat": "Distributed rate", "range": true, "refId": "A" }, { "datasource": { "type": "prometheus", "uid": "aRT0ZzYnk" }, "editorMode": "code", "expr": "sum(rate(relay_messages_read_total{distribution_id=\"$distribution_id\"}[$__rate_interval])) by (distribution_id)", "hide": false, "instant": false, "legendFormat": "Input rate", "range": true, "refId": "B" } ], "title": "Average distribution rate", "type": "timeseries" }, { "datasource": { "type": "prometheus", "uid": "aRT0ZzYnk" }, "description": "The duration of how long it takes to convert the source input data to the output format. Includes filtering or other data pre-processing.", "fieldConfig": { "defaults": { "color": { "mode": "fixed", "seriesBy": "last" }, "custom": { "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, "scaleDistribution": { "type": "linear" }, "showPoints": "auto", "spanNulls": false, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { "mode": "line" } }, "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "blue", "value": null } ] }, "unit": "s" }, "overrides": [] }, "gridPos": { "h": 8, "w": 12, "x": 0, "y": 11 }, "id": 4, "interval": "15s", "options": { "legend": { "calcs": [], "displayMode": "list", "placement": "bottom", "showLegend": true }, "tooltip": { "mode": "single", "sort": "none" } }, "targets": [ { "datasource": { "type": "prometheus", "uid": "aRT0ZzYnk" }, "editorMode": "code", "expr": "sum(rate(relay_message_conversion_seconds_sum{distribution_id=\"$distribution_id\"}[$__rate_interval]) / rate(relay_message_conversion_seconds_count{distribution_id=\"$distribution_id\"}[$__rate_interval])) by (distribution_id)", "instant": false, "legendFormat": "__auto", "range": true, "refId": "A" } ], "title": "Average conversion duration", "type": "timeseries" }, { "datasource": { "type": "prometheus", "uid": "aRT0ZzYnk" }, "description": "The duration of how long it takes to distribute the data. The largest part is usually the server latency. Some distribution types can be missing a support for this metric.", "fieldConfig": { "defaults": { "color": { "mode": "thresholds", "seriesBy": "max" }, "custom": { "axisCenteredZero": false, "axisColorMode": "text", "axisLabel": "", "axisPlacement": "auto", "barAlignment": 0, "drawStyle": "line", "fillOpacity": 0, "gradientMode": "none", "hideFrom": { "legend": false, "tooltip": false, "viz": false }, "insertNulls": false, "lineInterpolation": "linear", "lineWidth": 1, "pointSize": 5, "scaleDistribution": { "type": "linear" }, "showPoints": "auto", "spanNulls": false, "stacking": { "group": "A", "mode": "none" }, "thresholdsStyle": { "mode": "dashed" } }, "mappings": [], "thresholds": { "mode": "absolute", "steps": [ { "color": "blue", "value": null }, { "color": "dark-orange", "value": 0.7 }, { "color": "semi-dark-red", "value": 1 } ] }, "unit": "s" }, "overrides": [] }, "gridPos": { "h": 8, "w": 12, "x": 12, "y": 11 }, "id": 5, "interval": "15s", "options": { "legend": { "calcs": [], "displayMode": "list", "placement": "bottom", "showLegend": true }, "tooltip": { "mode": "single", "sort": "none" } }, "targets": [ { "datasource": { "type": "prometheus", "uid": "aRT0ZzYnk" }, "editorMode": "code", "expr": "sum(rate(relay_message_distribution_seconds_sum{distribution_id=\"$distribution_id\"}[$__rate_interval]) / rate(relay_message_distribution_seconds_count{distribution_id=\"$distribution_id\"}[$__rate_interval])) by (distribution_id)", "instant": false, "legendFormat": "__auto", "range": true, "refId": "A" } ], "title": "Average distribute duration", "type": "timeseries" } ], "refresh": "", "schemaVersion": 38, "style": "dark", "tags": [ "dronetag" ], "templating": { "list": [ { "current": { "selected": false, "text": "cc2129b7-30e4-469e-8b13-92e7e097d528", "value": "cc2129b7-30e4-469e-8b13-92e7e097d528" }, "datasource": { "type": "prometheus", "uid": "aRT0ZzYnk" }, "definition": "label_values(relay_messages_read_total,distribution_id)", "hide": 0, "includeAll": false, "label": "Distribution ID", "multi": false, "name": "distribution_id", "options": [], "query": { "query": "label_values(relay_messages_read_total,distribution_id)", "refId": "PrometheusVariableQueryEditor-VariableQuery" }, "refresh": 1, "regex": "", "skipUrlSync": false, "sort": 0, "type": "query" } ] }, "time": { "from": "now-1h", "to": "now" }, "timepicker": { "nowDelay": "", "refresh_intervals": [ "5s", "10s", "30s", "1m", "5m" ] }, "timezone": "", "title": "Dronetag Single Distribution Monitoring", "uid": "f2370455-bdac-4098-baf5-ea8857bc199d", "version": 5, "weekStart": "" }
Pokud máte potíže s integrací Data Push nebo s nastavením distribuce, pomůže vám tento návod najít a vyřešit nejčastější problémy.
Pokud je distribuce nastavená, ale žádná data se neposílají, zkuste tento postup:
Pokud data přicházejí se zpožděním nebo s vysokou latencí, příčinou může být:
Pokud distribuce selhává kvůli chybám ověřování:
Pokud se zprávy nedaří doručit nebo je počet distribuovaných zpráv nižší než počet zpráv na vstupu:
Pokud metriky sbíráte Prometheem, ale nevidíte žádná data:
https://relay.dronetag.app/metrics/[[your_distribution_id]].prometheus.yml a ověřte, že je cesta k metrikám správná a že Prometheus sbírá data ve správném intervalu.Pokud tyto kroky problém nevyřeší, obraťte se na naši podporu. Přiložte všechny užitečné podrobnosti, například chybové logy nebo snímky obrazovky, abychom mohli problém rychle diagnostikovat.
Každá kapitola tohoto dokumentu je stránkou nápovědy Dronetag. Na těchto adresách najdete vždy aktuální verzi.