InfluxElixir.Write.Point (InfluxElixir v0.1.12)

Copy Markdown View Source

Point struct representing a single InfluxDB data point.

Contains measurement name, tags, fields, and optional timestamp.

Fields

  • :measurement - measurement name (required, string)
  • :tags - tag key-value pairs (optional, %{String.t() => String.t()})
  • :fields - field key-value pairs (required, at least one)
  • :timestamp - point timestamp (optional, server assigns if nil)

Summary

Functions

Creates a new Point struct.

Types

field_value()

@type field_value() :: integer() | float() | String.t() | boolean()

t()

@type t() :: %InfluxElixir.Write.Point{
  fields: %{required(String.t()) => field_value()},
  measurement: String.t(),
  tags: %{required(String.t()) => String.t()},
  timestamp: DateTime.t() | integer() | nil
}

Functions

new(measurement, fields, opts \\ [])

@spec new(String.t(), %{required(String.t()) => field_value()}, keyword()) :: t()

Creates a new Point struct.

Parameters

  • measurement - measurement name (string)
  • fields - field key-value pairs (map)
  • opts - optional keyword list:
    • :tags - tag key-value pairs (default: %{})
    • :timestamp - point timestamp (default: nil)

Examples

iex> InfluxElixir.Write.Point.new("cpu", %{"value" => 0.64})
%InfluxElixir.Write.Point{
  measurement: "cpu",
  fields: %{"value" => 0.64},
  tags: %{},
  timestamp: nil
}

iex> InfluxElixir.Write.Point.new("cpu", %{"value" => 0.64},
...>   tags: %{"host" => "server01"},
...>   timestamp: 1_630_424_257_000_000_000
...> )
%InfluxElixir.Write.Point{
  measurement: "cpu",
  fields: %{"value" => 0.64},
  tags: %{"host" => "server01"},
  timestamp: 1_630_424_257_000_000_000
}