-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
Also, with some of the fuzzers available, you can actually generate structs and specify the nil chance like https://github.com/google/gofuzz
Unfortunately I don't know of any tools that can/do always detect it. There's this discussion for the staticcheck linter where they basically don't think it's worth false positives in order to support it a lint for it.
I personally always make sure that, if I have a function that creates the struct, I define all of the fields. When I don't a) have control over that or b) have a function to init the struct, I typically end up using a new package called truthy that is built on generics and tells me the truthy value of the variable, kind of like Boolean(value) in javascript.