Go to file
Andrew Rosa dfed96874f
Add Nebulex instrumentation library (#83)
Add instrumentation for Nebulex, a distributed cache library. This
library provides solid telemetry support for this initial
implementation.

Caching implementation is mostly based on in-memory storage (like ETS)
and RPC calls for distribution (via OTP libraries, like :erpc). AFAICT,
there is not much specifics for how to translate into Semantic
Attributes: those caches are not quite a DB, except maybe for the one
which implements the storage; the RPC can't be reliably captured
either.

Given the above constraints, this initial implementation instruments the
library via custom attributes (namespaced as `nebulex.*`). It's not 100%
clear the behaviour of OTel for actual distributed caches - from my
tests, that may create some orphan spans. I think that's fine as first
release.

Nebulex follow the patterns of Ecto, so this instrumentation follows a
similar pattern of OpentelemetryEcto. It does include a `setup_all/1`
function for convenience, that leverages the :init events Nebulex emit
on process start.

Co-authored-by: Tristan Sloughter <t@crashfast.com>
2022-12-14 17:38:18 -07:00
.github Add Nebulex instrumentation library (#83) 2022-12-14 17:38:18 -07:00
examples chore: ran formatter (#123) 2022-11-15 16:25:04 -07:00
instrumentation Add Nebulex instrumentation library (#83) 2022-12-14 17:38:18 -07:00
propagators/opentelemetry_process_propagator publish latest updates (#127) 2022-11-16 19:07:23 -07:00
utilities update elixir package deps (#126) 2022-11-15 17:48:50 -07:00
.gitignore Update .gitignore 2021-11-22 12:18:02 -07:00
CODEOWNERS Add Nebulex instrumentation library (#83) 2022-12-14 17:38:18 -07:00
CONTRIBUTING.md Add info about conventions to guides (#33) 2021-11-12 10:52:29 -07:00
LICENSE Initial commit 2021-04-19 10:19:28 -07:00
README.md Update README.md (#71) 2022-03-20 16:44:31 -06:00
mix.exs Otel phoenix migration (#4) 2021-09-12 13:49:24 -06:00
rebar.lock Implemented AWS X-Ray TraceId Generator (#95) 2022-07-21 11:40:47 -06:00

README.md

<p align="center"> <strong> <a href="https://opentelemetry.io/docs/instrumentation/erlang/getting-started/">Getting Started<a/>   •   <a href="https://hexdocs.pm/opentelemetry_api/1.0.0-rc.2/OpenTelemetry.html">API Documentation<a/> </strong> </p> <p align="center"> <strong> <a href="CONTRIBUTING.md">Contributing<a/>   •   <a href="instrumentation/">Instrumentation<a/>   •   <a href="propagators/">Propagators<a/>   •   <a href="examples/">Examples<a/> </strong> </p>

Getting Started   •   API Documentation

Contributing   •   Instrumentation   •   Propagators   •   Examples

EEF Observability WG project Elixir

About this project

This is a repository for OpenTelemetry Erlang & Elixir contributions that are not part of the core repository and core distribution of the API and SDK.

Instrumentations

OpenTelemetry can collect tracing data using instrumentation. Vendors/Users can also create and use their own. Currently, OpenTelemetry supports automatic tracing for:

Supported Runtimes

OpenTelemetry requires OTP v21.3 and above.

See Elixir OTP Compatibility for supported OTP/Elixir combinations.

Contributing

We'd love your help!. Use tags [up-for-grabs][up-for-grabs-issues] and good first issue to get started with the project. Follow CONTRIBUTING guide to report issues or submit a proposal.

License

Apache 2.0 - See LICENSE for more information.