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.
def deps do
[
{:uplink, "~> 0.3"}
]
end
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.
Monitors by the community, for the community!
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.
Copyright (c) 2021-2024 Bryan Naegele