If security is your most important concern, you should ABSOLUTELY use a separate index per boat and have individual users only have access to their boat. The administrative user can have access to all indexes and hence can report across all boats at the same time, for example:
index=boat* | stats ... by index
You do not need a separate dashboard per boat. Each user's dashboard will only reference the data in the index they have access to. It is very, very important here to NOT schedule the search for the dashboard. Shared scheduled searches (for dashboards) will run as the owner, but the results will be available to all users with access. In this case, if the administrative user shares the scheduled search, all users will see data about all boats.
For bursty and sparse data, the biggest challenge is that a simple timechart . If you know when the bursts of data start, you can use a time-based lookup table to assign a run id (and perhaps start time to data in each burst. This can be done after the fact. Then you can make it easier to retrieve and summarize each batch of data.
... View more