Patterns

This library is not intended to be used standalone and provides no guarantees of backwards compatibility. README.md

Metrics

The metrics package provides a common interface for emitting metrics. It provides a set of functions for creating different metric types, such as counters, timers, gauges, and histograms.

The metrics package supports different backends, such as Prometheus, Go-kit, and Expvar. The specific backend is configured using the Factory interface.

The metrics package uses a Namespace pattern to group metrics together. metrics/factory.go

The metrics package uses a Multi pattern to emit metrics to multiple backends simultaneously. metrics/multi/multi.go

The metrics package uses a Wrap pattern to add functionality to the Factory interface. metrics/adapters/factory_test.go metrics/expvar/factory_test.go metrics/prometheus/factory.go metrics/go-kit/factory_test.go

The metrics package provides a set of interfaces for different metric types. metrics/counter.go metrics/histogram.go

The metrics package uses a Factory pattern to create new metrics. metrics/expvar/factory.go

Testing

The library uses a Makefile to automate common testing tasks. Makefile

Constraints

The library uses a Gopkg.toml file to specify dependencies and their versions. Gopkg.toml

DCO

The library uses a DCO to ensure that all contributions are properly attributed. DCO


          ## Top-Level Directory Explanations
          
          <a class='local-link directory-link' data-ref="metrics/" href="#metrics/">metrics/</a> - This directory contains the metrics implementation for the Jaeger Tracing library.
          
          <a class='local-link directory-link' data-ref="metrics/adapters/" href="#metrics/adapters/">metrics/adapters/</a> - This subdirectory contains the various metric adapters for different backends.
          
          <a class='local-link directory-link' data-ref="metrics/expvar/" href="#metrics/expvar/">metrics/expvar/</a> - This subdirectory contains the implementation for exposing metrics as HTTP endpoints using the expvar package.
          
          <a class='local-link directory-link' data-ref="metrics/fork/" href="#metrics/fork/">metrics/fork/</a> - This subdirectory contains the implementation for forking metrics between processes.
          
          <a class='local-link directory-link' data-ref="metrics/go-kit/" href="#metrics/go-kit/">metrics/go-kit/</a> - This subdirectory contains the Go-Kit integration for the Jaeger Tracing library.
          
          <a class='local-link directory-link' data-ref="metrics/go-kit/expvar/" href="#metrics/go-kit/expvar/">metrics/go-kit/expvar/</a> - This subdirectory contains the expvar implementation for the Go-Kit integration.
          
          <a class='local-link directory-link' data-ref="metrics/go-kit/influx/" href="#metrics/go-kit/influx/">metrics/go-kit/influx/</a> - This subdirectory contains the InfluxDB implementation for the Go-Kit integration.
          
          <a class='local-link directory-link' data-ref="metrics/metricstest/" href="#metrics/metricstest/">metrics/metricstest/</a> - This subdirectory contains the testing implementation for the metrics.
          
          <a class='local-link directory-link' data-ref="metrics/multi/" href="#metrics/multi/">metrics/multi/</a> - This subdirectory contains the implementation for collecting metrics from multiple sources.
          
          <a class='local-link directory-link' data-ref="metrics/prometheus/" href="#metrics/prometheus/">metrics/prometheus/</a> - This subdirectory contains the Prometheus implementation for the Jaeger Tracing library.
          
          <a class='local-link directory-link' data-ref="metrics/tally/" href="#metrics/tally/">metrics/tally/</a> - This subdirectory contains the implementation for counting metrics using the tally package.
          
          <a class='local-link directory-link' data-ref="sample/" href="#sample/">sample/</a> - This directory contains a sample implementation for the Jaeger Tracing library.