$schema: https://json-schema.org/draft/2020-12/schema
title: CarlOS telemetry
description: Telemetry configuration description for CarlOS routers
type: object
properties:
  modem-signal:
    description: Modem signal levels
    $ref: "#/definitions/source"
  modem-connection:
    description: Modem connection state
    $ref: "#/definitions/eventingSource"
  modem-info:
    description: Modem hardware information
    $ref: "#/definitions/eventingSource"
  modem-sim:
    description: Modem SIM state
    $ref: "#/definitions/eventingSource"
  gps-location:
    description: GPS location data
    $ref: "#/definitions/source"
  gps-velocity:
    description: GPS velocity data
    $ref: "#/definitions/source"
  gps-satellites:
    description: List of GPS satellites in view
    $ref: "#/definitions/source"
  wifi-ap-stations:
    description: WiFi AP mode station associations
    $ref: "#/definitions/source"
  wifi-cli-connection:
    description: WiFi client mode connection info
    $ref: "#/definitions/source"
  wifi-mesh-peers:
    description: WiFi mesh mode connection info
    $ref: "#/definitions/source"
  wifi-probes:
    description: Collected WiFi probe request packets
    $ref: "#/definitions/source"
  voltage:
    description: Voltage measurement
    $ref: "#/definitions/source"
  temperature:
    description: Temperature measurement
    $ref: "#/definitions/eventingSource"
  fan:
    description: Fan speed measurement
    $ref: "#/definitions/eventingSource"
  cpu-usage:
    description: CPU usage measurement
    $ref: "#/definitions/source"
  disk-usage:
    description: Disk storage partition usage information
    $ref: "#/definitions/eventingSource"
  disk-info:
    description: Disk static hardware information
    $ref: "#/definitions/eventingSource"
  disk-health:
    description: Disk health information
    $ref: "#/definitions/eventingSource"
  mac-addr:
    description: MAC addresses of physical interfaces
    $ref: "#/definitions/eventingSource"
  mem-usage:
    description: System memory usage measurement
    $ref: "#/definitions/source"
  network-tests:
    description: Network test results
    $ref: "#/definitions/source"
  service-check:
    description: External Service Monitoring result
    $ref: "#/definitions/eventingSource"
  service-check-groups:
    description: Service check group states with assertions
    $ref: "#/definitions/eventingOnlySource"
  os-version:
    description: Operating System version information
    $ref: "#/definitions/eventingSource"
  hostname:
    description: Hostname information
    $ref: "#/definitions/eventingSource"
  hw-info:
    description: Extra hardware information
    $ref: "#/definitions/eventingSource"
  ip-addr:
    description: Layer 3 IP addresses of interfaces
    $ref: "#/definitions/eventingSource"
  link-stats:
    description: Link usage statistics
    $ref: "#/definitions/source"
  link-state:
    description: Physical link state information
    $ref: "#/definitions/eventingSource"
  vpn-stats:
    description: Multipath VPN tunnel statistics
    $ref: "#/definitions/source"
  vpn-state:
    description: Multipath VPN tunnel state, load per uplink
    $ref: "#/definitions/source"
  vpn-tunnel:
    description: Multipath VPN tunnel, statistics per uplink
    $ref: "#/definitions/source"
  vpn-events:
    description: Multipath VPN tunnel and uplink events
    $ref: "#/definitions/eventingOnlySource"
  can-data:
    description: Recorded CAN bus frames
    $ref: "#/definitions/source"
  can-fms-data:
    description: Vehicle FMS CAN bus information
    $ref: "#/definitions/source"
  neigh-addr:
    description: Neighbour/ARP entries per interface
    $ref: "#/definitions/eventingSource"
  geofencing:
    description: Geofencing active zones
    $ref: "#/definitions/eventingSource"
  dhcp-leases:
    description: DHCP server leases
    $ref: "#/definitions/eventingOnlySource"
additionalProperties: false
definitions:
  eventingOnlySource:
    type: object
    properties:
      cache:
        description: Number of measurements to cache in memory
        type: integer
        minimum: 0
        default: 0
    additionalProperties: false
  eventingSource:
    type: object
    properties:
      cache:
        description: Number of measurements to cache in memory
        type: integer
        minimum: 0
        default: 0
      interval:
        description: |
          Measurement interval in milliseconds, 0 for event based measurements
        type: integer
        minimum: 0
        default: 0
    additionalProperties: false
  source:
    type: object
    properties:
      cache:
        description: Number of measurements to cache in memory
        type: integer
        minimum: 0
        default: 0
      interval:
        description: Measurement interval, in milliseconds
        type: integer
        minimum: 1
    required:
      - interval
    additionalProperties: false
