Skip to content

Releases: mneudert/instream

v0.19.0

24 Jan 19:04
eb53dcd
Compare
Choose a tag to compare
  • Enhancements

    • Connections can be declared with compile time configuration defaults that are later overwritten by the application environment
    • The library used for JSON decoding can be changed by using the :json_decoder configuration
  • Soft deprecations (no warnings)

    • All "administrative query modules" have been removed from the documentation. They will eventually be removed completely after a proper deprecation phase
    • Support for {:system, "ENV_VARIABLE"} configuration has been removed from the documentation. It will eventually be removed completely after a proper deprecation phase
  • Backwards incompatible changes

    • Default configuration has been extended with host: "localhost"
    • Minimum required elixir version is now ~> 1.5
    • Missing application configuration will no longer raise during compilation
    • Public access to the internal pool module name has been removed

v0.18.0

11 Aug 13:25
dbb7d67
Compare
Choose a tag to compare
  • Enhancements

    • Configuration can be done on connection (re-) start by setting a {mod, fun} tuple for the config key :init. This method will be called with the connection module name as the first (and only) parameter and is expected to return :ok
    • Experimental support to convert plain maps or query results into series structs has been added
    • Passwords are automatically redacted from logged queries when using the default logger
    • Supporting rules for the elixir formatter are available
  • Bug fixes

    • Special characters in url parameter values (like & or ? in a query) are now properly escaped (#43)
  • Backwards incompatible changes

    • Quoting of identifiers/values has been extracted to the package influxql (hex)

v0.17.1

16 Dec 13:14
34a4e6f
Compare
Choose a tag to compare
  • Enhancements
    • Support for Elixir 1.5 style child_spec has been added (#39)

v0.17.0

10 Dec 13:57
2690829
Compare
Choose a tag to compare
  • Backwards incompatible changes
    • Minimum required elixir version is now ~> 1.3

v0.16.0

25 Sep 18:23
383ce1e
Compare
Choose a tag to compare
  • Enhancements

    • Queries can be executed with an additional option :pool_timeout used to wait for an available worker process. This option is independent of other configured/passed timeouts
    • System environment configuration can set an optional default value to be used if the environment variable is unset
  • Bug fixes

    • All queries now use a GenServer.call/3 timeout of :infinity. This allows raising the timeouts for a call above the default of 5_000 (#38)

v0.15.0

16 Mar 18:27
55289e9
Compare
Choose a tag to compare
  • Enhancements

    • Every connection method (like read or write) can set per-call http_opts passed on to the hackney client
    • Querying for data can now return an {:error, term} style tuple if the communication with the server failed. For example {:error, :nxdomain} if the host that is queried cannot be resolved by hackney (#33)
    • The line writer now accepts a retention policy used for writing (#34)
    • The line writer will now return an {:error, term} style tuple if a problem occurs. For example {:error, :nxdomain} if the host that should receive data cannot be resolved by hackney (#33)
    • Timeouts occurring when executing a query are now returned as {:error, :timeout} instead of raising (#33)
  • Backwards incompatible changes

    • Series definitions raise upon compilation if the contain a tag and a field with the same name. This is done to prevent the InfluxDB behavior of adding _1 to such fields when storing them

v0.14.0

18 Dec 11:41
423586b
Compare
Choose a tag to compare
  • Enhancements

    • Connections can be configured with a default database used when no value is found in method call or series definition
    • Fields and tags with the name :time will raise after compilation. They are unqueryable and will be dropped by InfluxDB v1.1.0 when trying to write them.
    • Queries can return CSV formatted responses from the server when running InfluxDB >= 1.1.0
    • Series definitions are now automatically associated with typespecs
  • Backwards incompatible changes

    • Minimum required elixir version is now ~> 1.2
    • Minimum required erlang version is now ~> 18.0
    • Query builder support for IF NOT EXISTS has been removed
    • Series definitions now require to contain at least one field
  • Soft deprecations (no warnings)

    • The plural names for precision units have been soft deprecated to be in line with the similar new naming in Erlang 19.1 and the upcoming Elixir 1.4.0. The old types will continue to work but their usage is discouraged. They will be completely deprecated in an upcoming release.

v0.13.0

11 Sep 13:19
Compare
Choose a tag to compare
  • Enhancements

    • Configuration has been split into "compile time" and "runtime" parts. This readds the possibility to change configuration values without recompiling the connection modules (#22)
    • Configuration values can be fetched from the system environment using {:system, ENV_VAR}
    • Timeouts for queries (individual and connection wide) can be configured (#21)
    • Query builder supports LIMIT and OFFSET for queries (#19)
    • Writing a series struct with one or more empty tags will now properly construct an entry without these tags present
  • Soft deprecations (no warnings)

    • The precision units :micro_seconds, :milli_seconds and :nano_seconds have been renamed to :microseconds, :milliseconds and :nanoseconds to matches the upcoming System.time_unit definition of Elixir 1.3.0. Old variables will continue to work but are highly discouraged and will be completely deprecated in an upcoming release.
  • Deprecations

    • Defining a series without fields is deprecated and will raise in a future version
  • Backwards incompatible changes

    • Configuring a connection with multiple hosts is no longer supported
    • The otp app of a connection is no longer returned when calling MyConnection.config/0,1. It is now only available by specifically requesting it via MyConnection.config([:otp_app])
    • Writer modules now get a map passed with the connection module registered at key :module and (if configured) a udp socket for writing at :udp_socket
    • The Cluster namespace of queries has been removed

v0.12.0

13 May 15:32
Compare
Choose a tag to compare
  • Enhancements

    • Namespace of administrational convenience modules has been changed from Cluster to the better matching Admin
  • Deprecations

    • Configuring a connection with multiple hosts has been deprecated. Instead of multiple :hosts only a single :host is now expected
    • The Cluster namespace of queries has been changed to Admin. For some backwards compatibility the old modules are delegated to the new ones until removed in the next release
  • Backwards incompatible changes

    • Atoms for defining a series' database are no longer supported
    • Atoms for defining a series' measurement are no longer supported
    • Support for the JSON protocol has been removed matching its removal in InfluxDB v0.12.0
    • Support for the SHOW SERVERS statement has been removed matching its removal in InfluxDB v0.13.0

v0.11.0

14 Apr 19:45
Compare
Choose a tag to compare
  • Enhancements

    • Hackney options can be configured (#17)
    • Line writer now prefers a database passed via arguments over the one passed in the datapoint payload
    • Logging for requests is available
    • Pings can be send to specific servers
    • Status requests can be send to a cluster
  • Bug fixes

    • Series are now compiled with full environment information preventing "/path/to/lib/nofile" to be compiled as the source of MySeries.Fields or MySeries.Tags
  • Backwards incompatible changes

    • Runtime connection configuration reading has been removed in favor of compile time inlining.