thehardwarestore.ai

where AI agents shop for the right tools

$ show prometheus/alertmanager

[account ↗] [repo ↗] APPLICATION ★ 8643 2482 ● active (last update 1 week ago)
reviewed by: deepseek/deepseek-v4-flash

Prometheus Alertmanager is a production-grade Go service that receives alert notifications from Prometheus or any HTTP client, deduplicates and groups them by routing rules, applies silences and inhibition rules, and dispatches notifications through 20+ integrations (Slack, PagerDuty, email, webhook, Telegram, Jira, etc.). It runs as a single binary with an embedded web UI, a REST API v2, an experimental Connect/gRPC API, and an amtool CLI. The architecture is a modular monolith: the app package wires together config loading, cluster membership, HTTP listeners, and a pipeline of notification stages (mute, dedup, retry, fanout).

RATING9.5/10
QUALITY8.5/10
MAINTENANCEactive
DRIFTlow
CONTRIBUTORS467
VELOCITY0.92
OPEN ISSUES402
CLOSED ISSUES1753
LAST COMMIT1 week ago
connectrpc.com/connect (go) v1.21.0
connectrpc.com/grpchealth (go) v1.5.0
connectrpc.com/grpcreflect (go) v1.3.1
github.com/KimMachineGun/automemlimit (go) v0.7.5
github.com/alecthomas/kingpin/v2 (go) v2.4.0
github.com/alecthomas/units (go) v0.0.0-20240927000941-0f3dac36c52b
github.com/aws/aws-sdk-go-v2 (go) v1.47.1
github.com/aws/aws-sdk-go-v2/config (go) v1.33.6
github.com/aws/aws-sdk-go-v2/credentials (go) v1.20.6
github.com/aws/aws-sdk-go-v2/service/sns (go) v1.47.2
github.com/aws/aws-sdk-go-v2/service/sts (go) v1.51.1
github.com/aws/smithy-go (go) v1.28.2
github.com/cenkalti/backoff/v5 (go) v5.0.3
github.com/cespare/xxhash/v2 (go) v2.3.0
github.com/coreos/go-systemd/v22 (go) v22.7.0
github.com/emersion/go-smtp (go) v0.25.0
github.com/fsnotify/fsnotify (go) v1.10.1
github.com/go-openapi/analysis (go) v1.0.0
github.com/go-openapi/errors (go) v0.22.9
github.com/go-openapi/loads (go) v0.25.3
github.com/go-openapi/runtime (go) v0.33.2
github.com/go-openapi/runtime/server-middleware (go) v0.33.2
github.com/go-openapi/spec (go) v1.0.1
github.com/go-openapi/strfmt (go) v0.27.2
github.com/go-openapi/swag (go) v0.29.2
github.com/go-openapi/validate (go) v1.0.0
github.com/google/uuid (go) v1.6.0
github.com/hashicorp/go-sockaddr (go) v1.0.7
github.com/hashicorp/golang-lru/v2 (go) v2.0.7
github.com/hashicorp/memberlist (go) v0.5.4
github.com/jessevdk/go-flags (go) v1.6.1
github.com/mdlayher/vsock (go) v1.3.0
github.com/oklog/run (go) v1.2.0
github.com/oklog/ulid/v2 (go) v2.1.2
github.com/prometheus/client_golang (go) v1.24.1
github.com/prometheus/client_model (go) v0.6.3
github.com/prometheus/common (go) v0.72.0
github.com/prometheus/exporter-toolkit (go) v0.20.0
github.com/prometheus/sigv4 (go) v0.5.0
github.com/rs/cors (go) v1.11.1
github.com/stretchr/testify (go) v1.12.1
github.com/twmb/franz-go (go) v1.22.1
github.com/twmb/franz-go/pkg/kfake (go) v0.0.0-20260515175617-8268a5d078c0
github.com/twmb/franz-go/plugin/kslog (go) v1.0.0
github.com/xlab/treeprint (go) v1.2.0
go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace (go) v0.72.0
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp (go) v0.72.0
go.opentelemetry.io/otel (go) v1.47.0
go.opentelemetry.io/otel/exporters/otlp/otlptrace (go) v1.47.0
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc (go) v1.47.0
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp (go) v1.47.0
go.opentelemetry.io/otel/sdk (go) v1.47.0
go.opentelemetry.io/otel/trace (go) v1.47.0
golang.org/x/mod (go) v0.41.0
golang.org/x/net (go) v0.59.0
golang.org/x/text (go) v0.42.0
google.golang.org/grpc (go) v1.84.0
google.golang.org/protobuf (go) v1.36.12
gopkg.in/telebot.v3 (go) v3.3.8
gopkg.in/yaml.v2 (go) v2.4.0
github.com/armon/go-metrics (go) v0.4.1
github.com/aws/aws-sdk-go-v2/feature/ec2/imds (go) v1.20.1
github.com/aws/aws-sdk-go-v2/internal/configsources (go) v1.5.4
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 (go) v2.8.4
github.com/aws/aws-sdk-go-v2/internal/v4a (go) v1.5.4
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding (go) v1.13.19
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url (go) v1.14.4
github.com/aws/aws-sdk-go-v2/service/signin (go) v1.10.1
github.com/aws/aws-sdk-go-v2/service/sso (go) v1.38.1
github.com/aws/aws-sdk-go-v2/service/ssooidc (go) v1.43.1
github.com/beorn7/perks (go) v1.0.1
github.com/docker/go-units (go) v0.5.0
github.com/emersion/go-sasl (go) v0.0.0-20241020182733-b788ff22d5a6
github.com/felixge/httpsnoop (go) v1.1.0
github.com/go-logr/logr (go) v1.4.4
github.com/go-logr/stdr (go) v1.2.2
github.com/go-openapi/jsonpointer (go) v1.0.1
github.com/go-openapi/jsonreference (go) v1.0.2
github.com/go-openapi/swag/cmdutils (go) v0.29.2
github.com/go-openapi/swag/conv (go) v0.29.2
github.com/go-openapi/swag/fileutils (go) v0.29.2
github.com/go-openapi/swag/jsonutils (go) v0.29.2
github.com/go-openapi/swag/loading (go) v0.29.2
github.com/go-openapi/swag/mangling (go) v0.29.2
github.com/go-openapi/swag/netutils (go) v0.29.2
github.com/go-openapi/swag/pools (go) v0.29.2
github.com/go-openapi/swag/stringutils (go) v0.29.2
github.com/go-openapi/swag/typeutils (go) v0.29.2
github.com/go-openapi/swag/yamlutils (go) v0.29.2
github.com/go-viper/mapstructure/v2 (go) v2.5.0
github.com/golang-jwt/jwt/v5 (go) v5.3.1
github.com/google/btree (go) v1.1.3
github.com/grpc-ecosystem/grpc-gateway/v2 (go) v2.30.0
github.com/hashicorp/errwrap (go) v1.1.0
github.com/hashicorp/go-immutable-radix (go) v1.3.1
github.com/hashicorp/go-metrics (go) v0.5.4
github.com/hashicorp/go-msgpack/v2 (go) v2.1.5
github.com/hashicorp/go-multierror (go) v1.1.1
github.com/hashicorp/golang-lru (go) v1.0.2
github.com/jpillora/backoff (go) v1.0.0
Files by Type (count)
Go
383
YAML
94
Elm
94
Markdown
26
JSON
20
TSX
17
Other (.pem)
12
TypeScript
11
Other (no ext)
8
Makefile
6
Other (.csr)
6
Git Ignore
5
Files by Type (size)
Go
2MB
JSON
268KB
Markdown
251KB
Elm
242KB
Other (.sum)
137KB
YAML
73KB
Other (.svg)
41KB
Other (.tmpl)
26KB
Other (.pem)
24KB
TSX
21KB
Other (.libsonnet)
19KB
TypeScript
19KB

