Data

πŸ“Š NEW πŸ“Š To access FLOTO data, you can now log into the portal to download Netrics data from the new “Data” tab.

(πŸ™‹β€β™‚οΈ Need help creating an account? Follow these steps here.)

We update this archive with new files daily from the FLOTO deployment. Read more below to learn about the data structure and format.

About the Data

We provide access to the datasets collected on the FLOTO infrastructure. Currently, all data is generated from deployments of the Netrics measurement library. These datasets consist of Internet performance measurements collected from FLOTO devices deployed in residential buildings in cities and towns across the United States, including Chicago, IL, Milwaukee, WI, and San Rafael, CA.

Data Directory Structure

The archive organizes data files based on the device UUIDs, measurement dates, and the types of measurements conducted. This hierarchical structure ensures a systematic and intuitive retrieval process for specific datasets, facilitating easier management and analysis.

Top-level Directory: Device UUIDs

Each device is represented by a directory at the top level of the archive. The directory name consists of the first 7 characters of the device’s UUID, ensuring a unique identifier for each device’s data repository.

Second-level Directory: Date

Within a device’s directory, data is further organized by date. Each date for which measurements are available is represented as a separate directory, named in the format YYYYMMDD (e.g., 20240313). This organization allows for easy access to data from specific dates.

Third-level Directory: JSON Data Files

Inside the date directory, there is a json directory that contains all the JSON files generated from measurements run on the device for that specific date. This separation emphasizes the data’s format and the consistency of storage for all measurement types.

Example File Path

[Device UUID]/[Date]/json/[Measurement Data Files]

For a device with a UUID beginning with 013ad10c, and measurements taken on March 13, 2024, the path would be:

013ad10c/20240313/json/

Inside this `json` directory, you would find all the measurements (e.g., ping.json, speed-ookla.json) conducted on that device for the specified date.

Diagram of the Archive Structure

The following diagram illustrates the archive’s file structure, showcasing the hierarchical organization from device UUIDs down to the measurement data files.

Archive
β”‚
└───[Device UUID - First 7 characters]
β”‚   β”‚
β”‚   └───[YYYYMMDD - Date]
β”‚       β”‚
β”‚       └───json
β”‚           β”‚   result-[unique_identifier]-[date]-[measurement_type].json
β”‚           β”‚   ...
β”‚   
└───[Another Device UUID]
    β”‚
    └───[YYYYMMDD - Date]
        β”‚
        └───json
            β”‚   result-[unique_identifier]-[date]-[measurement_type].json
            β”‚   ...

Data Files

This section explains how data is organized and stored in the archive.

Data File Naming Convention

The naming convention for the data files follows a consistent pattern that includes several key components:

  • result: Indicates the type of data or the fact that these files contain results from specific measurements or tests.
  • A unique identifier: A sequence of numbers that uniquely identifies each file (e.g., 1710891545, 1710891546, etc.).
  • The date and time of the file creation: Presented in the format YYYYMMDDTHHMMSS (e.g., 20240319T233905), which represents the year, month, day, time, and seconds.
  • The type of test or measurement: Describes the type of data contained within the file (e.g., lml, ping, ip, dns-latency, hops, speed-ndt7, speed-ookla).

For example, the file result-1710891545-20240319T233905-lml.json indicates a result file, with a unique identifier of 1710891545, created on March 19, 2024, at 23:39:05, containing data from a last-mile latency (lml) measurement.

JSON Structure

The JSON structure within these files is organized into two main sections: Measurements and Meta.

Measurements Section

This section contains the actual data collected from various tests or measurements. The structure within this section varies depending on the type of measurement, but generally includes nested objects with measurement-specific fields. For example:

  • For latency measurements, fields may include average, minimum, maximum latency, and packet loss percentage.
  • For speed tests, fields may include download and upload speeds, latency, jitter, packet loss, and the server used for the test.

Meta Section

This section provides metadata related to the data file, including:

  • Id: A unique identifier for the test session or measurement batch (e.g., `nm-mngd-20240319-6edb378f`).
  • Time: A Unix timestamp indicating when the measurement was taken.

Example JSON Structure for a hops.json File

{
  "Measurements": {
    "hops_to_target": {
      "hops_to_google": 64
    }
  },
  "Meta": {
    "Id": "nm-mngd-20240319-6edb378f",
    "Time": 1710891755.2781148
  }
}

To learn more, please contact us through our contact form or through email at contact@floto.science.

If you would like to access historical Internet performance data from previous deployments of the Netrics application, visit the Netrics GitHub data repository here.