Skip to content

1. Telemetry Upload (Partition by Device)

json
{
  "connection": {
    "bootstrapServers": "kafka-1:9092,kafka-2:9092",
    "security": { "protocol": "plaintext" }
  },
  "uplink": {
    "enabled": true,
    "producer": {
      "enableIdempotence": true,
      "acks": "all",
      "compression": "lz4",
      "lingerMs": 5,
      "batchNumMessages": 1000,
      "batchSizeBytes": 131072,
      "messageTimeoutMs": 30000,
      "requestTimeoutMs": 10000,
      "maxInflight": 5
    },
    "telemetry": {
      "enabled": true,
      "topic": "ng.uplink.telemetry",
      "key": "{{device_id}}",
      "payload": { "mode": "envelope_json" }
    }
  },
  "downlink": { "enabled": false }
}

2. Write to Data Lake Partitioned by Time (Topic + UTC Partition)

json
{
  "uplink": {
    "telemetry": {
      "enabled": true,
      "topic": "lake.{{yyyy}}.{{MM}}.{{dd}}.{{HH}}.telemetry",
      "key": "{{device_id}}",
      "payload": { "mode": "timeseries_rows", "includeMeta": true }
    }
  }
}

Variable table see: Template Variable Table


json
{
  "downlink": {
    "enabled": true,
    "writePoint": {
      "enabled": true,
      "topic": "ng.downlink",
      "payload": { "mode": "envelope_json" },
      "ackPolicy": "on_success",
      "failurePolicy": "drop"
    }
  }
}

Downlink protocol see: Downlink EnvelopeJson

Released under the Apache License 2.0.