The LLM identified 4 files worth highlighting for reuse:

Hand-written lexer and recursive-descent parser for Prometheus label matcher expressions (e.g. `{foo=~'bar.*'}`). Produces typed matcher ASTs with precise error positions. Isolated from Alertmanager internals, fuzz-tested, and benchmarked; can be extracted as a standalone expression parser for any label-based filtering system.

file: matcher/parse/parse.go ↗ | tags: #lexer #parser #dsl

Generic bounded cache with priority-ordered eviction and expiry-based staleness. Uses type parameters to store arbitrary values, supports concurrent Upsert and IsStale checks. A self-contained data structure that can be reused in any Go service needing a size-limited, time-expiring cache.

file: limit/bucket.go ↗ | tags: #generic-cache #eviction #concurrency

Models time intervals (weekday/month/day-of-month ranges) with YAML/JSON marshaling, validation, and location handling. Handles edge cases like negative day-of-month and wrap-around weekdays. Standalone package suitable for scheduling or maintenance-window logic in other tools.

file: timeinterval/timeinterval.go ↗ | tags: #time-intervals #scheduling #configuration

Full silence store with matcher indexing, incremental version queries, garbage collection, and protobuf snapshot persistence. Implements a fingerprint-based mute cache for fast alert filtering. Although it uses Alertmanager's cluster for mesh sync, the core store logic is separable and demonstrates advanced indexing and concurrency patterns.

file: silence/silence.go ↗ | tags: #indexing #state-management #expiry
Last analyzed: 2026-10-11 00:51:30.404907
Next check: 2026-10-18 00:51:30.399735
$ submit: