lexmag / fluxter Goto Github PK
View Code? Open in Web Editor NEWHigh-performance and reliable InfluxDB writer for Elixir
Home Page: https://hexdocs.pm/fluxter
License: ISC License
High-performance and reliable InfluxDB writer for Elixir
Home Page: https://hexdocs.pm/fluxter
License: ISC License
Something akin to Mix.Shell
.
https://github.com/elixir-lang/elixir/blob/v1.5/CHANGELOG.md
Finally, child specifications are now provided as maps (data-structures) instead of the previous Supervisor.Spec.worker/3 and Supervisor.Spec.supervisor/3 APIs. This behaviour also aligns with how supervisors are configured in Erlang/OTP 18+. See the updated Supervisor docs for more information, as well as the new Supervisor.init/2 and Supervisor.child_spec/2 functions.
UDP listener got unified with TCP listener, and now it also supports Unix domain sockets:
https://github.com/influxdata/telegraf/tree/59bb31e7651e14fd7694b678a3a8cbd169788d5a/plugins/inputs/socket_listener
For example: {:inet_reply, #Port<0.15292>, {:error, :eafnosupport}}
When using fluxter as dependency in Elixir 1.14.1, there is a compile warning because Application.get_env/3
is used in the module body here.
Since Elixir 1.10 there is Application.compile_env/3
that should be used in compile time, but the compile warning is reported only when using the latest Elixir 1.14.1. There is no warning in Elixir 1.14.0.
Would it be possible to have a version that would drop support for Elixir versions older than 1.10.0 and use Application.compile_env/3
in fluxter.ex macro?
I have a problem with pushing to the Telegraf from a package. I have followed this article:http://tech.footballaddicts.com/blog/gathering-metrics-in-elixir-applications
I created a new model like was written in the article and added the module to my supervision tree. In the configuration, I have added the configuration for local Telegraf service, but when I start the service nothing happens. There are no errors in the console of the app when starting the application. And when I check Telegraf logs, there is no send on the UDP port.
Erlang version: Erlang/OTP 20
Elixir version: Elixir (1.5.1)
Fluxter version: 0.6.1
Telegraf version: 1.4.0-1
PS: The Application is an umbrella app, is that maybe the reason that Fluxter is not working?
InfluxDB line protocol supports the timestamp attribute, please add it:
more information.
https://docs.influxdata.com/influxdb/v0.9/write_protocols/line/#timestamp
Currently, start_link/0
calls Fluxster.config_for/1
. This seems to prevent runtime configuration of parameters.
Here are a few ways to improve this:
@defoverridable start_link: 0
Fluxster.config_for
the default value for a new config_fun
variable.config_for
read from System.get_env
before Application.get_all_env
.config_for
into __using__
and make it overridable, and call it on the module rather than on Fluxter.When I call Bomb.Fluxter.write("credits", credits)
and then SHOW MEASUREMENTS in the influx cli i see nothing. No error is thrown.
Using fluxter 0.6.1.
my config.exs
config :fluxter,
host: "localhost",
port: 8086
my app entry point
defmodule Bomb do
import Supervisor.Spec
def start() do
children = [
Bomb.Fluxter.child_spec(),
]
{:ok, pid} = Supervisor.start_link(children, strategy: :one_for_one)
end
...
end
elixir --version
Erlang/OTP 20 [RELEASE CANDIDATE 2] [erts-9.0] [source] [64-bit] [smp:1:1] [ds:1:1:10] [async-threads:10] [kernel-poll :false]
Elixir 1.4.4
Seems like there is an issue with pushing data on OTP 26.
Don't have the details yet but I thought post it here to save people time. I'll update the issue when I have more information.
The side effects are :
These are the changes we have made master...slashmili:fluxter:otp-26-support-reduce-dns-lookup
I had a crack at fixing this by switching out send/2
with :gen_udp.send/3
but I'm just not sure how the packet is constructed. Running the project tests will reproduce the error.
I think it conveys incorrect meaning: collect several writes, not aggregate them into one.
@whatyouhide do you have any naming ideas? Fluxter.Total
could work.
This should provide more flexible implementation.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.