All Projects → ovotech → natchez-extras

ovotech / natchez-extras

Licence: Apache-2.0 license
Integrations between Natchez, Doobie, HTTP4s, Log4cats and Datadog. Formerly called effect-utils.

Programming Languages

scala
5932 projects

Projects that are alternatives of or similar to natchez-extras

Scala Opentracing
A tracing library for Cats and Http4s, tailored for Opentracing tracers like Datadog and Jaeger
Stars: ✭ 95 (+295.83%)
Mutual labels:  datadog
Terraform Provider Datadog
Terraform Datadog provider
Stars: ✭ 213 (+787.5%)
Mutual labels:  datadog
Dd Trace Go
A Go tracing package for Datadog APM
Stars: ✭ 244 (+916.67%)
Mutual labels:  datadog
Dd Trace Dotnet
.NET Tracer for Datadog APM
Stars: ✭ 125 (+420.83%)
Mutual labels:  datadog
Remora
Kafka consumer lag-checking application for monitoring, written in Scala and Akka HTTP; a wrap around the Kafka consumer group command. Integrations with Cloudwatch and Datadog. Authentication recently added
Stars: ✭ 183 (+662.5%)
Mutual labels:  datadog
Dd Trace Py
Datadog Python APM Client
Stars: ✭ 220 (+816.67%)
Mutual labels:  datadog
Datadog Operator
Datadog Agent Kubernetes Operator
Stars: ✭ 83 (+245.83%)
Mutual labels:  datadog
datadog-tracer-js
[DEPRECATED] OpenTracing tracer implementation for Datadog in JavaScript.
Stars: ✭ 39 (+62.5%)
Mutual labels:  datadog
Dd Trace Php
Datadog Tracing PHP Client
Stars: ✭ 203 (+745.83%)
Mutual labels:  datadog
Datadog Go
go dogstatsd client library for datadog
Stars: ✭ 238 (+891.67%)
Mutual labels:  datadog
Java Dogstatsd Client
a java statsd client library
Stars: ✭ 140 (+483.33%)
Mutual labels:  datadog
Stats
Go package for abstracting stats collection
Stars: ✭ 164 (+583.33%)
Mutual labels:  datadog
Ansible Datadog
Ansible role for Datadog Agent
Stars: ✭ 223 (+829.17%)
Mutual labels:  datadog
Dd Trace Rb
Datadog Tracing Ruby Client
Stars: ✭ 118 (+391.67%)
Mutual labels:  datadog
Pagerbeauty
📟✨ PagerDuty on-call widget for monitoring dashboard. Datadog and Grafana compatible
Stars: ✭ 250 (+941.67%)
Mutual labels:  datadog
Chef Datadog
Chef cookbook for Datadog Agent & Integrations
Stars: ✭ 89 (+270.83%)
Mutual labels:  datadog
Dd Trace Js
JavaScript APM Tracer
Stars: ✭ 212 (+783.33%)
Mutual labels:  datadog
dd-trace-php
[DEPRECATED] Use https://github.com/dataDog/dd-trace-php instead
Stars: ✭ 18 (-25%)
Mutual labels:  datadog
datalogger
DataLogger foi projetado para ser uma biblioteca simples de log com suporte a vários providers.
Stars: ✭ 46 (+91.67%)
Mutual labels:  datadog
Dd Trace Java
Datadog APM client for Java
Stars: ✭ 228 (+850%)
Mutual labels:  datadog

Natchez Extras

This repository consists of a number of additional integrations for Natchez, primarily to assist with integrating Natchez & Datadog. Separate to the Natchez integrations but included here for simplicity is a module to send metrics to Datadog over UDP with FS2.

Cats Effect versions

If you're using Cats Effect 2.x you should use versions 4.x.x of this library, for Cats Effect 3 use versions 5.0.0 and up.

http4s dependencies

http4s currently has a stable release (0.23.*) and a milestone release (1.0.0-M*). Originally the modules within this library were moved to depend on 1.0.0-M* when ported to Cats Effect 3 but the milestone releases don't guarantee binary compatibility. (See issue #66).

As such there are two versions of natchez-extras-datadog and natchez-extras-http4s:

  • natchez-extras-datadog-stable / natchez-extras-http4s-stable which depend on http4s 0.23.*
  • natchez-extras-datadog / natchez-extras-http4s which depend on http4s 1.0.0-M*

It is recommended that you use the stable variants to avoid binary compatibility issues when upgrading http4s but the unstable versions will continue to exist just in case they're relied upon.

Migration from effect-utils

For historical reasons prior to 4.0.0 this repository was called effect-utils. If you're upgrading your dependencies the renamings are as follows:

"com.ovoenergy.effect" % "datadog-metrics"  => "com.ovoenergy" % "natchez-extras-dogstatsd"
"com.ovoenergy.effect" % "natchez-datadog"  => "com.ovoenergy" % "natchez-extras-datadog-stable"
"com.ovoenergy.effect" % "natchez-doobie"   => "com.ovoenergy" % "natchez-extras-doobie"
"com.ovoenergy.effect" % "natchez-slf4j"    => "com.ovoenergy" % "natchez-extras-slf4j"
"com.ovoenergy.effect" % "natchez-combine"  => "com.ovoenergy" % "natchez-extras-combine"
"com.ovoenergy.effect" % "natchez-fs2"      => "com.ovoenergy" % "natchez-extras-fs2"
"com.ovoenergy.effect" % "natchez-testkit"  => "com.ovoenergy" % "natchez-extras-testkit"
"com.ovoenergy.effect" % "natchez-http4s"   => "com.ovoenergy" % "natchez-extras-http4s-stable"

Other significant changes are the Datadog metrics object being renamed to Dogstatsd and the modules having their code moved into a subpackage under com.ovoenergy.natchez.extras, for example:

import com.ovoenergy.effect.Combine // effect-utils
import com.ovoenergy.natchez.extras.combine.Combine // natchez-extras

This is to ensure that each module has an isolated package and so can define, for example, a syntax object without affecting anything else.

Current modules

Dogstatsd

latest version

This module allows you to send Metrics and Events to the Datadog agent over UDP with FS2.

Datadog

latest version

This module integrates Natchez with Datadog. It uses HTTP4s and does not depend on the Java Datadog library.

Doobie

latest version

This module integrates Natchez with Doobie so you can trace which DB queries are being run and for how long.

HTTP4S

latest version

This module integrates Natchez with the HTTP4S client and provides middleware to trace both inbound and outbound HTTP requests. It aims to be as configurable as possible so can be configured for use with tracing platforms other than Datadog.

Sl4fj

latest version

This module provides an Slf4j integration with Natchez that logs whenever spans get started or completed. This is mainly useful when running applications locally or integrating with existing logging platforms.

Combine

latest version

This module allows two Natchez EntryPoints to be combined so that they'll both be used. For example if you want to log spans with the above Slf4j integration as well as submitting them to Datadog.

FS2

latest version

This module provides an AllocatedSpan that can be manually submitted, for use in FS2 streams where the Resource based model of Natchez isn't a good fit if you want to have one trace per stream item.

Testkit

latest version

This module provides a TestEntrypoint backed by a Ref which can be useful in unit tests.

Log4cats

latest version

This module provides a TracedLogger for log4cats that will automatically add trace & span IDs to your log lines so that they're linked in the Datadog UI.

Notes for maintainers

To create a release, push a tag to master of the format x.y.z. See the semantic versioning guide for details of how to choose a version number.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].