go-kit/kit
48.7
Weak · 24 September 2026
11.7k
lines of production code
Go
primary language
5
measurements over time
What this system is
This system is a modular Go toolkit for building microservices, providing a standardized way to implement authentication, authorization, and observability across various transport protocols. It offers a unified interface for logging, metrics, and distributed tracing, with built-in support for HTTP, gRPC, and message brokers like RabbitMQ and NATS. Additionally, it includes service discovery mechanisms for registries such as Consul, etcd, and ZooKeeper, enabling resilient client-side load balancing and endpoint management.
How it got here
2015–2016 — distributed systems primitives and service discovery
31 changes.
This period focused on establishing a comprehensive set of distributed systems primitives, including robust service discovery implementations for Consul, ZooKeeper, and Eureka, alongside a new endpoint and transport abstraction layer. The team also expanded the metrics and tracing capabilities to support multiple backends and distributed tracing standards, while refactoring the logging infrastructure to a standalone repository.
2017–2020 — Transport and backend expansion
20 changes.
This period focused on expanding the library's capabilities by adding support for diverse transport protocols (gRPC, NATS, AMQP, AWS Lambda) and logging backends (syslog, logrus, Zap). It also introduced new metrics exporters for CloudWatch and InfluxData, alongside service discovery implementations for etcd and internal caching mechanisms.
Features
Add AMQP transport support for publishing and subscribing to RabbitMQ queues
The \transport/amqp\ package introduces a new transport layer for interacting with AMQP 0-9-1 message brokers, specifically targeting RabbitMQ. This addition provides \Publisher\ and \Subscriber\ components that implement the \endpoint.Endpoint\ interface, allowing services to send and receive messages via AMQP. The implementation includes request/response encoding and decoding functions, context-based configuration for exchange, routing keys, and delivery modes, along with comprehensive test coverage for error handling and successful message flows.
transport/amqp · high confidence
Add AWS Lambda transport layer
The transport/awslambda package introduces a new transport layer for AWS Lambda, providing a Handler that wraps a go-kit endpoint to handle incoming Lambda payloads. It includes encode/decode functions for request and response mapping, along with support for pre/post-processing via HandlerBefore and HandlerAfter functions, and configurable error handling and finalizers.
transport/awslambda · high confidence
Add Basic Authentication middleware
A new Basic Authentication middleware is now available in the auth/basic package. It validates the username and password from the HTTP request's Authorization header against provided credentials, returning a 401 Unauthorized error for invalid or missing credentials. The implementation uses constant-time comparison to prevent timing attacks and includes a README with usage examples.
auth/basic · high confidence
Add Casbin-based authorization middleware
A new authorization middleware has been added to the application, integrating the Casbin library (v2) to enforce access control policies. This change introduces a middleware that validates whether a subject is authorized to perform a specific action on a given object, using a configurable access control model and policy. The implementation includes the middleware logic, associated context keys, and test data files to support the new authorization flow.
auth/casbin · high confidence
Add CloudWatch metrics backend with histogram and gauge support
Users can now send metrics to AWS CloudWatch using the new CloudWatch backend. This implementation supports counters, gauges, and histograms (including configurable percentiles), and includes a WriteLoop helper for periodic reporting. The API allows configuration of concurrent request limits and custom loggers, with tests verifying correct dimension and value handling.
metrics/cloudwatch · high confidence
Add CloudWatch v2 metrics exporter
Introduces a new CloudWatch v2 metrics exporter in the \metrics/cloudwatch2\ package, enabling users to send aggregated metric data to Amazon CloudWatch using the AWS SDK for Go v2. The implementation supports counters, gauges, and histograms by emitting a \StatisticsSet\ per metric, with configurable concurrency limits and optional logging for error handling.
metrics/cloudwatch2 · high confidence
Add DNS SRV service discovery implementation
The sd/dnssrv package introduces a new Instancer that resolves DNS SRV records to discover service instances. It supports configurable refresh intervals and allows custom lookup functions. The implementation includes error handling for invalid SRV records (specifically those with port 0) and provides a Stop method to cleanly terminate the background resolution loop.
sd/dnssrv · high confidence
Add Eureka service discovery implementation
The \sd/eureka\ package now provides an \Instancer\ and \Registrar\ for interacting with Netflix's Eureka service registry. The \Instancer\ watches for changes in a specific application's instances and updates subscribers, while the \Registrar\ manages instance liveness by performing periodic heartbeats and handling re-registration on expiration. The implementation includes unit tests (\instancer\_test.go\, \registrar\_test.go\) and an integration test (\integration\_test.go\) that validates the lifecycle of registering, updating, and deregistering instances against a live Eureka server.
sd/etcd, sd/eureka · high confidence
Add Graphite metrics backend
A new \metrics/graphite\ package is introduced, providing a backend for sending metrics to a Graphite server using the plaintext protocol. The implementation supports counters, gauges, and histograms (reported as per-quantile gauges), with batched writes and helper methods (\WriteLoop\, \SendLoop\) for regular reporting. Tests are included to verify the behavior of all three metric types.
(repo-wide) · high confidence
Add HTTP reverse-proxy transport with configurable request hooks
The transport/httprp package introduces a new HTTP reverse-proxy transport that forwards requests to a specified upstream service. Users can now instantiate a proxying server and attach multiple 'ServerBefore' hooks to modify the HTTP request before it is proxied, enabling global request transformations without per-handler configuration.
transport/httprp · high confidence
Add InfluxDB metrics implementation
Added a new InfluxDB metrics implementation in the \metrics/influx\ package, providing support for counters, gauges, and histograms. The implementation includes the core \influx.go\ logic for collecting and flushing metric data, along with corresponding unit tests in \influx\_test.go\ and example tests in \example\_test.go\ to verify behavior.
metrics/influx · high confidence
Add InfluxStatsD metrics exporter
Introduces a new \influxstatsd\ package that provides support for InfluxData's StatsD Telegraf plugin, allowing metrics to be batched and emitted to a remote server. The implementation supports counters, gauges, timings, and histograms with arbitrary tags per metric, and includes helper methods (\WriteLoop\, \SendLoop\) for regular reporting. The change also includes the corresponding test suite for these new metrics types.
metrics/influxstatsd · high confidence
Add JSON-RPC transport support for HTTP
Introduces a new JSON-RPC transport implementation for HTTP, providing both client and server components. Users can now build JSON-RPC services by defining an EndpointCodecMap to route methods to endpoints, with support for custom request/response encoding and decoding, middleware hooks (before/after/finalizer), and structured error handling that preserves request IDs and error codes in responses.
transport/http/jsonrpc · high confidence
Add NATS transport support
The NATS transport implementation is now available, providing Publisher and Subscriber components for sending and receiving messages via NATS. Users can configure encoding and decoding functions, apply request and response middleware, and handle errors through customizable encoders and handlers.
transport/nats · high confidence
Add OpenCensus tracing middleware for Go kit transports
Introduces OpenCensus-based tracing middleware for HTTP, gRPC, and JSON-RPC transports, as well as for Go kit endpoints. This allows users to instrument their services with distributed tracing spans, supporting custom span names, attribute injection, error status reporting, and trace context propagation across HTTP, gRPC, and JSON-RPC boundaries.
tracing/opencensus · high confidence
Add PCP metrics reporter with Counter, Gauge, and Histogram support
Users can now report metrics to the Performance Co-Pilot (PCP) system via a new \metrics/pcp\ package. This addition introduces a \Reporter\ that wraps the \performancecopilot/speed\ library to provide \Counter\, \Gauge\, and \Histogram\ implementations compatible with the \go-kit/metrics\ interface. The \Histogram\ specifically supports metric units and includes tests for all three metric types.
metrics/pcp · high confidence
Add Protobuf encoding for HTTP transport
The transport/http/proto package now provides EncodeProtoRequest and EncodeProtoResponse functions, enabling HTTP services to serialize requests and responses as Protobuf messages. This allows clients and servers to exchange data in the application/x-protobuf format, with support for custom headers and HTTP status codes.
transport/http/proto · high confidence
Add Timer utility for measuring durations against histograms
The metrics package now includes a Timer struct that acts as a stopwatch, automatically calculating the elapsed time since its creation and forwarding the observation to a wrapped Histogram. This provides a convenient syntax sugar for recording durations, with support for custom time units (e.g., seconds, milliseconds) and configurable tolerance in tests. The addition includes the Timer implementation, its unit-setting method, and corresponding tests.
metrics · high confidence
Add Zap logger adapter for Go kit logging
Users can now bridge Go kit's logging interface to Uber's Zap library via a new \NewZapSugarLogger\ adapter in the \log/zap\ package. This allows applications using Go kit's \log.Logger\ interface to seamlessly route log events to a Zap logger, with support for all standard log levels (Debug through Fatal) and corresponding panic behavior. A comprehensive test suite validates that key-value pairs and log levels are correctly translated to JSON output.
log/zap · high confidence
Add circuit breaker middleware implementations
Introduces three new circuit breaker implementations for the go-kit endpoint middleware: Gobreaker, HandyBreaker, and Hystrix. Each provides a middleware that wraps an endpoint to prevent thundering herds and improve resiliency against intermittent errors. The entry includes the corresponding test files for each implementation.
circuitbreaker · high confidence
Add client-side load balancer with round-robin, random, and retry capabilities
The sd/lb package now provides a client-side load balancing interface with implementations for random and round-robin selection strategies, along with a retry wrapper that automatically retries failed requests up to a specified limit or timeout. Users can now integrate this package to distribute traffic across service instances without relying on external load balancers.
sd/lb · high confidence
Add etcd v3 service discovery implementation
The \sd/etcdv3\ package introduces a new implementation for service discovery using the etcd v3 API. This includes a \Client\ interface and its concrete implementation for interacting with etcd v3, an \Instancer\ to watch for service changes, and a \Registrar\ to handle service registration and deregistration with optional TTL-based lease management. The package also provides example code demonstrating how to use the client, registrar, and instancer together for service registration and discovery.
sd/etcdv3 · high confidence
Add generic in-memory metric implementations
The \metrics/generic\ package introduces in-memory implementations for Counter, Gauge, and Histogram metrics. The Counter and Gauge types use atomic operations for thread-safe updates, while the Histogram wraps \VividCortex/gohistogram\ with a mutex for goroutine safety. This provides a baseline, dependency-light way to track metrics in memory, with tests verifying atomic alignment and concurrent access.
metrics/generic · high confidence
Add leveled logging support via the log/level package
The log/level package is introduced to provide leveled logging on top of the standard log package. Users can now wrap their loggers with level.NewFilter to control which log levels (Debug, Info, Warn, Error) are passed through or squelched, and use helper functions like level.Debug or level.Info to emit log events at specific levels. This adds a new capability for controlling log verbosity and structure in applications.
log/level · high confidence
Add logrus adapter for the go-kit Logger interface
Users can now use the logrus library as a backend for the go-kit logging interface. A new \log/logrus\ package provides a \Logger\ implementation that wraps a \logrus.FieldLogger\, allowing applications to route logs through logrus while maintaining compatibility with the standard \go-kit/log.Logger\ interface. The adapter supports configuring the minimum logging level via the \WithLevel\ option, ensuring that only messages at or above the specified severity are processed.
log/logrus · high confidence
Add metrics provider abstraction for multiple backends
The metrics/provider package introduces a Provider interface and concrete implementations for Discard, Dogstatsd, Expvar, Graphite, Influx, Prometheus, and StatsD. This allows users to swap out metrics backends dynamically at runtime by selecting the appropriate provider, rather than hardcoding a single metrics implementation. Each provider implements the Provider interface, which abstracts over constructors and lifecycle management for the respective backend.
metrics/provider · high confidence
Add multi-metric adapters for simultaneous observation
The metrics/multi package now provides Counter, Gauge, and Histogram adapters that forward observations to multiple underlying metric instances simultaneously. This allows services to emit metrics to multiple instrumentation systems at once, such as during a transition between monitoring backends. The implementation includes NewCounter, NewGauge, and NewHistogram constructors, along with With methods that propagate label values to all wrapped metrics.
metrics/multi · high confidence
Add syslog logging support
The library now includes a syslog logger implementation, allowing users to send log messages to the system's syslog daemon. This new capability is exposed via the \log/syslog\ package, which provides a \NewSyslogLogger\ function to create loggers that write to a \SyslogWriter\ with configurable priority selection.
log/syslog · high confidence
Add token bucket rate limiting middleware
The ratelimit package now includes token bucket rate limiting via NewErroringLimiter and NewDelayingLimiter, which wrap go-kit endpoints to either reject requests that exceed the rate limit or delay them accordingly. The implementation leverages golang.org/x/time/rate and provides adapter functions (AllowerFunc, WaiterFunc) to simplify integration with the rate limiter.
ratelimit · high confidence
Add transport-level error handling interface and default logger
The transport package now provides a standardized way to handle errors across all supported transports. A new \ErrorHandler\ interface and a \LogErrorHandler\ implementation have been added, allowing users to configure how transport-level errors are processed, with logging as the default behavior.
transport · high confidence
Added connection management utilities
Added the \util/conn\ package, which provides a \Manager\ for handling network connections with automatic reconnection and exponential backoff. The \Manager\ allows clients to safely acquire and release connections, automatically retrying on failure. A corresponding test suite verifies the reconnection logic, including handling of initial dial failures and transient errors.
util · high confidence
Added documentation for the tracing package
Added README.md and doc.go files for the tracing package, providing an overview of request tracing capabilities and documentation for supported backends including Zipkin, OpenCensus, OpenTracing, and OpenTelemetry.
tracing · high confidence
Added internal cache for service discovery instances
A new internal cache implementation has been added to manage service discovery state. This cache stores the latest set of instances and notifies all registered listeners when updates occur, ensuring each observer receives a copy of the event data to prevent data races. The implementation includes a Stop method and supports the push model for service discovery.
sd/internal · high confidence
Added internal metrics infrastructure and metric type conversion utilities
Added new internal packages to support metrics functionality: \metrics/internal/convert\ provides adapters to convert between Counter, Histogram, and Gauge types; \metrics/internal/lv\ introduces a \Space\ for managing N-dimensional time series data and a \LabelValues\ helper for label handling; \metrics/internal/ratemap\ adds a thread-safe map for tracking metric sample rates. These components provide the internal foundation for metric collection and conversion.
metrics/internal · high confidence
Added no-op metrics discard backend
A new 'discard' package has been added to provide a no-op implementation of the metrics interface. This allows users to disable metrics collection by using this backend, which implements Counter, Gauge, and Histogram interfaces with empty methods, effectively ignoring all metrics data.
metrics/discard · high confidence
Added teststat package with metrics testing helpers
The \metrics/teststat\ package was added, introducing new utilities for testing metrics backends. This includes \TestCounter\, \TestGauge\, and \TestHistogram\ functions to verify metric values, as well as \PopulateNormalHistogram\ for generating test data. Additionally, \SumLines\, \LastLine\, and \Quantiles\ helpers were added to parse and analyze metric output from writers.
metrics/teststat · high confidence
Introduce HTTP transport package with client and server implementations
The HTTP transport layer is now available in the \transport/http\ package, providing \Client\ and \Server\ wrappers for endpoints. The client supports configurable request and response functions, finalizers, and buffered streams, while the server supports request/response hooks, custom error encoding, and finalizers. This includes new types like \interceptingWriter\ to capture response headers and status codes for finalizers, and utility functions like \EncodeJSONRequest\ and \PopulateRequestContext\.
transport/http · high confidence
Introduce JWT authentication middleware and transport helpers
The \auth/jwt\ package now provides a complete JWT authentication solution, including \NewParser\ and \NewSigner\ middleware functions for validating and generating tokens, along with transport helpers (\HTTPToContext\, \ContextToHTTP\, \GRPCToContext\, \ContextToGRPC\) to automatically inject and extract JWTs from HTTP and gRPC headers. The implementation uses the \github.com/golang-jwt/jwt/v4\ library and supports custom claims factories for flexible token parsing.
auth/jwt · high confidence
Introduce color logging and ANSI color support in log/term
The log/term package now provides colorized logging capabilities. Users can create a color logger that applies ANSI color codes to log output based on message content or log level, using the new NewColorLogger and NewColorWriter functions. Additionally, the package exposes terminal detection and color constants to help format logs with distinct colors for errors, warnings, and other levels, improving readability in terminal environments.
log/term · medium confidence
Introduce endpoint package for RPC abstractions
The endpoint package is introduced to provide a fundamental abstraction for RPCs, defining the Endpoint type as a function signature for single RPC methods. This includes a Nop endpoint for testing, a Middleware type for chainable behavior modification, and a Chain helper for composing middlewares. Additionally, a Failer interface is provided to allow response types to expose business logic errors.
endpoint · high confidence
Introduce gRPC transport support
Adds a new gRPC transport implementation for go-kit, providing client and server handlers that wrap endpoints to handle gRPC requests and responses. The change includes the core client and server logic, encode/decode functions, and request/response function hooks (before/after) for both client and server sides. A README file is also added to document the integration of gRPC with go-kit, including instructions for setting up the protoc compiler and generating Go code from .proto files. A test file is included to verify the client's functionality.
transport/grpc · high confidence
Native Zipkin tracing support for HTTP, gRPC, and endpoint transports
The \tracing/zipkin\ package now provides native OpenZipkin tracing middleware for Go kit HTTP, gRPC, and endpoint transports. This update introduces new middleware functions (\HTTPClientTrace\, \HTTPServerTrace\, \GRPCClientTrace\, \GRPCServerTrace\, and \TraceEndpoint\) that integrate with the \zipkin-go\ library to automatically capture and report distributed traces. The implementation includes support for span context propagation, configurable span naming, custom tags, and request-based sampling, enabling users to monitor and debug distributed systems with full Zipkin compatibility.
tracing/zipkin · high confidence
New Consul service discovery implementation
Added a new implementation of service discovery for HashiCorp Consul, including an Instancer that polls Consul for service instances, a Registrar for registering service liveness, and a Client wrapper for the Consul API. The Instancer handles index-based polling, tag filtering, and error handling (including EOF recovery), while the Registrar manages service registration and deregistration. Tests cover instancer behavior, tag filtering, address overrides, and integration with a live Consul instance.
sd/consul · high confidence
New OpenTracing integration for endpoints, HTTP, and gRPC
The \tracing/opentracing\ package now provides first-class support for distributed tracing via the OpenTracing standard. Users can wrap endpoints with \TraceEndpoint\, \TraceServer\, and \TraceClient\ middlewares that automatically create and manage spans. The package also includes \ContextToHTTP\/\HTTPToContext\ and \ContextToGRPC\/\GRPCToContext\ request functions to inject and extract trace context from HTTP headers and gRPC metadata. This allows for consistent tracing across HTTP and gRPC transport layers.
tracing/opentracing · high confidence
New ZooKeeper service discovery implementation
The sd/zk package now provides a complete service discovery implementation for ZooKeeper, including a Client interface, an Instancer that watches for path changes, and a Registrar for publishing service liveness. The Client wraps the go-zookeeper/zk library, supporting configurable ACLs, credentials, and timeouts, while the Instancer updates subscribers when instances change. Tests cover client configuration, instancer updates, and integration scenarios.
sd/zk · high confidence
New service discovery architecture with push-based updates and endpoint caching
The service discovery package has been refactored to support a push-based update model, where an Instancer pushes complete sets of instance updates to subscribers. A new endpointCache component caches endpoints and manages their lifecycle, allowing the Endpointer to continue returning the last known endpoints even when the service discovery system reports an error, unless the InvalidateOnError option is enabled to trigger a timeout-based invalidation. This change introduces the core interfaces (Instancer, Endpointer, Registrar) and their default implementations to decouple service discovery from the endpoint creation and caching logic.
sd · medium confidence
Behavioural changes
Deprecated leveled logging wrapper moved to new package
The leveled logging wrapper from the kit/log package has been moved to a new 'deprecated\_levels' subpackage. This change relocates the existing leveled logging functionality to a deprecated location, signaling that users should migrate to the standard library's logging capabilities. The move includes both the implementation and its associated tests, ensuring the deprecated API remains functional while encouraging adoption of modern logging practices.
_log/deprecated\levels · medium confidence
Establish project infrastructure and contribution guidelines
The repository now includes a \.gitignore\ file to exclude compiled objects, temporary files, and IDE artifacts, alongside a \lint\ script to automate static analysis and code quality checks. A \docker-compose-integration.yml\ file is added to standardize local integration test environments for services like etcd, Consul, and ZooKeeper. Additionally, \contributing.md\ and \codecov.yml\ are introduced to formalize the process for external contributors and configure code coverage reporting.
(repo-wide) · high confidence
Log package deprecated in favor of standalone repository
The \log\ package and its subpackages (\log/level\, \log/term\, \log/syslog\) have been moved to a separate repository at \github.com/go-kit/log\. The existing \log\ package in this repository now acts as a compatibility layer, aliasing types and functions to the new repository. Users are encouraged to migrate their imports to \github.com/go-kit/log\ for future updates, though the current package remains functional for backward compatibility.
log · high confidence
Test coverage
Added gRPC transport test suite with header/trailer propagation
A new internal test package (\transport/grpc/\_grpc\_test\) was added to verify gRPC transport behavior, specifically focusing on the propagation of headers and trailers between client and server. The suite includes generated protobuf definitions and helper functions that demonstrate how request/response functions can be used to inject, display, and extract metadata (such as correlation IDs) across the gRPC boundary.
_transport/grpc/\_grpc\test · high confidence
Dependencies
Initial Go module setup and dependency updates
The project introduces a go.mod file, establishing Go modules for the first time and defining the module path as github.com/go-kit/kit with Go 1.17. This change includes the addition of numerous direct and indirect dependencies, such as AWS SDKs, Casbin, NATS, and various logging and tracing libraries, effectively initializing the project's dependency graph.
(dependencies) · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Score
- CAI 52 → 49 (-3.4)
- Rubric changed (rubric-2026.08.19 → rubric-2026.09.15) — scores are not directly comparable.
Lenses
- Code Health 89 → 92 (+3.4)
- Architecture 100 → 91 (-9.2)
- Maturity 41 → 30 (-10.8)
- Readiness 53 → 51 (-2.6)
- Security 52 → 69 (+17.0)
Resolved (38)
- Coverage not included — suite not readable by the collector
- Critical CVE: [GHSA redacted] (go.mod)
- Critical CVE: [GHSA redacted] (go.mod)
- Critical CVE: [GHSA redacted] (go.mod)
- Dependency hygiene not measured — dependency manifest found but not parsed for hygiene
- Duplicated block (10 lines × 2) (metrics/internal/lv/space.go)
- Duplicated block (10 lines × 2) (tracing/opencensus/http.go)
- Duplicated block (11 lines × 2) (metrics/dogstatsd/dogstatsd.go)
- Duplicated block (11 lines × 2) (metrics/dogstatsd/dogstatsd.go)
- Duplicated block (11 lines × 2) (sd/etcd/instancer.go)
- Duplicated block (11 lines × 2) (sd/etcd/instancer.go)
- Duplicated block (12 lines × 2) (metrics/dogstatsd/dogstatsd.go)
- Duplicated block (12 lines × 2) (sd/etcd/registrar.go)
- Duplicated block (12 lines × 2) (tracing/opencensus/http.go)
- Duplicated block (13 lines × 2) (metrics/dogstatsd/dogstatsd.go)
- Duplicated block (13 lines × 2) (metrics/dogstatsd/dogstatsd.go)
- Duplicated block (13 lines × 2) (tracing/opencensus/http.go)
- Duplicated block (13 lines × 2) (tracing/opencensus/http.go)
- Duplicated block (13 lines × 2) (tracing/zipkin/grpc.go)
- Duplicated block (16 lines × 2) (tracing/zipkin/grpc.go)
- …and 18 more
New (96)
- Critical CVE: [GHSA redacted] (go.mod)
- Critical CVE: [GHSA redacted] (go.mod)
- Critical CVE: [GHSA redacted] (go.mod)
- Critical CVE: [GHSA redacted] (go.mod)
- Dependency pinned to a stale untagged commit: github.com/afex/hystrix-go
- Dependency pinned to a stale untagged commit: github.com/influxdata/influxdb1-client
- Dependency pinned to a stale untagged commit: github.com/streadway/handy
- Dependency pinned to a stale untagged commit: golang.org/x/sync
- Dependency pinned to a stale untagged commit: golang.org/x/time
- Deprecated module: github.com/aws/aws-sdk-go
- Documentation: no installation or build instructions (README.md)
- Documentation: no usage examples (README.md)
- Duplicated block (10 lines × 2) (metrics/dogstatsd/dogstatsd.go)
- Duplicated block (10 lines × 2) (metrics/influxstatsd/influxstatsd.go)
- Duplicated block (12 lines × 2) (metrics/cloudwatch/cloudwatch.go)
- Duplicated block (12 lines × 2) (metrics/dogstatsd/dogstatsd.go)
- Duplicated block (12 lines × 2) (sd/etcd/registrar.go)
- Duplicated block (12 lines × 2) (tracing/opencensus/http.go)
- Duplicated block (12 lines × 2) (tracing/zipkin/grpc.go)
- Duplicated block (12 lines × 4) (metrics/dogstatsd/dogstatsd.go)
- …and 76 more
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
go-kit/kit was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 24 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit 78fbbceece7bbcf073bee814a7772f4397ea756c — the exact code this score is about.
- Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-5f8d0eb43fd7.