Skip to main content

Insights v1.2.1

A small maintenance release. Most of it fixes the geographic map when GeoIP enrichment is on: connections that were never located, stale locations that never refreshed, private addresses drawn as a real place, and a legend that gave no hint a map was incomplete. It also fixes trial builds that never sent their telemetry pulse.

Improvements​

  • IP locations refresh on a schedule: A stored location used to be kept forever, although what a provider knows about an address changes. The indexer now looks every observed IP up again once per refresh interval, set with indexer.ip.refresh-interval (default 168h). Intervals align to a fixed origin on a Monday at 00:00 UTC, so the default refreshes every Monday at 00:00 UTC and 24h refreshes every midnight UTC; other values align to that origin rather than to calendar units (720h is not monthly). Every due address refreshes at the same boundary, so lookups go out in full provider batches.

    indexer:
    ip:
    provider: ipapi
    api-key: "your-key"
    refresh-interval: 24h
  • The map says when it shows only part of the fleet: The legend counted only the entities it could place, so a map missing most of its clients read as a small deployment, and a fleet on private addresses drew an empty map with no explanation. When less than half of the servers, leaf nodes or clients are on the map, a note now states the share that is placed and why the rest are not: public addresses not located yet, or no public IP address to locate.

  • Private and reserved addresses are no longer sent to the provider: Private, loopback, link-local, unspecified, carrier-grade NAT, documentation and benchmarking addresses, and hostnames, are skipped before lookup. They have no public location, so each lookup only spent a provider request.

Fixes​

  • Connections missing from the map after enabling GeoIP: An IP was queued for lookup only when Insights first recorded the connection, so connections already known when geolocation was switched on were never located. Every server, connection, leaf node, route and gateway IP observed in an epoch is now looked up if it has no stored location.

  • Entities drawn at the same point on the map: When the provider answered a private or reserved address with no coordinates, Insights stored them as latitude 0, longitude 0 and drew the entity there. On a private-network fleet that put every entity in the same spot. Unlocatable addresses are no longer stored or drawn, and existing rows at 0,0 are removed on upgrade.

  • Trial builds sent no telemetry: A trial install identified itself by a license field that issued licenses generally leave empty, so the pulse was never sent. It now uses the license's subject, which is always set.

Considerations​

  • Trial builds start sending telemetry: Only trial builds contain the reporter. After upgrading, a trial install sends the pulse described in docs/config.example.yaml under telemetry:, which it did not send before. Set telemetry.enabled: false to switch it off, or telemetry.print: true to log each pulse and read exactly what leaves the process.

  • Automatic migration: On first start the database gains a column recording when each IP was last looked up, and stored locations at exactly 0,0 are deleted. Both run without intervention.

  • More GeoIP lookups right after upgrade: Locations stored before this release have no lookup time, so every live IP is looked up again as epochs observe it, alongside the connections that were never located. Expect a burst of provider requests on the first epochs after upgrade, then one batch per refresh interval.