arkgil

arkgil

Telemetry - Dynamic dispatching library for metrics and instrumentations (v0.3.0 released!)

Hi all!

I’m happy to announce that Telemetry v0.3.0 is out! This release marks the conversion from Elixir to Erlang so that all the libraries and projects on the BEAM can expose useful instrumentation data via Telemetry events! :heart:

This version is not compatible with the previous versions, below you will find the description of how to move from 0.2.0 to 0.3.0.

For those who publish

The only change in how the events are emitted is the module name:

# 0.2.0
Telemetry.execute([:my, :event], 20, %{some: :metadata})

# 0.3.0
:telemetry.execute([:my, :event], 20, %{some: :metadata})

For those who subscribe

The attach and attach_many have been changed a bit - now they accept an anonymous function as the handler function instead of a module/function pair.

# 0.2.0
Telemetry.attach("my-handler", [:my, :event], EventHandler, :handle, %{some: :config})

# 0.3.0
:telemetry.attach("my-handler", [:my, :event], &EventHandler.handle/4, %{some: :config})

To see all the changes please check out the change log.

Credits

Many thanks to @tristan for all of his help on the rewrite :heart: We wouldn’t have made it in 2018 without him :smiley:

Also, a big thank you to all people supporting and using the project, asking questions and submitting feedback!

Feedback

Please let us know what you think about the release here or on the issue tracker.

Links

Most Liked

arkgil

arkgil

Hi folks! :wave:

We have just released Telemetry 0.4.0. With this version, Telemetry events now carry a map of measurements instead of a single measurement. This is useful in cases when there are multiple values describing what just happened, e.g. in case of HTTP request the event might include decompression time, payload size, and processing time:

:telemetry.execute(
  [:http, :request],
  %{payload_size: 12874, processing_time: 120, decompression_time: 5},
  %{status: 200, path: "/..."}
)

Previously, each measurement needed to be emitted in a dedicated event. Now the event tells that a thing happened, and measurements and metadata describe its properties.

This change is backwards-compatible for event publishers, i.e. you can still call :telemetry.execute/3 with a single value. However, event handlers need to handle a map of measurements now.

Last but not least, thanks for the awesome feedback from the community which lead to this release!

Ludwik

Ludwik

Hey, I’ve just implemented InfluxDB reporter for Telemetry:
https://github.com/ludwikbukowski/telemetry_influxdb

tristan

tristan

Rebar3 Core Team

True, and I do see the appeal of wanting to something for “free” if the information is already there in some form.

But keep in mind how much influence you’ll have with the Elixir community with this library and the documentation around it. And since it is mostly new, not something existing in people’s code they can simply tap into today but will instead be instrumenting in the future, it can start for the “right place”. Meaning instead of creating spans have a lib for annotating spans through different libs like opencensus/ex_ray/etc, and documentation for Telemetry explaining how its events can be used to annotate spans in a distributed trace.

Because of the influence on the community to come from a library with backing like telemetry has this will help guide people to checkout distributed tracing solutions.

Where Next?

Popular in Announcing Top

tmbb
PhoenixWS - Websockets over Phoenix Channels Source code on Github here: GitHub - tmbb/phoenix_ws: Websockets implemented over Phoenix Ch...
New
mathieuprog
Hello :waving_hand: Allow me to introduce you to Tz, an alternative time zone database support to Tzdata. Why another library? First a...
New
ityonemo
Currently just starting out on a new mini-project - getting zig NIFs to run in elixir. https://github.com/ityonemo/zigler The idea here...
New
ostinelli
Let’s write a database! Well not really, but I think it’s a little sad that there doesn’t seem to be a simple in-memory distributed KV da...
New
restlessronin
The repo is at GitHub - cyberchitta/openai_ex: Community maintained Elixir library for OpenAI API · GitHub. Docs are at OpenaiEx User Gu...
152 10342 134
New
zorbash
I created Kitto a framework for dashboards inspired by Dashing. The distributed characteristics of Elixir and the low memory footprint...
New
nikokozak
Hello all, I’ve been working on Svonix - a library for quickly integrating Svelte components into Phoenix views. It’s a much-needed succ...
New
alisinabh
Hey everyone i’ve developed a library for Jalaali calendar for elixir which supports converting Gregorian dates to Jalaali and vice vers...
New
tmbb
I’ve decided to create this topic to discuss optimization possibilities for something like Phoenix LiveView. I’ve created this topic unde...
144 10462 141
New
wfgilman
I’ve cleaned up and open sourced three financial libraries I was using for my company. They are bindings for the APIs of these three comp...
New

Other popular topics Top

Harrisonl
We have an ECS cluster with 4 services, where each task joins a single cluster, via discovery ECS discovery service. Currently when I de...
New
WestKeys
Currently suffering from paralysis by [HTTP client] analysis. This is rather unusual in Elixirland as there tends to be consensus on the ...
New
marius95
Hello everyone, I try to use an Javascript Event Handler in my root.html.leex file. Therefore I created a function in the app.js file: ...
New
skosch
To my knowledge, put_in, Map.update etc. all have the one limitation of not automatically creating intermediate keys when needed (for exa...
New
jerry
Good day to you all. I have been struggling to get a query involving like and ilike to work. Can anyone assist me on this, please? pro...
New
Emily
I have VueJS GUIs with the project generated using Webpack. I have Elixir modules that will need to be used by the VueJS GUIs. I forese...
New
AstonJ
We’ve put together this wiki for Phoenix LiveView - please feel free to add any info you feel is worth including. What is Phoenix LiveV...
New
JakeBecker
TL;DR: I’ve just released an implementation of Microsoft’s IDE-independent Language Server Protocol for Elixir. It adds language support ...
1144 54120 245
New
jaysoifer
Is there a way to rollback a specific migration and only that one (“skipping” all the other ones)? Would mix ecto.rollback -v 200809061...
New
vonH
In asking this question I am more interested about the expressiveness of the language itself and less concerned about the availability of...
New

Latest on Elixir Forum

Elixir Forum

We're in Beta

About us Mission Statement