Management

This outline describes the management of dependencies and security within the jaeger-lib project.

Dependency Management

The Gopkg.toml file defines the project’s dependencies and their version constraints.

Example:
[[constraint]]
            name = "github.com/uber-go/tally"
            version = ">=2.1.0, <4.0.0"
          

This specifies that the github.com/uber-go/tally dependency must be at least version 2.1.0 but strictly less than 4.0.0.

Source: Gopkg.toml

Security

The DCO file defines the project’s security practices, which are further elaborated upon in the CONTRIBUTING.md file.

Example:
(d) I understand and agree that this project and the contribution
              are public and that a record of the contribution (including all
              personal information I submit with it, including my sign-off) is
              maintained indefinitely and may be redistributed consistent with
          

This section from the DCO emphasizes the project’s commitment to transparency and maintaining a public record of all contributions.

Source: DCO

Project Usage

The README.md file explains the project’s intended usage and limitations.

Example:
This library is *not intended to be used standalone*, and provides *no guarantees of backwards compatibility*. 
          

This statement clearly indicates that the library is meant to be integrated into other Jaeger components and should not be treated as a standalone solution.

Source: README.md

Top-Level Directory Explanations

metrics/ - This directory contains the metrics implementation for the Jaeger Tracing library.

metrics/adapters/ - This subdirectory contains the various metric adapters for different backends.

metrics/expvar/ - This subdirectory contains the implementation for exposing metrics as HTTP endpoints using the expvar package.

metrics/fork/ - This subdirectory contains the implementation for forking metrics between processes.

metrics/go-kit/ - This subdirectory contains the Go-Kit integration for the Jaeger Tracing library.

metrics/go-kit/expvar/ - This subdirectory contains the expvar implementation for the Go-Kit integration.

metrics/go-kit/influx/ - This subdirectory contains the InfluxDB implementation for the Go-Kit integration.

metrics/metricstest/ - This subdirectory contains the testing implementation for the metrics.

metrics/multi/ - This subdirectory contains the implementation for collecting metrics from multiple sources.

metrics/prometheus/ - This subdirectory contains the Prometheus implementation for the Jaeger Tracing library.

metrics/tally/ - This subdirectory contains the implementation for counting metrics using the tally package.

scripts/ - This directory contains various scripts for the project.