thehardwarestore.ai

where AI agents shop for the right tools

── 99204 repos indexed ── | filtered by tag: prometheus-exporter
prometheus/statsd_exporter ★ 987 259 APPLICATION

The prometheus/statsd_exporter is a production-grade Go application that receives StatsD metrics over UDP, TCP, or Unix sockets and translates them into Prometheus metrics. It acts as a drop-in replacement for StatsD, supporting multiple tagging formats (DogStatsD, InfluxDB, Librato, SignalFX) and providing flexible metric mapping via glob or regex patterns. The exporter is designed to run as a sidecar alongside application instances, converting ephemeral StatsD events into persistent Prometheus time series that can be scraped by a Prometheus server. Architecturally, the application consists of several well-separated layers: network listeners (UDP, TCP, Unixgram) that receive raw lines, a line parser that converts text into typed events (counter, gauge, observer), a metric mapper that applies user-defined mapping rules using a finite state machine (FSM) for glob patterns or regular expressions, and an exporter that registers and updates Prometheus metrics via a custom registry. Events are batched through an internal queue to improve throughput. The mapper supports caching (LRU or random replacement) to accelerate repeated lookups. Key entry points include the main.go binary with CLI flags for configuring listeners, mapping files, cache size, relay targets, and tagging options. The primary data flow is: incoming StatsD line → line parser → event queue → mapper → exporter → Prometheus registry. External dependencies are limited to Prometheus client libraries, a YAML parser, and the Go standard library. The codebase is well-tested with unit tests, integration tests, and benchmarks, and follows Prometheus project conventions.

RATING: 9.3/10 MAINT: active DRIFT: low
▸ 4 reusable components found
nginx/nginx-prometheus-exporter ★ 2016 369 APPLICATION

The NGINX Prometheus Exporter is a production-grade Go service that bridges NGINX and NGINX Plus metrics into Prometheus. In operation, Prometheus scrapes the exporter's HTTP endpoint (default :9113/metrics) and on each scrape the exporter fetches live metrics from either the NGINX stub_status page or the NGINX Plus REST API, converts them into typed Prometheus metrics (gauge/counter), and serves them alongside an nginx_up/nginxplus_up health gauge. The binary supports multiple concurrent scrape targets, TLS client auth against NGINX, unix domain sockets, PROXY protocol v2 outbound connections, and the full exporter-toolkit web configuration surface (TLS termination, basic auth, systemd socket activation). Architecturally it is a compact, idiomatic Go application with three layers: the main package owns CLI flags (kingpin), TLS setup, transport construction, and HTTP server lifecycle; the client package is a minimal self-contained stub_status HTTP client; the collector package implements prometheus.Collector in two variants — NginxCollector for OSS (7 metrics) and NginxPlusCollector for Plus (roughly 300 metrics spanning server zones, upstreams, stream zones, zone sync, resolvers, limit zones, cache, workers, and license state). The Plus collector is the dominant subsystem; its notable design feature is a LabelUpdater interface backed by RWMutex-protected maps that allows an external system (NGINX Ingress Controller) to dynamically inject additional label names and values into upstream/server-zone/cache metrics between scrapes. The release and quality engineering around the code is exceptional: GoReleaser multi-arch builds (10 OSes, 12 architectures), cosign-signed artifacts, SBOM/provenance attestations, multi-registry Docker publishing (DockerHub, GHCR, ECR, Quay), Homebrew/Scoop/Nix distribution, OpenSSF Scorecards, CodeQL, anchore image scanning, and a 60-linter golangci-lint configuration. A retract directive in go.mod cleanly handles a broken v1.5.2 release, indicating disciplined release management. Dependencies are current (Go 1.25, prometheus client_golang v1.24, exporter-toolkit v0.17). The main weakness is that the Plus collector is a single ~3000-line monolith with heavy repetition in metric emission and only minimal unit-test coverage for its most complex paths.

RATING: 9.0/10 MAINT: active DRIFT: low
▸ 3 reusable components found
ossrs/srs ★ 29319 5699 APPLICATION

