Skip to content

A simple abstraction for standardized observability with telemetry and more in Elixir

License

Notifications You must be signed in to change notification settings

elixir-uplink/uplink

Repository files navigation

EEF Observability WG project Hex.pm Build Status

Uplink

Uplink makes setup of application monitoring with telemetry as simple as possible. Rather than having to add and setup several libraries, this package rolls them all up into a single configurable drop-in to your application tree.

Installation

def deps do
  [
    {:uplink, "~> 0.3"}
  ]
end

Usage

Add Uplink to your application supervision tree and tell it which monitors it should run.

# application supervisor
children = [
  {
    Uplink, [
      monitors: [
        {MyMonitors.Ecto, [repo_prefix: :my_repo]},
        Uplink.Monitors.VM
      ],
      pollers: [
        {10, [{TestModule, :test_emitter, []}]}
      ],
      metric_definitions: [
        Telemetry.Metrics.counter("poller.test.event.lasers")
      ],
      reporters: [
        Telemetry.Metrics.ConsoleReporter
      ]
    ]
  }
]

See the docs for more information.

Uplink Monitors

Monitors by the community, for the community!

Usage

Uplink Monitors are meant to be copied and pasted into your project as a starting point because preferences amongst individuals and organizations around metrics can vary widely. The important thing is to have a jumping-off point and can learn patterns and practices from others. These aren't one-size-fits-all, so make them your own and share your learnings with others!

In the monitors folder you'll find monitors for popular libraries which have been compiled over the past few years. They've worked quite well, so enjoy!

Create a PR to add a link to your own examples in the README or a monitor for a library not already covered.

Community Links

Copyright (c) 2021-2024 Bryan Naegele

About

A simple abstraction for standardized observability with telemetry and more in Elixir

Resources

License

Stars

Watchers

Forks

Sponsor this project

 

Packages

No packages published

Languages