@Override
  public void readFrom(StreamInput in) throws IOException {
    counts = Counts.readCounts(in);

    int size = in.readVInt();
    versions = new HashSet<Version>(size);
    for (; size > 0; size--) {
      versions.add(Version.readVersion(in));
    }

    os = OsStats.readOsStats(in);
    process = ProcessStats.readStats(in);
    jvm = JvmStats.readJvmStats(in);
    fs = FsStats.Info.readInfoFrom(in);

    size = in.readVInt();
    plugins = new HashSet<PluginInfo>(size);
    for (; size > 0; size--) {
      plugins.add(PluginInfo.readPluginInfo(in));
    }
  }