pharos/measurement

Decoded measurement values.

telemetry_poller and pharos’s custom emitters dispatch raw telemetry events; decode/2 lifts them into typed Measurement records. Memory values arrive in bytes and are scaled to the configured MemoryUnit.

Types

pub type BeamMemoryStats {
  BeamMemoryStats(
    unit: MemoryUnit,
    total: Float,
    processes: Float,
    processes_used: Float,
    system: Float,
    atom: Float,
    atom_used: Float,
    binary: Float,
    code: Float,
    ets: Float,
  )
}

Constructors

  • BeamMemoryStats(
      unit: MemoryUnit,
      total: Float,
      processes: Float,
      processes_used: Float,
      system: Float,
      atom: Float,
      atom_used: Float,
      binary: Float,
      code: Float,
      ets: Float,
    )
pub type ClusterNodeStats {
  ClusterNodeStats(self: String, nodes: List(String))
}

Constructors

  • ClusterNodeStats(self: String, nodes: List(String))
pub type HostDiskStats {
  HostDiskStats(
    status: HostProbeStatus,
    unit: MemoryUnit,
    total: Float,
    used: Float,
    available: Float,
  )
}

Constructors

pub type HostMemoryStats {
  HostMemoryStats(
    status: HostProbeStatus,
    unit: MemoryUnit,
    total: Float,
    used: Float,
    available: Float,
  )
}

Constructors

Status of a scaffolded host probe: Implemented once a real probe lands, Unimplemented while the host module is a placeholder.

pub type HostProbeStatus {
  Implemented
  Unimplemented
}

Constructors

  • Implemented
  • Unimplemented
pub type Measurement {
  BeamMemory(BeamMemoryStats)
  BeamRunQueues(RunQueueStats)
  BeamSystemCounts(SystemCountStats)
  BeamPersistentTerm(PersistentTermStats)
  ProcessInfo(ProcessInfoStats)
  ClusterNodes(ClusterNodeStats)
  HostMemory(HostMemoryStats)
  HostDisk(HostDiskStats)
}

Constructors

Unit to express BEAM memory values in. Raw erlang:memory/0 returns bytes; decode_with_unit/2 scales them to the requested unit.

pub type MemoryUnit {
  Kb
  Mb
  Gb
}

Constructors

  • Kb
  • Mb
  • Gb
pub type PersistentTermStats {
  PersistentTermStats(
    count: Int,
    unit: MemoryUnit,
    memory: Float,
  )
}

Constructors

  • PersistentTermStats(count: Int, unit: MemoryUnit, memory: Float)
pub type ProcessInfoStats {
  ProcessInfoStats(
    name: atom.Atom,
    info: dict.Dict(atom.Atom, dynamic.Dynamic),
  )
}

Constructors

pub type RunQueueStats {
  RunQueueStats(total: Int, cpu: Int, io: Int)
}

Constructors

  • RunQueueStats(total: Int, cpu: Int, io: Int)
pub type SystemCountStats {
  SystemCountStats(
    process_count: Int,
    atom_count: Int,
    port_count: Int,
    process_limit: Int,
    atom_limit: Int,
    port_limit: Int,
  )
}

Constructors

  • SystemCountStats(
      process_count: Int,
      atom_count: Int,
      port_count: Int,
      process_limit: Int,
      atom_limit: Int,
      port_limit: Int,
    )

A telemetry event as dispatched by telemetry:execute/3.

pub type TelemetryEvent {
  TelemetryEvent(
    name: List(atom.Atom),
    measurements: dict.Dict(atom.Atom, dynamic.Dynamic),
    metadata: dict.Dict(atom.Atom, dynamic.Dynamic),
  )
}

Constructors

Values

pub fn decode(
  event: TelemetryEvent,
) -> Result(Measurement, String)

Decode a TelemetryEvent into a typed Measurement, scaling any memory values to Mb by default.

pub fn decode_with_unit(
  event: TelemetryEvent,
  unit: MemoryUnit,
) -> Result(Measurement, String)

Decode a TelemetryEvent into a typed Measurement, scaling any memory values to unit.

Search Document