;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2018 Pierre Neidhardt ;;; Copyright © 2018 Tobias Geerinckx-Rice ;;; Copyright © 2018, 2019, 2020 Leo Famulari ;;; Copyright © 2020 Efraim Flashner ;;; Copyright © 2021 Sarah Morgensen ;;; Copyright © 2024 Dominic Martinez ;;; Copyright © 2024 Jesse Eisses ;;; Copyright © 2024 Sharlatan Hellseher ;;; Copyright © 2024 Troy Figiel ;;; ;;; This file is part of GNU Guix. ;;; ;;; GNU Guix is free software; you can redistribute it and/or modify it ;;; under the terms of the GNU General Public License as published by ;;; the Free Software Foundation; either version 3 of the License, or (at ;;; your option) any later version. ;;; ;;; GNU Guix is distributed in the hope that it will be useful, but ;;; WITHOUT ANY WARRANTY; without even the implied warranty of ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;;; GNU General Public License for more details. ;;; ;;; You should have received a copy of the GNU General Public License ;;; along with GNU Guix. If not, see . (define-module (gnu packages prometheus) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix build-system go) #:use-module (guix gexp) #:use-module (guix git-download) #:use-module (guix packages) #:use-module (guix utils) #:use-module (gnu packages) #:use-module (gnu packages golang) #:use-module (gnu packages golang-build) #:use-module (gnu packages golang-check) #:use-module (gnu packages golang-compression) #:use-module (gnu packages golang-crypto) #:use-module (gnu packages golang-web) #:use-module (gnu packages golang-xyz)) ;;; Commentary: ;;; ;;; Libraries and commands related to, or provided by Prometheus project ;;; . ;;; ;;; Please: Try to add new module packages in alphabetic order. ;;; ;;; Code: ;;; ;;; Libraries: ;;; (define-public go-contrib-go-opencensus-io-exporter-prometheus (package (name "go-contrib-go-opencensus-io-exporter-prometheus") (version "0.4.2") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/census-ecosystem/opencensus-go-exporter-prometheus") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 "0n09d2nbng4bws9vi2ddq2ffv9hr0c3i9mif6fkjr4chyyyiy8ik")))) (build-system go-build-system) (arguments (list #:import-path "contrib.go.opencensus.io/exporter/prometheus")) (propagated-inputs (list go-github-com-google-go-cmp go-github-com-prometheus-client-golang go-github-com-prometheus-statsd-exporter go-go-opencensus-io)) (home-page "https://github.com/census-ecosystem/opencensus-go-exporter-prometheus") (synopsis "OpenCensus Go Prometheus Exporter") (description "Package prometheus contains a Prometheus exporter that supports exporting @code{OpenCensus} views as Prometheus metrics.") (license license:asl2.0))) (define-public go-github-com-grpc-ecosystem-go-grpc-prometheus (package (name "go-github-com-grpc-ecosystem-go-grpc-prometheus") (version "1.2.0") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/grpc-ecosystem/go-grpc-prometheus") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 "1lzk54h7np32b3acidg1ggbn8ppbnns0m71gcg9d1qkkdh8zrijl")))) (build-system go-build-system) (arguments (list ;; Source only package, go-github-com-osrg-gobgp-v3@3.37.0 still needs ;; it while the project is archived. Remove when no longer required. #:skip-build? #t #:tests? #f #:import-path "github.com/grpc-ecosystem/go-grpc-prometheus")) (propagated-inputs (list go-github-com-prometheus-client-golang go-golang-org-x-net go-google-golang-org-grpc)) (home-page "https://github.com/grpc-ecosystem/go-grpc-prometheus") (synopsis "Go gRPC Interceptors for Prometheus monitoring") (description "This package implements a Prometheus monitoring for your @url{https://github.com/grpc/grpc-go, gRPC Go} servers and clients.") (license license:asl2.0))) (define-public go-github-com-mwitkow-go-conntrack (package (name "go-github-com-mwitkow-go-conntrack") (version "0.0.0-20190716064945-2f068394615f") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/mwitkow/go-conntrack") (commit (go-version->git-ref version)))) (file-name (git-file-name name version)) (sha256 (base32 "0ymjmy12ks7smgwmrwsa5kf07d9w5kpk1dn650azlzr61b561aw7")))) (build-system go-build-system) (arguments (list #:tests? #f #:import-path "github.com/mwitkow/go-conntrack" #:phases #~(modify-phases %standard-phases ;; Breaking cycle: ;; go-github-com-prometheus-common -> ;; go-github-com-prometheus-client-golang -> ;; go-github-com-mwitkow-go-conntrack -> ;; go-github-com-prometheus-common (delete 'build)))) (native-inputs (list go-github-com-stretchr-testify)) (propagated-inputs (list go-github-com-jpillora-backoff go-github-com-munnerz-goautoneg ;; go-github-com-prometheus-client-golang go-golang-org-x-net)) (home-page "https://github.com/mwitkow/go-conntrack") (synopsis "Go middleware for @code{net.Conn} tracking") (description "@url{https://prometheus.io/,Prometheus} monitoring and @url{https://godoc.org/golang.org/x/net/trace#@code{EventLog,(code} x/net/trace)} tracing wrappers @code{net.Conn}, both inbound (@@code{net.Listener}) and outbound (@@code{net.Dialer}).") (license license:asl2.0))) (define-public go-github-com-nbrownus-go-metrics-prometheus (package (name "go-github-com-nbrownus-go-metrics-prometheus") (version "0.0.0-20210712211119-974a6260965f") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/nbrownus/go-metrics-prometheus") (commit (go-version->git-ref version)))) (file-name (git-file-name name version)) (sha256 (base32 "1kl9l08aas544627zmhkgp843qx94sxs4inxm20nw1hx7gp79dz0")))) (build-system go-build-system) (arguments (list ;; The project looks abandoned, tests failed with a new go-metrics, see ;; . #:tests? #f #:import-path "github.com/nbrownus/go-metrics-prometheus")) (native-inputs (list go-github-com-stretchr-testify)) (propagated-inputs (list go-github-com-prometheus-client-golang go-github-com-rcrowley-go-metrics)) (home-page "https://github.com/nbrownus/go-metrics-prometheus") (synopsis "Prometheus support for go-metrics") (description "This package provides a reporter for the @code{go-metrics} library which posts the metrics to the Prometheus client registry and just updates the registry.") (license license:asl2.0))) (define-public go-github-com-prometheus-alertmanager (package (name "go-github-com-prometheus-alertmanager") (version "0.31.1") ;XXX: newer versions depend on buf (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/prometheus/alertmanager") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 "0r791bcj8sbxfjwiwwxik27q57lb19018p1zlbaczg3ljrp3chqy")))) (build-system go-build-system) (arguments (list #:skip-build? #t #:import-path "github.com/prometheus/alertmanager" #:unpack-path "github.com/prometheus/alertmanager" #:embed-files #~(list ".*\\.css" ".*\\.html" ".*\\.json") #:test-flags #~(list "-skip" (string-join ;; Tests expecting alertmanager binary. (list "TestAddAlerts" "TestAddSilence" "TestAddUTF8Alerts" "TestAddUTF8Silences" "TestAlertGetReturnsCurrentAlertStatus" "TestAlwaysInhibiting" "TestBatching" "TestCannotAddUTF8AlertsInClassicMode" "TestCannotAddUTF8SilencesInClassicMode" "TestClusterDeduplication" "TestClusterVSInstance" "TestColdStart" "TestEmailRejected" "TestEmptyInhibitionRule" "TestFilterAlertRequest" "TestFinalAdvertiseAddr" "TestInhibiting" "TestInstallingNewTracerProvider" "TestMergeAlerts" "TestMergeAlertsWithEndsAt" "TestReinstallingTracerProvider" "TestReinstallingTracerProviderWithTLS" "TestReload" "TestRepeat" "TestResolved" "TestResolvedFilter" "TestRetry" "TestSendAlertsToUTF8Route" "TestSilenceDelete" "TestSilencing" "TestTracerProviderShutdown" "TestUninstallingTracerProvider" "TestWebWithPrefix" "TestWebhookTimeout") "|")) #:phases #~(modify-phases %standard-phases (add-after 'unpack 'remove-broken-tests (lambda* (#:key tests? unpack-path #:allow-other-keys) (with-directory-excursion (string-append "src/" unpack-path) ;; panic: unable to access amtool binary: error accessing ;; amtool command, try 'make build' to generate the file. stat ;; ../../../amtool: no such file or directory (delete-file "test/cli/acceptance/cli_test.go")))) (add-after 'unpack 'remove-examples (lambda* (#:key tests? unpack-path #:allow-other-keys) (with-directory-excursion (string-append "src/" unpack-path) (delete-file-recursively "examples"))))))) (native-inputs (list go-github-com-emersion-go-smtp go-github-com-kylelemons-godebug go-github-com-stretchr-testify)) (propagated-inputs (list go-github-com-kimmachinegun-automemlimit go-github-com-alecthomas-kingpin-v2 go-github-com-alecthomas-units go-github-com-aws-aws-sdk-go-v2 go-github-com-aws-aws-sdk-go-v2-config go-github-com-aws-aws-sdk-go-v2-credentials go-github-com-aws-aws-sdk-go-v2-service-sns go-github-com-aws-aws-sdk-go-v2-service-sts go-github-com-aws-smithy-go go-github-com-cenkalti-backoff-v4 go-github-com-cespare-xxhash-v2 go-github-com-coder-quartz go-github-com-go-openapi-analysis go-github-com-go-openapi-errors go-github-com-go-openapi-loads go-github-com-go-openapi-runtime go-github-com-go-openapi-spec go-github-com-go-openapi-strfmt go-github-com-go-openapi-swag go-github-com-go-openapi-validate go-github-com-gogo-protobuf go-github-com-google-uuid go-github-com-hashicorp-go-sockaddr go-github-com-hashicorp-golang-lru-v2 go-github-com-hashicorp-memberlist go-github-com-jessevdk-go-flags go-github-com-matttproud-golang-protobuf-extensions go-github-com-oklog-run go-github-com-oklog-ulid-v2 go-github-com-prometheus-client-golang go-github-com-prometheus-common go-github-com-prometheus-exporter-toolkit go-github-com-prometheus-sigv4 go-github-com-rs-cors go-github-com-shurcool-httpfs go-github-com-shurcool-vfsgen go-github-com-xlab-treeprint go-go-opentelemetry-io-contrib-instrumentation-net-http-httptrace-otelhttptrace go-go-opentelemetry-io-contrib-instrumentation-net-http-otelhttp go-go-opentelemetry-io-otel go-go-opentelemetry-io-otel-exporters-otlp-otlptrace go-go-opentelemetry-io-otel-exporters-otlp-otlptrace-otlptracegrpc go-go-opentelemetry-io-otel-exporters-otlp-otlptrace-otlptracehttp go-go-opentelemetry-io-otel-sdk go-go-opentelemetry-io-otel-trace go-go-uber-org-automaxprocs go-golang-org-x-mod go-golang-org-x-net go-golang-org-x-text go-golang-org-x-tools go-google-golang-org-grpc go-gopkg-in-telebot-v3 go-gopkg-in-yaml-v2)) (home-page "https://github.com/prometheus/alertmanager") (synopsis "Prometheus Alertmanager") (description "The Alertmanager handles alerts sent by client applications such as the Prometheus server. It takes care of deduplicating, grouping, and routing them to the correct @url{https://prometheus.io/docs/alerting/latest/configuration/#receiver, receiver integrations} such as email, @code{PagerDuty}, @code{OpsGenie}, or many other @url{https://prometheus.io/docs/operating/integrations/#alertmanager-webhook-receiver, mechanisms} thanks to the webhook receiver. It also takes care of silencing and inhibition of alerts.") (license license:asl2.0))) (define-public go-github-com-prometheus-client-golang (package (name "go-github-com-prometheus-client-golang") (version "1.23.2") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/prometheus/client_golang") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 "054hdlyjkyna1xx39apl7srzvjsyirnn1ihbaqarxbygdrz3zrx1")))) (build-system go-build-system) (arguments (list #:go go-1.24 #:skip-build? #t ;; XXX: Check if the most of the tests may be enabled: ;; api/prometheus/v1/api_test.go:1063:23: cannot use 1634644800304 ;; (untyped int constant) as int value in map literal (overflows) #:tests? (target-64bit?) #:import-path "github.com/prometheus/client_golang" #:test-flags #~(list "-skip" (string-join (list ;; go_collector_latest_test.go:131: found unexpected metric ;; go_godebug_non_default_behavior_httpcookiemaxnum_events_total "TestGoCollector_ExposedMetrics" ;; Tests fail with message: found new runtime/metrics ;; metric ;; /godebug/non-default-behavior/httpcookiemaxnum:events ;; a new Go version may have been detected, please run go ;; run gen_go_collector_metrics_set.go go1.X where X is ;; the Go version you are currently using "TestExpectedRuntimeMetrics" ;; Assertions are not equal to compare strings. "TestGoCollectorAllowList/allow_all" "TestGoCollectorAllowList/allow_debug" ;; Test fails on aarch64-linux system. #$@(if (not (target-x86-64?)) '("TestProcessCollector") '())) "|")) #:phases #~(modify-phases %standard-phases (add-after 'unpack 'remove-examples-and-tutorials (lambda* (#:key import-path #:allow-other-keys) (with-directory-excursion (string-append "src/" import-path) (for-each delete-file-recursively (list "api/prometheus/v1/example_test.go" "examples" "tutorials")))))))) (native-inputs (list go-github-com-google-go-cmp go-go-uber-org-goleak)) (propagated-inputs (list go-github-com-beorn7-perks go-github-com-cespare-xxhash-v2 go-github-com-json-iterator-go go-github-com-klauspost-compress go-github-com-kylelemons-godebug go-github-com-prometheus-client-model go-github-com-prometheus-common go-github-com-prometheus-procfs go-golang-org-x-sys go-google-golang-org-protobuf)) (home-page "https://github.com/prometheus/client_golang") (synopsis "HTTP server and client tools for Prometheus") (description "This package @code{promhttp} provides HTTP client and server tools for Prometheus metrics.") (license license:asl2.0))) (define-public go-github-com-prometheus-client-model (package (name "go-github-com-prometheus-client-model") (version "0.6.2") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/prometheus/client_model") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 "1r0magjb44ckin8mrp6shihbl7lvsswfry4hr9yr6d12zzm638db")))) (build-system go-build-system) (arguments (list ;; TODO: Check if need/can generare *.go from proto files, see Makefile. #:skip-build? #t #:import-path "github.com/prometheus/client_model")) (propagated-inputs (list go-github-com-golang-protobuf)) (home-page "https://github.com/prometheus/client_model") (synopsis "Data model artifacts for Prometheus") (description "This package provides data model artifacts for Prometheus.") (license license:asl2.0))) (define-public go-github-com-prometheus-common (package (name "go-github-com-prometheus-common") (version "0.67.5") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/prometheus/common") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 "0bkv73aq8ryaybvya1x5i2gvl5iffiysw5viagcrvak7ffrb09wp")) (modules '((guix build utils))) (snippet #~(begin ;; Submodules with their own go.mod files and packed as ;; separated packages: ;; ;; - github.com/prometheus/common/assets (delete-file-recursively "assets"))))) (build-system go-build-system) (arguments (list #:skip-build? #t #:import-path "github.com/prometheus/common" #:test-subdirs #~(list ;; Skip, as it requires ;; , which introduces ;; cycle. ;; "./config/..." ;; Some tests fail on non x86_64 architecture: Cannot use 9223372036 ;; (untyped int constant) as int value in ;; struct literal ;; (overflows). Cannot use math.MaxInt64 (untyped int constant ;; 9223372036854775807) as int value in argument to HumanizeTimestamp ;; (overflows) #$@(if (target-x86-64?) '("./helpers/...") '()) "./expfmt/..." "./model/..." "./promlog/..." "./route/..." "./server/..."))) (native-inputs (list go-github-com-google-go-cmp go-github-com-stretchr-testify)) (propagated-inputs (list go-github-com-alecthomas-kingpin-v2 go-github-com-golang-jwt-jwt-v5 go-github-com-google-uuid go-github-com-julienschmidt-httprouter go-github-com-munnerz-goautoneg go-github-com-mwitkow-go-conntrack go-github-com-prometheus-client-model go-go-yaml-in-yaml-v2 go-golang-org-x-net go-golang-org-x-oauth2 go-google-golang-org-protobuf)) (home-page "https://github.com/prometheus/common") (synopsis "Shared Prometheus Golang components") (description "This package provides Go libraries that are shared across Prometheus components. @itemize @item @code{config} - common configuration structures @item @code{expfmt} - decoding and encoding for the exposition format @item @code{model} - shared data structures @item @code{promslog} - a logging wrapper around log/slog @item @code{route} - a routing wrapper around httprouter using context.Context @item @code{server} - common servers @item @code{version} version information and metrics @end itemize") (license license:asl2.0))) (define-public go-github-com-prometheus-common-assets (package (name "go-github-com-prometheus-common-assets") (version "0.2.0") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/prometheus/common") (commit (go-version->git-ref version #:subdir "assets")))) (file-name (git-file-name name version)) (sha256 (base32 "0r7sym4yaysbkc5anyypl57v9ay0a1flq00j85j7lcficl2scwrs")))) (build-system go-build-system) (arguments (list #:import-path "github.com/prometheus/common/assets" #:unpack-path "github.com/prometheus/common")) (home-page "https://github.com/prometheus/common") (synopsis "Prometheus assets") (description "This package provides Prometheus assets.") (license license:asl2.0))) (define-public go-github-com-prometheus-community-pro-bing (package (name "go-github-com-prometheus-community-pro-bing") (version "0.5.0") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/prometheus-community/pro-bing") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 "19757nqz0cpq7ir2w5xgjxpblhmkpk0j7spfw4j68agavbx6hxpm")))) (build-system go-build-system) (arguments (list ;; Tests requiring network setup, and root access. #:test-flags #~(list "-skip" (string-join (list "TestNewPingerValid" "TestSetIPAddr" "TestSetInterfaceName" "TestSetResolveTimeout") "|")) #:import-path "github.com/prometheus-community/pro-bing")) (propagated-inputs (list go-github-com-google-uuid go-golang-org-x-net go-golang-org-x-sync)) (home-page "https://github.com/prometheus-community/pro-bing") (synopsis "Continuous probers Golang library") (description "This package implements @acronym{Internet Control Message Protocol,ICMP} echo (ping) functionality.") (license license:expat))) (define-public go-github-com-prometheus-exporter-toolkit (package (name "go-github-com-prometheus-exporter-toolkit") (version "0.13.2") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/prometheus/exporter-toolkit") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 "05k4sfrc1zs96iprgnap0gd42vwfq47j6vg2bv83nckcv731gmiv")))) (build-system go-build-system) (arguments (list #:import-path "github.com/prometheus/exporter-toolkit" #:phases #~(modify-phases %standard-phases ;; XXX: Workaround for go-build-system's lack of Go modules support. (delete 'build) (replace 'check (lambda* (#:key tests? import-path #:allow-other-keys) (when tests? (with-directory-excursion (string-append "src/" import-path) (invoke "go" "test" "-v" "-skip" "TestServerBehaviour|TestConfigReloading" "./...")))))))) (native-inputs (list go-google-golang-org-protobuf)) (propagated-inputs (list go-github-com-alecthomas-kingpin-v2 go-github-com-coreos-go-systemd-v22 go-github-com-go-kit-log go-github-com-mdlayher-vsock ; Imported for go-github-com-prometheus-common to break the cycle. go-github-com-prometheus-client-golang go-github-com-prometheus-common go-golang-org-x-crypto go-golang-org-x-sync go-gopkg-in-yaml-v2)) (home-page "https://github.com/prometheus/exporter-toolkit") (synopsis "Utility package to build Prometheus exporters") (description "This package provides tooling to build Prometheus exporters") (license license:asl2.0))) (define-public go-github-com-prometheus-otlptranslator (package (name "go-github-com-prometheus-otlptranslator") (version "1.0.0") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/prometheus/otlptranslator") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 "1naca6ima2bzf6yhb2w9favqx644c0q1y16jlb2na7s4bgr3107p")))) (build-system go-build-system) (arguments (list #:import-path "github.com/prometheus/otlptranslator")) (home-page "https://github.com/prometheus/otlptranslator") (synopsis "OTLP Prometheus Translator") (description "This package provides a functionality to convert @url{https://opentelemetry.io/docs/specs/otlp/, OTLP} metric and attribute names to @url{https://prometheus.io/, Prometheus-compliant} formats. This is an internal library for both Prometheus and Open Telemetry,") (license license:asl2.0))) (define-public go-github-com-prometheus-procfs (package (name "go-github-com-prometheus-procfs") (version "0.19.2") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/prometheus/procfs") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 "1szpgj5w4bbrrjy7whpmaz0l05zkrzscg6nwkph8fajfq78aalvg")))) (build-system go-build-system) (arguments (list ;; XXX: Check if the most of the tests may be enabled on non x86_64 ;; architectures, disable for now: ./proc_stat_test.go:98:49: cannot use ;; math.MinInt64 (untyped int constant -9223372036854775808) as int ;; value in struct literal (overflows). #:tests? (target-x86-64?) #:import-path "github.com/prometheus/procfs" #:phases #~(modify-phases %standard-phases (add-before 'check 'unpack-testdata (lambda* (#:key tests? import-path #:allow-other-keys) (with-directory-excursion (string-append "src/" import-path) (invoke "./ttar" "-C" "testdata/" "-x" "-f" "testdata/fixtures.ttar")))) (add-after 'check 'remove-testdata (lambda* (#:key tests? import-path #:allow-other-keys) (with-directory-excursion (string-append "src/" import-path) (delete-file-recursively "testdata"))))))) (native-inputs (list go-github-com-google-go-cmp)) (propagated-inputs (list go-golang-org-x-sync go-golang-org-x-sys)) (synopsis "Go library for reading @file{/proc}") (home-page "https://github.com/prometheus/procfs") (description "The @code{procfs} Go package provides functions to retrieve system, kernel, and process metrics from the @file{/proc} pseudo file system.") (license license:asl2.0))) (define-public go-github-com-prometheus-sigv4 (package (name "go-github-com-prometheus-sigv4") (version "0.1.2") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/prometheus/sigv4") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 "0yw37lw4x2l20l02i6yd4m4x948vgrfyaa0csl155rdyq3ynwa5w")))) (build-system go-build-system) (arguments (list #:import-path "github.com/prometheus/sigv4")) (native-inputs (list go-github-com-stretchr-testify)) (propagated-inputs (list go-github-com-aws-aws-sdk-go go-github-com-prometheus-client-golang go-github-com-prometheus-common go-gopkg-in-yaml-v2)) (home-page "https://github.com/prometheus/sigv4") (synopsis "HTTP signed requests with Amazon's Signature Verification V4") (description "sigv4 provides a @code{http.RoundTripper} that will sign requests using Amazon's Signature Verification V4 signing procedure, using credentials from the default AWS credential chain.") (license license:asl2.0))) (define-public go-github-com-prometheus-statsd-exporter (package (name "go-github-com-prometheus-statsd-exporter") (version "0.28.0") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/prometheus/statsd_exporter") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 "0h7ypmsx1j6x1p5wdj03i3jzwms7ab03asn2capl1gg6x07k57w7")))) (build-system go-build-system) (arguments (list #:import-path "github.com/prometheus/statsd_exporter" #:embed-files #~(list "landing_page.css" "landing_page.html"))) (native-inputs (list go-github-com-stvp-go-udp-testing)) (propagated-inputs (list go-github-com-alecthomas-kingpin-v2 go-github-com-go-kit-log go-github-com-golang-groupcache go-github-com-prometheus-client-golang go-github-com-prometheus-client-model go-github-com-prometheus-common go-github-com-prometheus-exporter-toolkit go-gopkg-in-yaml-v2)) (home-page "https://github.com/prometheus/statsd_exporter") (synopsis "StatsD to Prometheus metrics exporter") (description "The StatsD exporter is a drop-in replacement for @url{https://github.com/statsd/statsd,StatsD}. The exporter translates StatsD metrics to Prometheus metrics via configured mapping rules. This package provides a Golang module and @code{statsd_exporter} executable command.") (license license:asl2.0))) (define-public go-github-com-sourcegraph-mountinfo (package (name "go-github-com-sourcegraph-mountinfo") (properties '((commit . "e539465d544015a75056b3c77da212861cf7c223") (revision . "0") (go-pseudo-version . "0.0.0-20260429092751-e539465d5440"))) (version (git-version "0.0.0" (assoc-ref properties 'revision) (assoc-ref properties 'commit))) (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/sourcegraph/mountinfo") (commit (assoc-ref properties 'commit)))) (file-name (git-file-name name version)) (sha256 (base32 "0izpsrkzxdw3b12wxgdah8c6klbddkryzcawd7fvvdwrcl7bsxjn")))) (build-system go-build-system) (arguments (list #:import-path "github.com/sourcegraph/mountinfo" #:test-flags #~(list "-skip" (string-join ;; findSysfsMountpoint: no sysfs mountpoint found (list "Test_DeviceName_VirtualFilesystem" "Test_DeviceName_SmokeTest") "|")))) (native-inputs (list go-github-com-google-go-cmp)) (propagated-inputs (list go-github-com-moby-sys-mountinfo go-github-com-prometheus-client-golang go-github-com-sourcegraph-log go-golang-org-x-sys)) (home-page "https://github.com/sourcegraph/mountinfo") (synopsis "Prometheus info metric for advertizing block device names") (description "Package mountinfo provides a Prometheus collector that advertises the names of block storage devices backing the requested file paths.") (license license:asl2.0))) (define-public go-github-com-yeya24-promlinter (package (name "go-github-com-yeya24-promlinter") (version "0.3.0") (source (origin (method git-fetch) (uri (git-reference (url "https://github.com/yeya24/promlinter") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 (base32 "0flmi0adwqhr6cbq2l73sngwpri37gdmi74lymz0w382pwhfyri1")))) (build-system go-build-system) (arguments (list #:import-path "github.com/yeya24/promlinter")) (native-inputs (list go-github-com-stretchr-testify)) (propagated-inputs (list go-github-com-prometheus-client-golang go-github-com-prometheus-client-model go-gopkg-in-alecthomas-kingpin-v2 go-gopkg-in-yaml-v2)) (home-page "https://github.com/yeya24/promlinter") (synopsis "Go linter for Prometheus metrics") (description "This package provides a linter for checking Prometheus metrics name via promlint.") (license license:asl2.0))) ;;; ;;; Executables: ;;; (define-public prometheus-alertmanager (package/inherit go-github-com-prometheus-alertmanager (name "prometheus-alertmanager") (arguments (substitute-keyword-arguments arguments ((#:import-path _) "github.com/prometheus/alertmanager/cmd/alertmanager") ((#:install-source? _ #t) #f) ((#:skip-build? _ #t) #f) ((#:tests? _ #t) #f))) (native-inputs (package-propagated-inputs go-github-com-prometheus-alertmanager)) (propagated-inputs '()) (inputs '()))) ;;; ;;; Avoid adding new packages to the end of this file. To reduce the chances ;;; of a merge conflict, place them above in alphabetic order. ;;;