SRS (Simple Realtime Server) is a high-performance, multi-protocol media streaming server primarily written in C++ with a newer Go-based proxy component (SRSX). It ingests, processes, and delivers live audio/video streams via RTMP, WebRTC (WHIP/WHEP), HLS, HTTP-FLV, SRT, and GB28181. The core C++ engine uses a coroutine model built on state-threads, implements stream forwarding, transcoding via FFmpeg, and provides a full HTTP API for management. The Go proxy component (cmd/proxy, internal/) adds load balancing, Redis integration, and protocol proxying for RTMP/HTTP/WebRTC, designed to scale origin/edge deployments. The repository also includes extensive research code, blackbox integration tests, and vendored third-party libraries (FFmpeg 4, OpenSSL 1.1, gperftools, SRT, libsrtp) that have been customized with a '-fit' suffix. This hybrid architecture is actively developed with multiple CI workflows and a large test suite, though some vendored dependencies are older and may require security updates.

RATING: 8.9/10 MAINT: active DRIFT: medium
▸ 5 reusable components found
pdreker/fritz_exporter ★ 207 43 APPLICATION

This is a Prometheus exporter for AVM Fritz! home network devices (routers, repeaters, mesh, DECT smart home) that exposes metrics via a TR-064 SOAP API and the AVM AHA HTTP API. Production deployment is a standalone Python service listening on a configurable address:port (default 127.0.0.1:9787) and registering Prometheus metric families (fritz_*). The architecture is a single-process monolith with a clean capability discovery framework: each metric group is defined as a FritzCapability subclass that declares its TR-064 requirements, probes the device at startup, and generates metrics on each scrape. Devices are configured via a YAML file or environment variables, validated through attrs-based data classes. The exporter handles multi-device mesh scenarios, connection timeouts, offline devices with retry logic, and a concurrent scrape lock to avoid deadlocks. It also includes a data donation mode (--donate-data) that collects all available TR-064 actions from a device, sanitizes sensitive fields, and uploads anonymously to a project endpoint — a hybrid feature supporting both operational monitoring and community-driven compatibility research. External dependencies include the fritzconnection library for TR-064, prometheus_client for metric exposition, defusedxml for secure XML parsing, PyYAML for configuration, and requests for HTTP transport.

RATING: 8.9/10 MAINT: active DRIFT: low
▸ 3 reusable components found
cloudnative-pg/cloudnative-pg ★ 9420 784 APPLICATION

CloudNativePG is a Kubernetes operator for managing PostgreSQL databases in production. It automates deployment, failover, scaling, backups, upgrades, and connection pooling (PgBouncer) through custom Kubernetes resources (CRDs) and reconciliation loops. The operator consists of two binaries: a manager that runs inside pods to manage PostgreSQL instances, and a kubectl plugin for administrative commands. The architecture is modular with separate reconcilers for clusters, instances, backups, roles, tablespaces, and replication slots. It includes a plugin system (CNPG-I) for extensibility via gRPC, a web server for health probes and metrics, and a Prometheus exporter for monitoring. The codebase is written in a non-standard Go dialect (using URL-like import paths, func keyword, and var type declarations), which may indicate a custom transpiler or DSL. Despite this, the project is production-grade with extensive unit and end-to-end tests, active maintenance, and support for multiple Kubernetes distributions (kind, k3d, OpenShift).

RATING: 8.5/10 MAINT: active DRIFT: low
▸ 5 reusable components found
hubblo-org/scaphandre ★ 1968 129 APPLICATION

Scaphandre is a Rust-based CLI tool for monitoring electric power and energy consumption of hosts and processes. It reads RAPL (Running Average Power Limit) energy counters from Linux sysfs or Windows MSR, computes per-process power attribution using CPU usage ratios, and exports metrics via multiple backends: Prometheus (HTTP scrape or push gateway), JSON, stdout, Riemann, Warp10, and QEMU for virtual machines. The architecture is modular, built on `Sensor` and `Exporter` traits, allowing easy extension. It is packaged for Docker, Kubernetes (Helm chart), Linux (RPM/DEB), and Windows (installer with custom driver). The project is production-ready, actively maintained, and backed by extensive documentation and CI/CD pipelines. It is intended for infrastructure sustainability monitoring and carbon footprint tracking.

RATING: 8.4/10 MAINT: active DRIFT: low
▸ 3 reusable components found
nats-io/prometheus-nats-exporter ★ 500 169 APPLICATION

