GorillaStream.Performance.RealisticData (gorilla_stream v3.0.3)

Copy Markdown View Source

Utilities for generating realistic time-series data for tests and benchmarks.

Provides multiple domain-inspired profiles with configurable timestamp interval, base timestamp, noise, and deterministic seeding.

Returned data shape: list of {timestamp :: integer, value :: float}.

Summary

Functions

Generate count points of realistic data for a given profile.

Types

options()

@type options() :: [
  interval: pos_integer(),
  base_timestamp: integer(),
  seed: {non_neg_integer(), non_neg_integer(), non_neg_integer()},
  noise: number()
]

profile()

@type profile() ::
  :temperature
  | :industrial_sensor
  | :server_metrics
  | :stock_prices
  | :vibration
  | :mixed_patterns

Functions

generate(count, profile \\ :temperature, opts \\ [])

@spec generate(non_neg_integer(), profile(), options()) :: [{integer(), float()}]

Generate count points of realistic data for a given profile.

Options:

  • :interval seconds between points (default: 60)
  • :base_timestamp Unix epoch seconds for first point (default: 1_609_459_200 ~ 2020-12-31)
  • :seed set PRNG seed for deterministic output (default: none)
  • :noise base noise magnitude multiplier (profile-specific default)