README.md

[![EEF Observability WG project](https://img.shields.io/badge/EEF-Observability-black)](https://github.com/erlef/eef-observability-wg)
[![Hex.pm](https://img.shields.io/hexpm/v/uplink)](https://hex.pm/packages/uplink)
![Build Status](https://github.com/elixir-uplink/uplink/workflows/Tests/badge.svg)

# 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

```elixir
def deps do
  [
    {:uplink, "~> 0.1"}
  ]
end
```

## Usage

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

```elixir
# 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](https://hexdocs.pm/uplink) 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](https://github.com/elixir-uplink/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 Bryan Naegele