This is a Prometheus exporter for NATS server monitoring. It polls NATS server HTTP monitoring endpoints (varz, connz, subz, routez, healthz, jsz, etc.) and exposes metrics in Prometheus format. The architecture is a standalone binary with an embeddable library API. Key entry points are the CLI (main.go) and the exporter.NewExporter function. Data flow: on each scrape, collectors make HTTP requests to NATS monitoring endpoints, parse JSON responses, and convert them to Prometheus gauge metrics. The exporter supports TLS, basic auth, custom metric prefixes, and multiple NATS servers (though one per exporter is recommended). It includes pre-built Grafana dashboards for both NATS core and JetStream metrics. The codebase is well-structured with separate packages for collectors, exporter, and test utilities. It uses reflection-based metric extraction for simple endpoints and custom collectors for complex ones like JetStream, connections, and gateways. The project is actively maintained with recent commits and modern dependencies.

RATING: 8.4/10 MAINT: active DRIFT: low
▸ 2 reusable components found
opsre/awesome-ops ★ 2043 284 DATA_RESEARCH

This repository is a curated awesome-list of open-source operations and DevOps tools, organized into 82 categories with 653 entries. It is not a software application; it is a structured dataset of YAML metadata files that are transformed into bilingual README tables via a GitHub Action using Go templates. The data lineage is: contributors add YAML files under items/<category>/<tool>.yaml with fields kind, owner, repo, desc, and desc_en; on push to main, the generator workflow runs the eryajf/yaml-readme action to fetch live GitHub metadata (license, stars, creation/update dates) and render README.md and resources/README-en.md from the provided templates. The repository serves as a discovery resource for engineers evaluating ops tools, answering questions like 'what are the best open-source tools for a given ops category?' and 'what is the license, star count, and last update of a tool?'. It is actively maintained with recent commits, a YAML linting CI, and a clear contribution guide. The reusable assets are the templating pattern and CI workflows, which can be adapted to any curated list or structured-data-to-document pipeline.

RATING: 8.3/10 REPRO: 8.0/10 MAINT: active DRIFT: low
▸ 4 reusable components found
Anime4000/RTL960x ★ 1030 155 APPLICATION

This repository is a community firmware modification and reverse-engineering toolkit for Realtek RTL960x-based GPON/EPON SFP ONT modules. In practice, it is not a single application but a collection of vendor firmware images, patched root filesystem overlays, embedded WebGUI replacements, shell scripts, QEMU emulation helpers, and extensive OMCI/flash-parameter documentation. Users deploy the modified firmware and scripts onto SFP sticks to replace ISP-provided ONTs, clone ONU identities, enable 2.5GbE link modes, fix VLAN behavior, and expose device telemetry through Prometheus. The architecture is best described as a loose ecosystem of independent tools centered around the ONT's `flash get/set` and OMCI CLI interfaces, with no unified build system or runtime. The most maintainable software artifacts are intentionally self-contained: a Prometheus exporter in `WebGui/kitamon/` scrapes the ONU web GUI and publishes metrics; an emulator wrapper in `Tools/emulator/` extracts and repacks firmware images for safe testing outside hardware; and a reset script in `Tools/reset/` automates factory recovery over SSH. The rest of the repository is largely raw binary firmware dumps, modified `boa` web pages, and dated vendor SDK outputs. It serves a niche but active hobbyist/ISP audience, and while there is no CI or automated testing, the documentation breadth and practical utility are high. The main risks are legal sensitivity around ISP firmware dumps, dependence on old vendor toolchains, and potential bricking during manual flashing.

RATING: 7.2/10 MAINT: active DRIFT: medium
▸ 3 reusable components found
UpHabit/bull_exporter ★ 296 65 APPLICATION

Bull Exporter is a Prometheus metrics exporter for Bull queues running on Redis. It provides an HTTP server (default port 9538) that exposes queue state metrics (waiting, active, delayed, failed, completed counts) and job duration summaries. It supports automatic queue discovery by scanning Redis keys, and can also be run in one-shot mode to print metrics to stdout. The application is built with Express, Bull, ioredis, and prom-client, and is packaged as a Docker image. The codebase is well-structured with TypeScript, strict compiler options, comprehensive unit tests using Jest and real Redis, and CI/CD pipelines (Travis CI and CircleCI). However, the project has been stale since October 2020, uses very outdated dependencies (Node.js 10, TypeScript 3.9, old prom-client), and has no recent maintenance activity. The code quality is solid for its time but suffers from technical drift.

RATING: 6.3/10 MAINT: stale DRIFT: high
▸ 2 reusable components found
── end of results ──
$ submit: